今日のつちや

お疲れ様でした

GDCR17に参加してペアプロでLifegame作ってきた

こんにちは、@corocn です。 今年もAdvent Calendarの季節になってきました。今回はMisoca Advent Calendar 2017 の記事として書くことにします。

最近は、Teletype for AtomVisual Studio Live Share、AWS Cloud9などが発表されて、ペアプロの高まりを感じている今日このごろです。 今回は、2017/11/18に開催されたCodeRetreat @ 名古屋ギークバーに参加してきましたので、感想をつらつらと書こうかなと思います。

どんなイベント?

Lifegameを題材としたペアプロのイベントです。

実は夏頃にも同様のイベントに参加して、会社の開発ブログに参加報告を書きましたので、ルールなどは下記ブログを参照していただきたいです。

CodeRetreatに参加しました! 〜ペアプロのすゝめ〜 - Misoca開発ブログ

今回は、Global Day of Coderetreat 2017(GDCR2017) に参画していて、世界中で同時開催されるCoderetreatの1つとして開催されたのが特徴でした。

f:id:corocn:20171128212724j:plain

ルール説明中の写真です。

使用言語

私はRubyメインで参加しました。 参加者の使用言語の割合は、C#, Ruby, JavaScriptな感じでしたね。 特異な例としてExcel VBAがありました(後述) Lifegame初めて、ペアプロ初めて、という人が多くて慣れるまで時間がかかるようなイメージでした。

ご飯

会場のAdrianaさんは飯がうまい。スポンサー様ありがとうございます。 f:id:corocn:20171128212904j:plain

Excel VBA での発見

最初に組んだペアに合わせてExcel VBAで書くことになったのですが、これがなかなか面白かったです。 Excel!? VBA!? ウワッっと思うかもしれませんが、実は凄く良かったんですよ。(仕事で使うのはイヤですが)

Lifegameを書く時、私は以下のようなステップで実装することが多いです。

  1. セルのデータ構造を考える
  2. 初期値を適当に入れてみる
  3. 画面に描画する
  4. 次世代を計算するロジックを書く
  5. 計算した次世代を現在の世代として更新する
  6. ループして描画する

で、1セッションが45分なんですけど、初めてLifegameを書く人はルールを把握したいから4のロジックを書きたいのに、3の描画までで終わっちゃう人が多いんですよね。

しかしExcel VBAを使うと、

  1. セルのデータ構造を考える → エクセルのセルをそのままセルとして扱えば良い
  2. 初期値を適当に入れてみる → 黒く塗り潰した部分を生存としてすれば、初期値は塗るだけで良い
  3. 画面に描画する → できてる
  4. 次世代を計算するロジックを書く → ここを考えるだけでいい
  5. 計算した次世代を現在の世代として更新する → 複数シートをバッファとしてスワップすればできる
  6. ループして描画する → ロジックをループさせるだけ

ということで、ロジックを書くことに集中して、ざっくり雰囲気を掴んでもらうことができます。 初期値の設定も楽なので、色んなパターンを試してもらうこともできますね。

ペアの方が諸々初めての方でしたので、これで雰囲気掴んでもらうことができました。 そのペアは次セッションでGoogleのSpredsheetを使って実装していましたが・・・どうなったんだろう。

ツイートしたらお褒めの言葉を頂きました。

まとめ

5セッション脳みそフル回転で、結構ハードで疲れるイベントですが、楽しかったです。 次回はファシリテーションやってみようかなぁ。

明日は@eitoballさんがNGK2017の報告を書いてくれるようです。 参加したかったけど用事で参加できなかったので、楽しみにしています。