<?xml version="1.0" encoding="utf-8" ?>


<?xml-stylesheet href="http://d.hatena.ne.jp/coppieee/rssxsl" type="text/xsl" media="screen"?>


<rdf:RDF
xmlns="http://purl.org/rss/1.0/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xml:lang="ja">
<channel rdf:about="http://d.hatena.ne.jp/coppieee/rss">
<title>妄想宝箱</title>
<link>http://d.hatena.ne.jp/coppieee/</link>
<description>妄想宝箱</description>

<dc:creator>coppieee</dc:creator>
<dc:date>2010-08-20T03:27:14+09:00</dc:date>
<items>
<rdf:Seq>
<rdf:li rdf:resource="http://d.hatena.ne.jp/coppieee/20100819/1282242434"/>
<rdf:li rdf:resource="http://d.hatena.ne.jp/coppieee/20100117/1263705533"/>
<rdf:li rdf:resource="http://d.hatena.ne.jp/coppieee/20100110/1263140844"/>
<rdf:li rdf:resource="http://d.hatena.ne.jp/coppieee/20100110/1263140845"/>
<rdf:li rdf:resource="http://d.hatena.ne.jp/coppieee/20100110/1263140846"/>
<rdf:li rdf:resource="http://d.hatena.ne.jp/coppieee/20091231/1262267441"/>
<rdf:li rdf:resource="http://d.hatena.ne.jp/coppieee/20091019/1255986672"/>
</rdf:Seq>
</items>
</channel>



<item rdf:about="http://d.hatena.ne.jp/coppieee/20100819/1282242434">
<title>プログラミンでためしにゲーム作ってみた</title>
<link>http://d.hatena.ne.jp/coppieee/20100819/1282242434</link>
<description> 文部科学省が「プログラミン」というマウス操作だけでゲームが作れるサービスを開始しましたね！ プログラミン | 文部科学省 パーツを組み立てるだけで、アニメーションとかキャラクター操作とか、色々出来るっぽいです。がんばればどんなゲームでも作れる？ ということで、</description>

<content:encoded><![CDATA[
<div class="section">
<p>文部科学省が「プログラミン」というマウス操作だけでゲームが作れるサービスを開始しましたね！</p>
<p><a href="http://www.mext.go.jp/programin/" target="_blank">プログラミン | 文部科学省</a></p>
<p>パーツを組み立てるだけで、アニメーションとかキャラクター操作とか、色々出来るっぽいです。がんばればどんなゲームでも作れる？</p>
<p>ということで、私もためしに作ってみました。</p>
<p><a href="http://www.mext.go.jp/programin/share/?share_id=438532980042fcb42ca74ee055ecec31" target="_blank">プログラミン | 文部科学省</a></p>
<p>特にゲーム性はないよ！ジャンプの機能作るだけで一苦労。。。</p>
<br>

<p>また、非公式で作品ギャラリーがあるので、そっちを見るだけでも楽しいかも。</p>
<p><a href="http://programin.jp/" target="_blank">プログラミン作品ギャラリー 『プログラミンでつくったよ！』を集めるサービス</a></p>
</div>
]]></content:encoded>
<dc:creator>coppieee</dc:creator>
<dc:date>2010-08-20T03:27:14+09:00</dc:date>
</item>
<item rdf:about="http://d.hatena.ne.jp/coppieee/20100117/1263705533">
<title>[wonderfl][Flash]最近パーティクル崩しが熱いらしい</title>
<link>http://d.hatena.ne.jp/coppieee/20100117/1263705533</link>
<description> 以前、私が作ったパーティクル崩しっていうちょっと変わったブロック崩しっていうのがあるんだけど、最近何度かそれをFORKしたやつがwonderflのランキングに上がってきてた。 このブログ自体のアクセス数も微妙に増える。てっきり前の記事が好評なのかなとか思ってたけど、</description>

