ランチ会でFizzBuzz大会をやってみました

2月 27, 2018 / Posted by 亀田 義裕 / 0 Comments

弊社では週に1回、スタッフみんなでランチ会を開いているのですが、
今日のランチ会で、余興としてFizzBuzz問題をみんなで解くコンテストを開催しました。

簡単すぎるんじゃないかといった心配も出ましたが、時間制限を
設けてコードを書くということを普段あまりしないので、FizzBuzzでも十分楽しめたようです。

今回の FizzBuzzコンテストの手順

* レギュレーションを配布
* みんなで制限時間(15分になりました)を決めてコーディング
* 制限時間が来たら、各々のPCにソースコードと結果が見えるようにして、お互いのコードを鑑賞する

レギュレーションの内容は写真を参照してください。

今回のレギュレーションでは、普通のFizzBuzzの他に、ちょっと条件を加えた
問題も追加して、FizzBuzzを知っている人も楽しめるように工夫しました。

実際にコンテストをやってみたところ、コーディングをするのも楽しかったし、
他人の解法を見るのも楽しくて良かったです。FizzBuzzのような短いプログラムでも、
まったく同じプログラムはなくて、それぞれの流儀や価値観が垣間見えて
面白いですね。

以下、公開してもいいよー、と許可してもらったスタッフのプログラムを紹介します。

JavaScriptのプログラムですね。ループ文を使った解法です。

Rubyのコードです。テンプレートメソッドパターンを使って、判定処理を切り替えるだけで2つの問題を解決できるところに、作者のこだわりを感じます。

Pythonのコードです。
Pythonで1から100のレンジを作るには101までって書かないといけないのかー(Python初心者並感)、という知見が得られました。

Rubyのコードです。
15で割り切れるかどうかを判定しないで書いたところにこだわりを感じます。

Kotlinのコードです。
mapを使ってるところがユニークです。

Rubyのコードです。正規表現で数字に3と5が含まれてることをチェックしてますね。

Kotlinのコードです。
勉強中の言語で書いてくれました。新しいことにチャレンジしているのが垣間見えて、勢いを感じるコードですね。

以上です。
コードの公開を許可していただいたスタッフのみなさん、本当にありがとうございました!

プログラミングコンテストは、コードで遊ぶ場としてなかなか楽しかったです。
たまーにやると、また楽しめるかなと感じたので、そのうちまた開催しようかなと思います。