GDCR17に参加してペアプロでLifegame作ってきた
こんにちは、@corocn です。 今年もAdvent Calendarの季節になってきました。今回はMisoca Advent Calendar 2017 の記事として書くことにします。
最近は、Teletype for AtomやVisual Studio Live Share、AWS Cloud9などが発表されて、ペアプロの高まりを感じている今日このごろです。 今回は、2017/11/18に開催されたCodeRetreat @ 名古屋ギークバーに参加してきましたので、感想をつらつらと書こうかなと思います。
どんなイベント?
Lifegameを題材としたペアプロのイベントです。
実は夏頃にも同様のイベントに参加して、会社の開発ブログに参加報告を書きましたので、ルールなどは下記ブログを参照していただきたいです。
CodeRetreatに参加しました! 〜ペアプロのすゝめ〜 - Misoca開発ブログ
今回は、Global Day of Coderetreat 2017(GDCR2017) に参画していて、世界中で同時開催されるCoderetreatの1つとして開催されたのが特徴でした。
ルール説明中の写真です。
使用言語
私はRubyメインで参加しました。 参加者の使用言語の割合は、C#, Ruby, JavaScriptな感じでしたね。 特異な例としてExcel VBAがありました(後述) Lifegame初めて、ペアプロ初めて、という人が多くて慣れるまで時間がかかるようなイメージでした。
ご飯
会場のAdrianaさんは飯がうまい。スポンサー様ありがとうございます。
Excel VBA での発見
最初に組んだペアに合わせてExcel VBAで書くことになったのですが、これがなかなか面白かったです。 Excel!? VBA!? ウワッっと思うかもしれませんが、実は凄く良かったんですよ。(仕事で使うのはイヤですが)
Lifegameを書く時、私は以下のようなステップで実装することが多いです。
- セルのデータ構造を考える
- 初期値を適当に入れてみる
- 画面に描画する
- 次世代を計算するロジックを書く
- 計算した次世代を現在の世代として更新する
- ループして描画する
で、1セッションが45分なんですけど、初めてLifegameを書く人はルールを把握したいから4のロジックを書きたいのに、3の描画までで終わっちゃう人が多いんですよね。
- セルのデータ構造を考える → エクセルのセルをそのままセルとして扱えば良い
- 初期値を適当に入れてみる → 黒く塗り潰した部分を生存としてすれば、初期値は塗るだけで良い
- 画面に描画する → できてる
- 次世代を計算するロジックを書く → ここを考えるだけでいい
- 計算した次世代を現在の世代として更新する → 複数シートをバッファとしてスワップすればできる
- ループして描画する → ロジックをループさせるだけ
ということで、ロジックを書くことに集中して、ざっくり雰囲気を掴んでもらうことができます。 初期値の設定も楽なので、色んなパターンを試してもらうこともできますね。
ペアの方が諸々初めての方でしたので、これで雰囲気掴んでもらうことができました。 そのペアは次セッションでGoogleのSpredsheetを使って実装していましたが・・・どうなったんだろう。
ツイートしたらお褒めの言葉を頂きました。
まとめです pic.twitter.com/n0WaabsGGl
— ころさん (@corocn) 2017年11月18日
まとめ
5セッション脳みそフル回転で、結構ハードで疲れるイベントですが、楽しかったです。 次回はファシリテーションやってみようかなぁ。
明日は@eitoballさんがNGK2017の報告を書いてくれるようです。 参加したかったけど用事で参加できなかったので、楽しみにしています。