<content:encoded><![CDATA[
<div class="section">
<p>以前、私が作った<a href="http://wonderfl.net/code/d0dcc2f2d0f8012e42785ef71dab7da2abd5453d" target="_blank">パーティクル崩し</a>っていうちょっと変わったブロック崩しっていうのがあるんだけど、最近何度かそれをFORKしたやつがwonderflのランキングに上がってきてた。</p>
<br>

<p>このブログ自体のアクセス数も微妙に増える。てっきり前の記事が好評なのかなとか思ってたけど、「パーティクル崩し」とググって来てる人が多い。</p>
<br>

<p>パーティクル崩し・・・？結構前に作ったのになぜ今更。と、思ってググると謎がすぐに解けた。</p>
<p><span style="font-weight:bold;">うぉ！なんか、でっかそうなサイトに紹介されとる！</span></p>
<p><a href="http://www.hiroiro.com/flash/369.html" target="_blank">弾幕ブロック崩しがメチャクチャ気持ちいい！ | Hiroiro</a></p>
<p>紹介されたおかげで、また、twitterにもいっぱい<a href="http://topsy.com/tb/www.hiroiro.com/flash/369.html" target="_blank">tweet</a>されたらしいね！</p>
<br>

<p>紹介されすぎ！</p>
<p><a href="http://linkinpark41.blog90.fc2.com/blog-entry-302.html" target="_blank"> 弾幕ブロック崩し　これはすごいです The Melancholy of NUMB</a></p>
<p><a href="http://ameblo.jp/discoz3/entry-10435303687.html" target="_blank">パーティクル崩し｜EffectSome</a></p>
<p><a href="http://blog.livedoor.jp/gunbird/archives/2243005.html" target="_blank">今までに無いボールの数を実現したブロック崩しゲーム　パーティクル崩し : 銃とバッジは置いていけ</a></p>
<p><a href="http://blog.livedoor.jp/lkrejg/archives/65400112.html" target="_blank">たれ込み情報　Vol.32：フラシュ - 無料フラッシュゲーム</a></p>
<p><a href="http://clown-crown.seesaa.net/article/138051604.html" target="_blank">パーティクル崩し: clown-crown（仮）の虹色工房</a></p>
<p><a href="http://teruponblog.blog73.fc2.com/blog-entry-3423.html" target="_blank">?????????????????????Υ??  ????&#x00e5;?ι???????????????????</a></p>
<p><a href="http://papiyon-diary.cocolog-nifty.com/blog/2010/01/post-1.html" target="_blank">ページが見つかりません：@nifty</a></p>
<p><a href="http://7chues.blog81.fc2.com/blog-entry-360.html" target="_blank">黒歴史の塊  弾幕ブロック崩しが意外と面白い件について</a></p>
<p><a href="http://zoome.jp/haj_itori/diary/22/" target="_blank">no title</a></p>
<p>音楽って重要だなって思った↑</p>
<br>

<br>

<p>FORKされたやつの一個紹介。</p>
<p><a href="http://wonderfl.net/code/814131395e91fc76fcb60364bfe23b46e116b9a9" target="_blank">パーティクル崩し - RUSH - wonderfl build flash online</a></p>
<p>無限にパーティクルが復活するから、ずっと楽しめる！</p>
<br>

<br>

<p>ちなみにパーティクル崩しはオープンソースだから誰でも改造して遊べるよ〜。</p>
<p>レッツ<a href="http://wonderfl.net/" target="_blank">wonderfl</a>！</p>
<p>私も時間と、やる気と、アイディアが出せれば改造して遊ぼうかな！</p>
</div>
]]></content:encoded>
<dc:creator>coppieee</dc:creator>
<dc:date>2010-01-17T14:18:53+09:00</dc:date>
<dc:subject>wonderfl</dc:subject>
<dc:subject>Flash</dc:subject>
</item>
<item rdf:about="http://d.hatena.ne.jp/coppieee/20100110/1263140844">
<title>[AS]AS3の*型の問題点とその代替案 〜その1.*型は問題点が多い〜</title>
<link>http://d.hatena.ne.jp/coppieee/20100110/1263140844</link>
<description> 目次 長くなったので3部構成 その1.*型は問題点が多い その2.オブジェクトリテラルの長所 その3.解決策 静的に解決出来るところはすべてそうするべき 私は動的型付け言語は嫌いだ。どれくらい嫌いかというと、RubyもSchemeも、Pythonも、動的型付けという理由だけで、勉強し</description>

