![]() | 乱数と選択 |
サイコロを投げるとき、どんな数字が出るかはわかりません。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回して、コンピュータが勝敗を記録するようにプログラムを書きかえてみてください。