僕はここだ!

読書記録とか、ポエムとか、メモとか、コードスニペットとか。まとまったのはQiitaにも書きます。(http://qiita.com/RyotaMurohoshi) 掲載内容は個人の見解であり、所属する企業を代表するものではありません。

BuriKaigi2017 in Toyama で ドキドキライブコーディングした! #ToyamaBuri

f:id:MRStar:20170205220312j:plain

toyama-eng.connpass.com

twitter.com

2017年1月28日(土)に、富山県民会館で開催された「BuriKaigi2017 in Toyama ~そろそろ寒ブリが美味しいくなる季節~」に参加しました。

そして、「C# 大好き MVP による、C# ドキドキ・ライブコーディング!!」で登壇しました。

タイトルこそ毎回違えど、この時期の北陸でのイベントはなんと8年目!

私自身は3回目の参加、毎年冬の楽しみなイベントの1つです!

ドキド・キライブコーディング とは?

以下、イベントページの「C# 大好き MVP による、C# ドキドキ・ライブコーディング!!」の説明より。

北信越Visual Studio and Development Technologies MVP 4名が C# の魅力について語ります。LT や コーディング ライブ。

北信越出身のMicrosoft MVP

そして、今年から私(新潟出身)が加わり

  • @AILightさんが出すお題を、セッション中その場でライブコーディングでする
  • @AILightさんが事前に出すお題を事前に作成し、セッション中その場で競わせる

という、恒例人気セッションです!

昨年までのドキドキ・ライブコーディング は?

 過去3回の「ドキドキ・ライブコーディング」事前作成のお題は

  • 2014年 オセロ
  • 2015年 七並べ
  • 2016年 テトリス(この年は事前作成じゃなくて、ライブコーディングでテトリスを作るというものでした)

 でした。

 そして今回、2017年のお題は再び「オセロ」です。

 オセロというと、プログラミングの授業・講義でよくあるテーマの一つですね。私も高専・大学でオセロを作った記憶があります。

 さて、この「ドキドキ・ライブコーディング」では、学校の課題ではありません。普通のオセロではないのです。

ここがすごいよ、ドキドキ・ライブコーディング

 普通のオセロであれば、定石からアルゴリズムを工夫することが大切です。

 しかしドキドキ・ライブコーディングでは違います。

 大切なのはオセロのアルゴリズムなどではなく、C#を駆使していかに他のMVPの相手を欺くのかが勝利のカギなのです。

 対戦相手の

 この中で一番注意しなくてはいけないのは、@Fujiwo さんです。去年と一昨年、相手のインスタンスを上書きして勝つなど インチキ チート ルールの隅をつつく戦略を得意とする@Fujiwo さん。今年も「私の役割を考えていたところです」など、とても意味深な発言をされており、必ず何かやってくることが予想できました。

 また今年は@xin9leさんもTwitterで、しきりに「IL(中間言語)が~」と発言しており、これは@Fujiwoさん以上に、汚い えげつない ハックをしてくる可能性を感じました。

 @AILightさんの、「罠にかかった若者(<-私のこと)」という発言もあり、私の警戒レベルはマックスになりました。

 そう、「C# ドキドキ・ライブコーディング」は、アルゴリズムやAIの授業ではないのです。

私の作戦

 私がほかのMVPを欺くために用意して作戦を説明します。

 「1ターンキル」です。

f:id:MRStar:20170205215932p:plain

  • ボードの盤面を書き換えて上の状態のようにする。
  • ボードの手番を私にする
  • 上記の処理をゲームスタートのボタン押下時に行う

 というものです。

 画面左上のただ一つ空いているマスに置けば勝てるという状況を作る作戦です。

 使っているC#の要素としては、

  • リフレクション
  • Form生成の監視
  • イベントの書き換え

 などです。

 対戦相手の皆さんは「プレイヤーを書き変える」など、えぐいこと 高度なことをやってきそうな雰囲気を感じたため、「何もさせないのがベスト」と判断し、「1ターンキル」という戦略を選びました。

結果

 次の画像は「1ターンキル」に成功しドヤ顔を決める私です。

f:id:MRStar:20170205220748p:plain

 作戦通り、「1ターンキル」を成功させることができました。

 しかし残念ながら、レギュレーション違反により失格となってしまいました。

 「相手のプレイヤーのインスタンスを書き換えるのはありだけど、盤はダメ。もうオセロじゃない。」

 とのコメントをいただいてしまいました。

 なるほど、残念です。

まとめ

 残念ながら失格になってしまいました。

 またそれに加えて、対戦相手の方たちの戦略・アルゴリズムの説明を聞いたところ

 完敗でした。悔しいです。

 失格にはなりましたが、来年また呼んでいただけるそうなので、その時はリベンジしたいと思います。

おまけ1

 結局4人中3人がずるしました。私と @Fujiwo さんと @xin9le さんです。

おまけ2

 勝ったのはずるしなかった @AILight さんです。

おまけ3

 ぶり、おいしかったです。

おまけ4

speakerdeck.com

関連

blog.xin9le.net