<content:encoded><![CDATA[
<div class="section">
<h4>目次</h4>
<p>長くなったので3部構成</p>

<ul>
<li>その1.*型は問題点が多い</li>
<li><a href="http://d.hatena.ne.jp/coppieee/20100110/1263140845" target="_blank">その2.オブジェクトリテラルの長所</a></li>
<li><a href="http://d.hatena.ne.jp/coppieee/20100110/1263140846" target="_blank">その3.解決策</a></li>
</ul>
<h4>静的に解決出来るところはすべてそうするべき</h4>
<p>私は動的型付け言語は嫌いだ。どれくらい嫌いかというと、RubyもSchemeも、Pythonも、動的型付けという理由だけで、勉強しようとしないぐらい。</p>
<p>動的型付け言語なんて滅びればいいのに。</p>
<p>AS1のを使っていた頃に、嫌というほど味わったのが私の中では大きい。（しかもAS1は弱い型付けだ！）</p>
<p>AS2、AS3とバージョンが上がり、Javaのように静的型チェックをしてくれるようになった。</p>
<p>しかしながら、AS3では*型やオブジェクトリテラル、dynamicクラスを使うことによって動的型付けでもコーディングすることは可能だ。</p>
<p>これらは動的にしか解決できない場合に使用すると大きな効果が期待される。が、それ以外の場面では、型（クラス）をきちんと作り、静的に解決すべきた。</p>
<h4>オブジェクトリテラルが使われている例</h4>
<p>ProgressionやTweener、Papervision3DなどAS3ライブラリの一部では*型が結構使われていたりする。</p>
<p>これはオブジェクトリテラルが短く書けるのでよく使われているのだが、動的型付けであるが故に弊害が出てくる。</p>
<p>Tweenerの例</p>
<pre class="syntax-highlight">
<span class="synIdentifier">package</span> {
<span class="synIdentifier">import</span> <span class="synConstant">flash</span>.<span class="synConstant">display</span>.<span class="synConstant">Graphics</span>;
<span class="synIdentifier">import</span> <span class="synConstant">flash</span>.<span class="synConstant">display</span>.<span class="synConstant">Sprite</span>;
<span class="synIdentifier">import</span> caurina.<span class="synConstant">transitions</span>.Tweener;
<span class="synIdentifier">public</span> <span class="synIdentifier">class</span> FlashTest <span class="synIdentifier">extends</span> <span class="synConstant">Sprite</span> {
<span class="synIdentifier">public</span> <span class="synIdentifier">function</span> FlashTest() {
<span class="synStatement">var</span> box:<span class="synConstant">Sprite</span> = <span class="synStatement">new</span> <span class="synConstant">Sprite</span>();
<span class="synStatement">var</span> g:<span class="synConstant">Graphics</span> = box.<span class="synConstant">graphics</span>;
g.<span class="synStatement">beginFill</span>(<span class="synConstant">0xFF0000</span>);
g.<span class="synIdentifier">drawRect</span>(<span class="synConstant">0</span>,<span class="synConstant">0</span>,<span class="synConstant">10</span>,<span class="synConstant">10</span>);
g.<span class="synStatement">endFill</span>();
<span class="synIdentifier">addChild</span>(box);
Tweener.addTween(box,<span class="synError">{</span>
x:<span class="synConstant">100</span>,
y:<span class="synConstant">100</span>,
delay:<span class="synConstant">0</span>.<span class="synConstant">5</span>,
<span class="synType">time</span>: <span class="synConstant">1</span>,
scaleX:<span class="synConstant">5</span>,
scaleY:<span class="synConstant">4</span>
<span class="synError">}</span>);
}
}
}
</pre>

<p>Tweener.addTween()の第二引数にオブジェクトリテラルが使われている。</p>
<p>ここにどのような問題が孕んでいるのか？</p>
<h4>問題1.静的型チェックが行われない</h4>
<p>オブジェクトリテラルを使用した場合、静的型チェックが行われない。</p>
<p>これはscaleXをscalexというふうにタイピングミスした時にはコンパイラはエラーを出してくれない。</p>
<p>また、scaleX:"10"のように、本当はNumber型を入れるべきところに、String型を入れた時もコンパイルエラーにならない。</p>
<p>つまりオブジェクトリテラルを使うということは静的型付けの一番の長所を使わないことになる。</p>
<h4>問題2.*型では何を代入すればいいか分からない</h4>
<pre class="syntax-highlight">
function foo(obj:*):void{
//code
}
</pre>

<p>こんなコードがあった場合、あなたはobjに何を入れればいいかわかりますか？</p>
<p>objに型さえついていれば、その型を代入すればいいということが理解出来るだろう。</p>
<p>しかし型が*の場合、ドキュメントを読まなければ理解できない。</p>
<p><a href="http://livedocs.adobe.com/flex/3_jp/langref/String.html" target="_blank">String</a>のメソッド(match)などの引数が*型のせいでいつもググって調べているのは私だけではないはず。</p>
<h4>問題3.*型ではコード補完が出ない</h4>
<p>コード補完の恩恵は美味しい。FlashDevelopを使っている人はよくわかっているだろう。</p>
<p>オブジェクトリテラルではそういった恩恵は受けられない。</p>
<p>どんなメンバがあったか、わざわざドキュメントまで探しに行かなければならない。</p>
<h4>問題4.*型では実行速度が遅い</h4>
<p>これは上の3つほどには気にならない問題。</p>
<p>だが、何千回もループして使用た場合パフォーマンスのボトルネックになりうる。</p>
<br>

<p>つづき</p>
<p><a href="http://d.hatena.ne.jp/coppieee/20100110/1263140845" target="_blank">その2.オブジェクトリテラル</a></p>
</div>
]]></content:encoded>
<dc:creator>coppieee</dc:creator>
<dc:date>2010-01-11T01:27:24+09:00</dc:date>
<dc:subject>AS</dc:subject>
</item>
<item rdf:about="http://d.hatena.ne.jp/coppieee/20100110/1263140845">
<title>[AS]AS3の*型の問題点とその代替案 〜その2.オブジェクトリテラルの長所〜</title>
<link>http://d.hatena.ne.jp/coppieee/20100110/1263140845</link>
<description> 目次 その1.*型は問題点が多い その2.オブジェクトリテラルの長所 その3.解決策 ではなぜ使う？ これらの問題があるのになぜオブジェクトリテラルと*型を使うのか？ まぁ理由があるからなのだが。 引数の多い関数では使いにくい //---Tweener.as--- class Tweener{ function</description>

