xin9le.net

Microsoft の製品/技術が大好きな Microsoft MVP な管理人の技術ブログです。

MVP Community Camp 2015 資料

富山合同勉強会 .NET & Java ~ぶりしゃぶで休もう~ という、.NET と Java とブリしゃぶがごった煮になった、激アツな勉強会に参加/登壇してきました。ホテルのイベントルームを貸し切って .NET 部屋と Java 部屋に分けてセッションを行い、興味のある方を自由に聞くというスタイルです。.NET 側は MVP Community Camp 2015 -北陸会場- も兼ねていました。

MVP Community Camp

かなりの大部屋だったこともありスクリーンも相当大きかったです。そこに何も表示しないで参加者の皆さんを迎え入れるのも何なので、こんなコードを表示してのお出迎え。ちょっとした遊び心でした。

Welcome Code

セッションは ASP.NET 5、音声伝送技術、Windows Server の移行方法、Windows 10、C# / F# / Java の Generics に関するオープンディスカッションなど、大変興味深いものが目白押しでした。夜はブリしゃぶをたらふく食べ、雪舞う真冬の露天風呂を貸し切り状態で堪能し、などと超やりたい放題な一日でしたw

ドキドキ・ライブコーディング対決

私はと言うと、そろそろ MVP Community Camp 北陸会場の名物と呼んでもよいかもしれない、北信越の .NET MVP 3人衆 (@AILight / @Fujiwo / @xin9le) によるライブコーディング対決をしました。今回で 3 回目。大変ありがたいことに毎回大きな反響があり、これまでもアンケートでたくさんのコメントや高い満足度を頂いておりましたが、今回も NSAT 183 と大変な高評価を頂きました。ご参加くださったみなさん、本当にありがとうございました!

さて、今回のライブコーディング対決のお題は LINQ でした。出題された問題は基本的にはどれも簡単なものでしたので割愛しますが、ひとつだけ「某浅草の友人」から出題された問題を紹介します。セッション中には時間の関係でチャレンジできなかった問題です。実は私もまだ解いていません。ご興味があれば、ぜひチャレンジしてみてください。

'01001' のような 2 進数を表す文字列があるとします。LINQ を使ってこの文字列を以下のようなコンソール出力に変えなさい。
****   *   ****   ****   *
*  *   *   *  *   *  *   *
*  *   *   *  *   *  *   *
****   *   ****   ****   *

ちなみに、毎度のことながら問題を作るのは石野さんで、私と小島さん (@Fujiwo) は一切問題を知らされていませんでした。解いている方の気分はネプリーグのファイブボンバー的な感じで、どんなに簡単な問題でもめちゃくちゃテンパりますし、瞬発力を発揮しなければならないのは本当に大変です。それこそタイプミスなんかしている場合ではない!と、そんなこんなで頑張ってはいたのですが、結局「% と / を間違ってた」とか盛大に野次られる始末。はい、ごめんなさい...。

七並べ AI 対決

今回のメインディッシュは七並べの AI 対決でした。これはライブコーディング対決とは違いセッション前から準備していたものです。事前に各自で作ってきた AI を 3 回勝負で対決させ、勝率の一番高かった人が勝つというルールです。パスは 3 回まで OK、戦略的パスももちろん OK。

WpfSevens

対決前には自分たちが考えてきたアルゴリズムを参加者の皆さんにプレゼンしました。俺の AI はこう動く、と。私のアルゴリズムは以下のようになっています。結構頑張ったのではないかと思いますし、(いろいろなハプニングはありつつも) 実際 1 位を獲得できました :)

ソースコード

アンケートのコメントに「ソースコードを公開してほしい」との声がありましたので、GitHub にて公開しました。ぜひクローンして自分の AI を追加し、私たちの AI と対戦させてみてください。結構楽しめると思います :)

WpfSevens

セッション動画

そんなこんなで盛り上がったセッション動画が公開されていました。こんなんでいいのか感はあるけれど、現地は本当に大盛況でした!

その他の記事