皆さんこんにちはMeTechです。
今日から不定期連載でScratch(スクラッチ)でのプログラミングを行っていきます。
今回挑戦するのは、プログラミング界では有名?なフィズバズ問題というものです。
Scratchの基本的な使い方から実際のプログラミングまで順を追って説明していきます。
フィズバズ問題とは?
プログラミングができないプログラマー志願者を見分けるために考案されたもので、
面接などの際に決められた言語でフィズバズというゲームを画面上に表示させる様に指示を出すことで志願者がプログラミングが出来るのかどうか見極めるというものです。
現在は「制限時間2分以内」「より少ない文字数で」などの制限を加えながら腕試しにも用いられています。
フィズバズとは?
フィズバズとは英語圏の国で行われる言葉遊びの一つです。
ルールは、数人で1から順番に数字を言っていくだけなのですが、
3の倍数の時は「フィズ」5の倍数の時は「バズ」3と5の公倍数の時は「フィズバズ」と言わなければなりません。
例
AさんBさんCさんの3人で行う場合
- Aさん・・・1
- Bさん・・・2
- Cさん・・・フィズ
- Aさん・・・4
- Bさん・・・バズ
というような感じです。
間違えた人から順に抜けていき、最後の一人になるまで行います。
余談ですが、昔に流行った世界のナベアツさんの3のつく数字だけアホになるというネタも一種のフィズバズですね(笑)
どのようなものを作るのか?
さて、挑戦する問題は決まりましたがもう少し詳細を決めていきましょう。
このフィズバズゲームは、本来複数人で行うのですが、今回は画面上にルール通りにゲームを再現するだけなので、Scratchのキャラクターである猫に一人でやってもらいましょう。
この子です。
また、正しく記述すると間違えることがないので永遠に終わりません。
その為、100に到達するまでという制限も加えます。
そして最後のルールとして、「シーケンス処理」「ループ処理」「条件分岐」の三つを使って出来るだけ簡潔に行うこととします。
実際に動くとこんな感じです。
※下の動きを見てみるボタンを押してください
※画像の大きさが合ってないのは気にしないでください(汗)
「シーケンス処理」「ループ処理」「条件分岐」とは?
プログラミングの基本的な考え方に「シーケンス処理」「ループ処理」「条件分岐」というのがあります。
シーケンス処理
命令を順番に実行します。
これは一番基本です。
ループ処理
同じ動作を決められた回数繰り返します。
これによりプログラミングの手間が減ります。
条件分岐
決められた条件によって動作を変えます。
これによりより複雑なプログラミングが出来ます。
基本的に複雑なものでなければシーケンス処理のみで構いません。
今回のフィズバズ問題も実際はシーケンス処理のみで作る事が出来ます。
しかし、この場合画面に表示する文字をすべて書き出していかなくてはなりません。
例
画面に表示する処理
- 1を表示する
- 1を消す
- 2を表示する
- 2を消す
- フィズを表示する
というような感じです。
まだ今回の100までであれば何とかなるかもしれませんが、1万回となった場合
おそらく挫折すると思います。
私自身もそんなに沢山書きたくありません。
その為の「ループ処理」と「条件分岐」なのです。
それでは、今回は概要の説明だけで終わってしまいましたが
次回からはScratchの基本的な使い方や実際のプログラミングについて書いていきます。
まとめ
- Scratchでフィズバズ問題を作る
- 猫のキャラクターが一人で100になるまでフィズバズゲームを行う
- 「シーケンス処理」「ループ処理」「条件分岐」を使う