<content:encoded><![CDATA[
<div class="section">
<h4>目次</h4>

<ul>
<li><a href="http://d.hatena.ne.jp/coppieee/20100110/1263140844" target="_blank">その1.*型は問題点が多い</a></li>
<li>その2.オブジェクトリテラルの長所</li>
<li><a href="http://d.hatena.ne.jp/coppieee/20100110/1263140846" target="_blank">その3.解決策</a></li>
</ul>
<h4>ではなぜ使う？</h4>
<p>これらの問題があるのになぜオブジェクトリテラルと*型を使うのか？</p>
<p>まぁ理由があるからなのだが。</p>
<br>

<h4>引数の多い関数では使いにくい</h4>
<pre class="syntax-highlight">
<span class="synComment">//---Tweener.as---</span>
<span class="synIdentifier">class</span> Tweener{
<span class="synIdentifier">function</span> addTween(obj:DisplayObject,x:<span class="synStatement">Number</span>=<span class="synConstant">0</span>,y:<span class="synStatement">Number</span>=<span class="synConstant">0</span>,alpha:<span class="synStatement">Number</span>=<span class="synConstant">1</span>,<span class="synType">time</span>:<span class="synStatement">Number</span>=<span class="synConstant">0</span>,delay:<span class="synStatement">Number</span>=<span class="synConstant">0</span>):<span class="synConstant">void</span>{
<span class="synComment">//code</span>
}
}
<span class="synComment">//---呼び出し---</span>
Tweener.addTween(obj,<span class="synConstant">100</span>,<span class="synConstant">100</span>,<span class="synConstant">1</span>,<span class="synConstant">5</span>);
</pre>

<p>addTween()の引数を*型にせず、一部羅列してみた例。</p>
<p>全部羅列しきれていない。</p>
<p>引数の順番を間違えないように注意深く使わないといけないし、途中の引数の省略ができない。</p>
<p>これでは使いにくすぎる。</p>
<h4>型を用意して初期化しても余計な一時変数が増えてしまう</h4>
<p>それならばクラスを用意してやって初期化すれば？</p>
<pre class="syntax-highlight">
<span class="synComment">//---Tweener.as---</span>
<span class="synIdentifier">class</span> Tweener{
<span class="synIdentifier">public</span> <span class="synIdentifier">function</span> addTween(obj:DisplayObject,args:TweenArgs):<span class="synConstant">void</span>{
<span class="synComment">//code</span>
}
}

<span class="synComment">//---TweenArgs.as---</span>
<span class="synIdentifier">class</span> TweenArgs{
<span class="synIdentifier">public</span> <span class="synStatement">var</span> <span class="synType">x</span>:<span class="synStatement">Number</span>=<span class="synConstant">0</span>;
<span class="synIdentifier">public</span> <span class="synStatement">var</span> <span class="synType">y</span>:<span class="synStatement">Number</span>=<span class="synConstant">0</span>;
<span class="synIdentifier">public</span> <span class="synStatement">var</span> <span class="synType">alpha</span>:<span class="synStatement">Number</span>=<span class="synConstant">1</span>;
<span class="synIdentifier">public</span> <span class="synStatement">var</span> <span class="synType">time</span>:<span class="synStatement">Number</span>=<span class="synConstant">0</span>;
<span class="synIdentifier">public</span> <span class="synStatement">var</span> <span class="synType">delay</span>:<span class="synStatement">Number</span>=<span class="synConstant">0</span>;
}

<span class="synComment">//---呼び出し---</span>
<span class="synStatement">var</span> args:TweenArgs = <span class="synStatement">new</span> TweenArgs();
args.<span class="synType">x</span> = <span class="synConstant">100</span>;
args.<span class="synType">y</span> = <span class="synConstant">100</span>;
args.<span class="synType">time</span> = <span class="synConstant">5</span>;
Tweener.addTween(obj,args);
</pre>

<p>擬似コード。</p>
<p>静的型付けのOOPではよくやる例。</p>
<p>さっきよりはマシになったが、argsという変数を使わないといけなくなった。</p>
<p>addTween()を大量に使う場合には、いちいち変数を用意するというのが面倒になる。</p>
<p>あとTweenArgsというクラスを作らないといけないという手間が増えるが、これはライブラリ提供者としての手間なのでここでは目をつむることにする。</p>
<h4>オブジェクトリテラルが一番シンプルにできる</h4>
<pre class="syntax-highlight">
<span class="synComment">//Tweener.as</span>
<span class="synIdentifier">class</span> Tweener{
<span class="synIdentifier">public</span> <span class="synIdentifier">function</span> addTween(obj:DisplayObject,args:*):<span class="synConstant">void</span>{
<span class="synComment">//code</span>
}
}
<span class="synComment">//---呼び出し---</span>
Tweener.addTween(obj,<span class="synError">{</span>x:<span class="synConstant">100</span>,y:<span class="synConstant">100</span>,<span class="synType">time</span>:<span class="synConstant">5</span><span class="synError">}</span>);
</pre>

<p>そう考えると、オブジェクトリテラルを使った例が、一番短く書けるというのがわかる。</p>
<p>しかしそれだと、静的型付けできない・・・。プログラマのジレンマ。</p>
<br>

<p>つづき</p>
<p><a href="http://d.hatena.ne.jp/coppieee/20100110/1263140846" target="_blank">その3.解決策</a></p>
</div>
]]></content:encoded>
<dc:creator>coppieee</dc:creator>
<dc:date>2010-01-11T01:27:25+09:00</dc:date>
<dc:subject>AS</dc:subject>
</item>
<item rdf:about="http://d.hatena.ne.jp/coppieee/20100110/1263140846">
<title>[AS]AS3の*型の問題点とその代替案 〜その3.解決策〜</title>
<link>http://d.hatena.ne.jp/coppieee/20100110/1263140846</link>
<description> 目次 その1.*型は問題点が多い その2.オブジェクトリテラルの長所 その3.解決策 解決策 オブジェクトリテラルのように書けて、静的型チェックもしたい。 そんな方法があるだろうか。 実は、クラスにちょっとした工夫を施すことによって解決できる。 //---Tweener.as--- clas</description>

