初心者のためのゲームプログラミング入門

プログラミングとゲームの杜

初心者のためのプログラミング入門 & ゲームプログラムの作り方入門

文系でもわかるBASIC入門

11.ふしぎ数当てゲームを作ってみよう

今までの学習でブログラムの基礎といえる命令を説明してきました。
まだまだ沢山の命令があるのですが、おさらいを兼ねてこれまで覚えた命令のみで
ゲームを作りたいと思います。

題材となるゲームは
あなたの心の中で決めた数をコンピュータが当てる
というちょっと不思議なゲームです。

 

1. 答えを知る前に作ってみよう

プログラミングする力を付けるために、答えを見るよりまず自分で作ってみて下さい。

次の画像を見て同じものを作って下さい。

basic ふしぎ数当てゲームを作る

処理の流れは次のようになります。

「1から15までの中で~(略)」のメッセージを表示
「決まりましたか?(y/n)」のメッセージを表示しながら入力待ち
以外を入力されたら、もう一度メッセージを繰り返し表示
入力がなら「次の質問に答えて下さい。」のメッセージを表示

どうでしょう、作れましたか?
では答え合わせです。

basic 初心者にも分かるプログラミング入門

作ってみたものと比べて下さい。
おっと、注意して欲しいのは上のプログラムとまったく同じ必要はありません

プログラミングの最優先事項は仕様通りに動くことです。
自分のスタイルで書いていいのです。
ただ、初めの内から「プログラムの見易さ」は意識した方がいいでしょう。

行番号40を見て下さい。
見慣れないORというのがあります。これは論理演算子といって
複数の条件を結合させるのに使います。
つまりこの行番号40では

変数yn$yまたはYならばラベル名*hyoujiへジャンプせよ

という意味になります。
もし論理演算子を使わないのであれば次のようになります。

basic 論理演算子とは

このように2行に分けて書いても同じ動作になります。

ちなみになぜ大文字・小文字の両方をチェックしているのか分かりますか?
これはユーザーに対する配慮で、人によっては大文字と小文字を意識しない人がいます。
もし小文字しか判定しない所に、大文字を入力する人が出てきたらどうでしょうか。
その人はきっと
ちゃんとYと入力しているのに正常に動かない。これは壊れてる
と思うことでしょう。
プログラミングする時には、そのソフトを使う人の立場にたって制作する必要が
あることを覚えておいて下さい。

 

2. 余計な処理は省略しよう

もう一度、先程のプログラムを見て下さい。

basic やさしいプログラムの作り方

行番号30 で入力メッセージに(y/n)というYNの入力を促す表示をしています。
にもかかわらず、Nを入力した時の処理が記述されてません。

今回の仕様はYが入力されていれば次の処理へ進み
それ以外は再入力のメッセージを繰り返すことになっています。
ですからY以外の処理はみな同じでいいのです。

プログラムを組む時は、仕様をよく理解して無駄な処理は行わないようにしましょう。

 

3. 質問する処理を作ろう

次の画面を見て下さい。
いくつかの数を見せて、YかNを入力させる仕組みを作って下さい。
数値の羅列には意味があるので、間違えないように。

コンピュータが心の中の数を当てる

これは特に問題ないですね。
答えは次のようになります。

初心者の為のプログラミング入門

行番号120 以降が新しく追加された部分です。
行番号120 では変数nazoに0を代入しています。
これは次のステップに必要なことなので、組み込んで下さい。

 

4. コンピュータが数を当てる仕組みを作ろう

ここは少し難しいのでプログラムを先に見せます。

数当てゲームの仕組み

赤い印が付いた行を追加して下さい。
上の画像と行番号が違っていてもかまいません。
LIST命令した時に画像と同じ順番で表示されればいいのです。

実行してみましょう。

2進数の仕組みを使った数当てゲーム

間違いがなければ、y、n,n,nと入力すればnazo=1と表示されます。

念のため、次は y、y、y、y と入力して下さい。
nozo=15と表示されればOKです。

basic でできる数当てゲーム

 

5. ゲームとしての締めくくり

あと少しで完成です。がんばりましょう。

変数nazoの値を
「あなたの好きな数はですね」のの部分に表示させます。

さらに「もう一度やりますか」のメッセージを表示して
繰り返しプレイできる仕組みを入れてみましょう。

ゲームの作り方初心者入門

どうでしょうか。答えを見ずに作れますか?
ちなみに、もう一度プレイした時の画面は次のようになります。

初心者におすすめなプログラム言語

さて答え合わせです。

初心者プログラム言語入門

行番号300 からが新しく追加された部分です。
行番号250 は削除してあります。

仕組みは今までに使ってきたものばかりなので、よく見れば理解できると思います。
途中にある単体のPRINT命令は、何も表示されない行を作ることで
メッセージを読み易くしています。
BASIC言語ではこのような工夫が必要になります。

 

最後に・・・

数を当てる仕組みは2進数の数え方を参考にしています。