ブラウザでライフゲームつくった - blog.jgs.me

(ここにgifがあった)
ライフゲームの世界 - 人工知能に関する断創録
を読みまして、特に終盤の最近みつかったパタンに関する動画に盛り上がったのでライフゲームをつくりました。
lifegamejs
東京へ向かう新幹線の中で、「そうだ!backbone.jsつかってみたかったしMVCやってみるか〜〜〜?」って意気込んで作ってたらいまいちうまくいかなくて困ったまま東京へ着きました。代々木で父たち(じゅんなすさん)と米を食べているときに、父29に「Viewmodelひとつでつくれるね!」と指摘されたのでウオオ!って帰りの新幹線でMBPを開いてknockout.jsをダウンロードした瞬間に寝て起きたら京都だったので(酔っ払い)、今朝モリモリコードを書いて完成しました。
アルゴリズム自体は単純なので、すぐ実装できるのですがknockout.js慣れてなさすぎてknockoutされてきた過去を持つので(0勝3敗KO負け)大変でしたが、分かると楽しいです。

困ったところその1
Viewmodelをfunctionで宣言したときにcoffeescriptで書いてるとthisをreturnしてやらないとbindしてくれない
最後にthisを書いておかないと最後のメソッドがreturnされてしまってbindしてくれないのだー!(これに気付かなくてしばらくハマった)

困ったところその2
knockout.jsで多次元配列をbindするときのいろいろ
多次元配列を knockout で扱うときは observableArray() に observableArray() を push して、その中の bind したい値にも observable() を使うとうまく bind できるようになりました。それから、その多次元配列の値を取得するときは ary()0()1() みたいな感じでアクセスしないといけないのが若干気持ち悪いです。あと、 jade(html) では template を書いておくのですが
みたいな感じで書くとデータが bind されるようになりました。
いくつか 追加したい機能 があるので、暇があるときにコードを書いていきたいです。
もしよかったらPRなどよろしくおねがいします!

January 10th, 2013 6:37pm
original: http://blog.jgs.me/post/40164787923
#20130110 #0110

関連ページとランダムに選ばれたページ

筆者について

jigsaw(ジグソウ、1991年6月12日-)は日本のプログラマ、会社代表。本名は小林貴也(こばやし たかや)。主にウェブ、フロントエンド領域で活動している。カミング・スーン合同会社の代表社員。
さらに詳しく

寄附について

面白かったらBTCETHでの寄附をお待ちしております。
寄附のきろく