<content:encoded><![CDATA[
<div class="section">
<h4>目次</h4>

<ul>
<li><a href="http://d.hatena.ne.jp/coppieee/20100110/1263140844" target="_blank">その1.*型は問題点が多い</a></li>
<li><a href="http://d.hatena.ne.jp/coppieee/20100110/1263140845" target="_blank">その2.オブジェクトリテラルの長所</a></li>
<li>その3.解決策</li>
</ul>
<h4>解決策</h4>
<p>オブジェクトリテラルのように書けて、静的型チェックもしたい。</p>
<p>そんな方法があるだろうか。</p>
<br>

<p>実は、クラスにちょっとした工夫を施すことによって解決できる。</p>
<pre class="syntax-highlight">
//---Tweener.as---
class Tweener{
public function addTween(obj:DisplayObject,args:TweenArgs):void{
//code
}
}

//---TweenArgs.as---
class TweenerArgs {
public function $x(value:Number):TweenerArgs { x = value; return this; }
public function $y(value:Number):TweenerArgs { y = value; return this; }
public function $time(value:Number):TweenerArgs { time = value; return this; }
public function $alpha(value:Number):TweenerArgs { alpha = value; return this; }
public function $delay(value:Number):TweenerArgs { delay = value;return this; }
public var x:Number = 0;
public var y:Number = 0;
public var alpha:Number = 1;
public var time:Number = 0;
public var delay:Number=0;
}
//---呼び出し---
addTweener(obj,new TweenerArgs().$x(100).$y(100).$time(5));
</pre>

<p>$のついたメソッドは、引数をプロパティに代入して、thisを返すのもだ。</p>
<p>これをメソッドチェーンで呼び出すことによって、連続して変数の代入をしている。</p>
<p>これなら、余計な一時変数を作る必要も無いし、オブジェクトリテラルと比べても、そこまで長くは無い。</p>
<p>しかも静的型チェックもしてくる！</p>
<br>

<p>ライブラリ提供側にとっては、そういったクラスを作らないといけないというコストが掛かるが、</p>
<p>使う側にとっては、静的型付けの利点が生かせる。</p>
<br>

<p>完璧だ！</p>
<p>オブジェクトリテラルを使いたいと思ったら、まずこの方法で検討してみることをオススメするよ！</p>
</div>
]]></content:encoded>
<dc:creator>coppieee</dc:creator>
<dc:date>2010-01-11T01:27:26+09:00</dc:date>
<dc:subject>AS</dc:subject>
</item>
<item rdf:about="http://d.hatena.ne.jp/coppieee/20091231/1262267441">
<title>2009年やったことまとめ</title>
<link>http://d.hatena.ne.jp/coppieee/20091231/1262267441</link>
<description> ブログ始めた。 twitter楽しー。 wonderflすっげー。 パーティクル崩しが思った以上の反響で俺感激 - 妄想宝箱 twitterで花火！ - 妄想宝箱 会社へインターン。 C#すっげー。拡張メソッドすっげー。 C#滅びろ！ Scala最強！ ジェネリク万歳！ ワッフル！ワッフル！ やっぱり</description>

