数えれば今回で早 5 回目。毎年恒例、北陸の恒例イベント (?) と言っても過言ではない C# 大好き MVP による、C# ドキドキ・ライブコーディング対決 !! をやってきました。これまでは @Fujiwo / @AILight / @xin9le の 3 人でしたが、今回は @RyotaMurohoshi が加わっての 4 人体制。
お品書き
今回は以下の 3 本建て。
- ふたりペアになって FizzBuzz を 1 行交代で書く
- 九九表を作る
- 4 人オセロ対決
オセロは事前準備がありましたが、それ以外の問題は相変わらず当日その場まで一切知らされないという徹底ぶり。何が来るか分からないという緊張感と、できなかったらどうしようとういう焦りは本当です。どんなに簡単でも冷や汗が出ますw
セッション資料
資料には以下が書かれています。
- 自己紹介
- C# の好きなところ / 推したいところ
- 4 人対戦オセロのアルゴリズム
ちょっとした裏話
@AILight さんが Twitter に書いていたので引用しておきます。
【ライブコーディング裏話】オセロのAIを集めてさ、ビルドしてエラが出なかったのに、実行してスタックオーバーフローとか何よ。セッション開始1時間前の出来事。 #toyamaburi #burikaigi
— Mitsuhito Ishino (@AILight) 2017年1月30日
【ライブコーディング裏話】画面側で、各PlayerのAIをインスタンス化しているので、個別に抜いてみても状況は変わらず。なにこれ。 #toyamaburi #burikaigi
— Mitsuhito Ishino (@AILight) 2017年1月30日
【ライブコーディング裏話】原因を調べていったら、福井人がお互いのAIを呼び合っている始末。。。そりゃスタックもなくなるわ。セッション開始30分前。亀川さんのセッション見れなかったし・・・ #toyamaburi #burikaigi
— Mitsuhito Ishino (@AILight) 2017年1月30日
【ライブコーディング裏話】しかも、もう一人の新潟人は、全部を自分の色を塗りつぶすロジック持ってきてたのが、この時点で判明。会場で一応お披露目をするが、失格がここで決定。#toyamaburi #burikaigi
— Mitsuhito Ishino (@AILight) 2017年1月30日
【ライブコーディング裏話】で、本当にドキドキしてライブコーディングをしていたのは実はこの時(笑)みんなの協力があって、無事にセッションを終えることが出来ました。 #toyamaburi #burikaigi
— Mitsuhito Ishino (@AILight) 2017年1月30日
セッション直前でプログラムが動かないという自分たち自身がセッションできないかも、というドキドキ/ハラハラに見舞われて本当に焦りましたw 少し詳しく説明すると、以下のようなことが起こっていました。
- オセロの AI (アルゴリズム) を作ってくるというお題が課せられる
- 誰のアルゴリズムが強いか分からないので、先に 5 回試行して一番強いやつを自分のアルゴリズムにしようとした @Fujiwo さん
- ネットワーク経由で最強と思われるアルゴリズムを自分のアルゴリズムとして利用しようとした @xin9le
- お互い全員の AI インスタンスを内部で勝手に生成/キャッシュする仕組みだった
- 期せずして
PlayerFujiwo
がPlayerXin9le
を生成し、PlayerXin9le
がPlayerFujiwo
を生成するという無限ループが発生 - このふたりが揃うと見事に
StackOverflowException
が飛ぶ
これまでにこんなことは一度もなかったのですが、もはやお互い何をしてくるか分からないので怖いですねw
まとめ
5 年続けてきて思うのは、一種のプログラミングエンターテイメントとしてセッションする側も見る側も楽しめていると実感できていることです。このような楽しみを今後も届けられればと思います。来年は @AILight さんからの「仕返し」が待っているようなので、僕も今から楽しみです!是非ご期待ください :)
【ライブコーディング裏話】みんなに言っておく。次回は福井人x2、新潟人に、俺がお仕置きをする。プログラム愛にあふれたセッションにするからお楽しみに♪ #toyamaburi #burikaigi
— Mitsuhito Ishino (@AILight) 2017年1月30日