[ 小さいプログラムから ]

※途中で戻りたい場合は、ブラウザの「戻る」機能を使ってください。

まずは「数当てゲーム」を作ってみる

ということで、まずは「ロト6」のキモとなる「数当てゲーム」を作ってみましょう。
0から9までだと10通りとなり、当たる確率が低く面白みに欠けるので、1から5の5通りの中から1つを当てるという処理(ゲーム)を作ってみたいと思います。

ここで思いつく処理の順番を考えて見ましょう。
  1. コンピュータ側で無作為に1から5までの数字の中から一つを選んでおく。
  2. プレイヤーが選んだ1から5までの数字を一つ入力させる。
  3. 入力された数字と選んでおいた数字を比較させる。
  4. 同じなら、「当たり!!」と表示させる。
  5. 違うなら、「はずれ」と表示させる。
  6. 1番の処理へ戻る。
こんなところでしょうか?

この処理をMSX・BASICの命令に置き換えていくのです。

コンピュータ側で無作為に1から5までの数字の中から一つを選んでおく。

この処理を考えて見ます。

コンピュータが無作為に数字を選ぶ関数(命令)は、RND関数(ランダム関数)です。

書式はRND(n)です。

発生する乱数はnが、

正の時は0から1未満の数

0の時は一つ前に発生させた数

負の時は乱数を初期化(負の値によって、固有の乱数系列を作ることが出来る)

となります。

ですから、ここではRND(1)を使います。

実際に結果を表示させて見ましょう。

RND(1)の内容をPRINTで表示させるダイレクト命令です。
小数点以下、14桁の数字が現れました。
数字も程よくバラけてます。

こうなると、整数一桁だけ欲しい場合はさらに関数を使い、欲しい条件に合わせます。

まず整数にしたいので、INT関数(インテジャー関数)を使います。

書式はINT(式)です。

式の数値を超えない最大の整数を得ます。

ここで、そのままRND(1)をINT関数でくくってしまうと、0ばかりの結果になってしまいますので、狙うのは次の小数第1位の数字です。

となると、10倍することで小数第1位の数字が整数となります。

その結果をINT関数でくくります。

RND(1)に10倍して、正数化をしています。
ランダムに整数一桁を得ることが出来ました。
イエイッ!!

そして、この結果を記憶させておく必要がありますから、変数(ここではAとします)に代入させます。

代入するためには式を=(イコール)で結びます。

また、決まりとして右の式から左の式に代入されるので注意しましょう。

先程の式をイコールで変数Aに代入します。
右の式の結果を左の式に代入することを確認してください。
変数Aの内容を表示させて見ると、整数一桁が見事に表示されました。
パチパチパチ・・・。

これで、「無作為に一桁の正の整数をコンピュータに選ばせて記憶させる」ことができました。
次章からは、さらに進めていきます。

 

Copyright(C) 2006. ピコピコテクノロジー All Right Reserved.