<content:encoded><![CDATA[
<div class="section">

<ul>
<li>ブログ始めた。</li>
<li>twitter楽しー。</li>
<li>wonderflすっげー。

<ul>
<li><a href="http://d.hatena.ne.jp/coppieee/20090703/1246616060" target="_blank">パーティクル崩しが思った以上の反響で俺感激 - 妄想宝箱</a></li>
<li><a href="http://d.hatena.ne.jp/coppieee/20090908/1252413601" target="_blank">twitterで花火！ - 妄想宝箱</a></li>
</ul>
</li>
<li>会社へインターン。</li>
<li>C#すっげー。拡張メソッドすっげー。</li>
<li>C#滅びろ！</li>
<li>Scala最強！</li>
<li>ジェネリク万歳！</li>
<li><a href="http://d.hatena.ne.jp/coppieee/20091013/1255463440" target="_blank">ワッフル！ワッフル！</a></li>
<li>やっぱりASが好き。</li>
</ul>
<p>全然まとまってないまとめ。</p>
<p>twitterやらwonderflやらいろいろ楽しんだ一年でした。</p>
<p>どっちとも今年入ってから始めたらしい。</p>
<p>果たして私は成長できてるのでしょうか？</p>
<p>まだまだ足りませんね。</p>
<br>

<p>来年はもっとはっちゃけたことするぞー！</p>
<p>いや、まだ、今年数時間残ってる！今年中にやるぞ！</p>
<p>うおおおお。</p>
</div>
]]></content:encoded>
<dc:creator>coppieee</dc:creator>
<dc:date>2009-12-31T22:50:41+09:00</dc:date>
</item>
<item rdf:about="http://d.hatena.ne.jp/coppieee/20091019/1255986672">
<title>[AS][twitter]ワッフル名言、珍言集</title>
<link>http://d.hatena.ne.jp/coppieee/20091019/1255986672</link>
<description> twitter上で動くAS3のインタプリタBot作った！ - 妄想宝箱 AS3botを出してからまだ1週間もたってませんが、いろんな人に遊んでもらってます。 私、ハッピー。 まだまだおかしな所とかあるので、そこは随時改良していこうかと思います。 さて、みんなwaffflでどんな遊び方を</description>

