乱数と選択

サイコロを投げるとき、どんな数字が出るかはわかりません。1が出たり5が出たり6が出たり。このような数字を乱数と呼びます。

Babylscriptは「乱数」という命令を備えています。「乱数」命令にはかっこの間に数字を書きます。Babylscriptは、1からあなたが指定した数字の間の数字のどれかを返してくれます。

左側のプログラム領域に、"表示(乱数(6));"と入力してください。実行ボタンをクリックすると何が表示されますか?このプログラムを何度か実行すると、いろいろな数字が表示されるはずです。

バラエティ番組のプログラムを書いてみましょう。この番組では、3つのドアが出てきます。青、赤、紫のドアです。1つのドアの先に賞品が隠されています。ドアは一つだけ開けることができ、賞品があれば大当たりです。

最初に、ドアに番号をつけましょう。青は1、赤は2、紫は3とします。乱数(3)を使って、賞品を置くドアを決めることができます。乱数(3)は1から3の間の数を返すことと、ドアにはそれぞれ1,2,3の番号がつけてあることに注目です。

プログラムは次にどのドアを開けるかを聞きます。赤、青、紫。そのためには「選択」命令を使います。選択命令には、最初に指示内容を示す文字列を渡します。次に、コンマを書いて、選択肢を示す文字列を並べます。あなたが最初の選択肢を選べば、選択命令は1を返します。2番目の選択肢を選べば2を、3番目の選択肢を選べば3を、というように働きます。

次に、プログラムがあなたにどのドアを開けるか聞いてきます。選択の内容は「あなた」という変数に格納されます。もし「あなた」が1なら、青いドアが選ばれたことを意味します。2なら赤、3なら紫という仕掛けです。

そして、プログラムは選ばれたドアが、賞品が隠れているドアと同じか調べます。賞品のドアを開けたら、プログラムが賞品が何か教えてくれます。試してみてください。

追加問題

これで、あなたはじゃんけんのようなちょっと複雑なゲームのプログラムを書く準備が整いました。このゲームでは、あなたとコンピュータがじゃんけんをします。あなたとコンピュータの選択で勝負が決まります。

プログラムではまずあなたのグー、チョキ、パーの選択を聞きます。

次に、コンピュータがグー、チョキ、パーを選択します。ここでは乱数()命令を使って、1から3のいずれかの数字を決め、コンピュータという変数に入れてから、コンピュータの選択を表示します。1がグー、2がパー、3がチョキであることを覚えておいてください。

最後に、どちらが勝ったのかを判断しなければなりません。あなたの選択とコンピュータの選択を見てどちらが勝ったかを決めます。コンピュータが3であなたが3なら、コンピュータもあなたもチョキなので、どちらも勝たず、プログラムは「引き分け」と表示します。コンピュータが1であなたが2なら、コンピュータがグーであなたがパーなので、あなたの勝ちです。

じゃんけんを3回して、コンピュータが勝敗を記録するようにプログラムを書きかえてみてください。

Programming Basics