<content:encoded><![CDATA[
<div class="section">
<p><a href="http://d.hatena.ne.jp/coppieee/20091013/1255463440" target="_blank">twitter上で動くAS3のインタプリタBot作った！ - 妄想宝箱</a></p>
<p>AS3botを出してからまだ1週間もたってませんが、いろんな人に遊んでもらってます。</p>
<p>私、ハッピー。</p>
<p>まだまだおかしな所とかあるので、そこは随時改良していこうかと思います。</p>
<br>

<p>さて、みんなwaffflでどんな遊び方をしてるというかというと、</p>
<p>ワッフルの正体を突き止めようとしたり、無限ループさせてワッフル落とそうとしたり、</p>
<p>バグを見つけようとしたり、ワッフルに変な発言をさせたり・・・・。</p>
<br>

<p>さすがFlasher。ということで、面白いコメントを一部抜粋して紹介していこうかと。</p>
<p>コピペして使えばいいんじゃない？</p>
<p>※botの名前がwafflwafflからwaffflに変わりました。なので、コピペして使う場合は、waffflに変えて使ってください。</p>
<br>

<blockquote>
<p><a href="https://twitter.com/mogera/status/4913581319" target="_blank">@mogera</a> @wafflwaffl var a:Array=["アイコ","マケ","カチ"];var h:int=0;var r:int=Math.random()*3;trace(a[(r-h+3)%3]);</p>
</blockquote>
<p><a href="http://twitter.com/wafffl/status/4913585417" target="_blank">結果</a></p>
<p>じゃんけん。</p>
<br>

<blockquote>
<p><a href="https://twitter.com/bkzen/status/4913702303" target="_blank">bkzen</a> @wafflwaffl try {throw function():void{trace("hige");}}catch (f: Function){f();}</p>
</blockquote>
<p><a href="http://twitter.com/wafffl/status/4913707524" target="_blank">結果</a></p>
<p>前の発言をリピートする魔法のスクリプト☆ (というかバグ)</p>
<p>AS3のコンパイラ自体がエラー落ちしちゃってよく分からない動作をする。</p>
<br>

<blockquote>
<p><a href="https://twitter.com/esuk/status/4913881086" target="_blank">esuk</a> @wafflwaffl trace('@wafflwaffl trace("@wafflwaffl")')</p>
</blockquote>
<p><a href="http://twitter.com/wafffl/status/4913884053" target="_blank">結果</a></p>
<p>ワッフルが自分自身のリプライに反応するかのテスト。</p>
<p>自分自身にはリプライしないようにちゃんと設定してあるので、一回だけtraceするだけです。</p>
<br>

<blockquote>
<p><a href="http://twitter.com/esuk/status/4915347010" target="_blank">esuk</a> @wafflwaffl (function(a:String):void{trace('['+a+']：');for(var i:int=0;i&#60;3;i++)trace(['[否定]','[承認]'][int(Math.random()*2)])})('帰る')</p>
</blockquote>
<p><a href="http://twitter.com/wafffl/status/4915349677" target="_blank">結果</a></p>
<p>帰ってよいかどうかワッフルに判定してもらう。</p>
<p>'帰る'の所を別の言葉に代えれば、他の判定もしてもらえます。</p>
<p>このときは承認2、否定1で、ワッフルに承認されてましたｗ</p>
<br>

<blockquote>
<p><a href="http://twitter.com/coppieee/status/4940999170" target="_blank">@coppieee</a> @wafflwaffl (function (i:int):void{trace(i);arguments.callee(i+1);})(0)</p>
</blockquote>
<p><a href="https://twitter.com/wafffl/status/4941016556" target="_blank">結果</a></p>
<p>無名関数と再起。</p>
<p>ちなみに無限ループになっても、一定時間たつと強制終了させるようになっています。</p>
<p>FlashのようにScriptTimeoutError例外は発生しません。</p>
<br>

<blockquote>
<p><a href="http://twitter.com/paq89/status/4958901287" target="_blank">@paq89</a> @wafflwaffl /*あれ？どこか間違えてる*/import flash.display.Sprite;new Sprite();</p>
</blockquote>
<p><a href="https://twitter.com/wafffl/status/4958930237" target="_blank">結果</a></p>
<p>コンパイルエラー。Spriteクラスねーよって言われる。</p>
<p>ワッフルは、Tamarinというやつを使っていて、そいつはコンソールで動きます。</p>
<p>なので、Spriteなどのクラスは持っていません。</p>
<p>基本、トップレベルのクラスしか宣言していません。（拡張すれば増やせるよ）</p>
<br>

<blockquote>
<p><a href="http://twitter.com/keno42/status/4981308585" target="_blank">@keno42</a> @wafflwaffl for(var x:int;x++&#60;100;){trace((x%3?"":"Fizz")+(x%5?"":"Buzz")||x)};</p>
</blockquote>
<p><a href="http://twitter.com/wafffl/status/4981313851" target="_blank">結果</a></p>
<p>FizzBuzz問題。</p>
<p>これより短い解答求む！</p>
<br>

<br>

<blockquote>
<p><a href="http://twitter.com/keno42/status/4983537288" target="_blank">@keno42</a> @wafflwaffl trace(0/0+"・・・だと・・・");</p>
</blockquote>
<p><a href="http://twitter.com/wafffl/status/4983548682" target="_blank">結果</a></p>
<p>吹いたｗ</p>
<br>

<blockquote>
<p><a href="http://twitter.com/paq89/status/4981632560" target="_blank">@paq89</a> @wafflwaffl trace("でも、本当の気持ちは"+[0][1])</p>
</blockquote>
<p><a href="https://twitter.com/wafffl/status/4981638831" target="_blank">結果</a></p>
<p>深いｗ</p>
</div>
]]></content:encoded>
<dc:creator>coppieee</dc:creator>
<dc:date>2009-10-20T06:11:12+09:00</dc:date>
<dc:subject>AS</dc:subject>
<dc:subject>twitter</dc:subject>
</item>
</rdf:RDF>

