プログラムの中身を詳しくみてみよう
1、2、3キーの入力でPCとじゃんけんするゲームのスクリプトについてスプライトごとに解説します。
プレイヤー
主な動き
- Startがクリックされたら「じゃん」と2秒言った後、 「キー入力!グー(1)、チョキ(2)、パー(3)」と考える。
- 変数inkeyが0でなくなる (つまり1、2、3いずれかが入力される)まで待つ。入力されたキーに応じて 「グー!」、「チョキ!」、「パー!」と言う。
- CPUの手(変数cpu)とPlayerの手( 変数inkey)を比べ、勝敗に応じて 「勝った!」、「負けた~」、「あいこか~」と言う。
- 1~3のキーが押されたら、変数inkeyにその数字をセットする。
Startを受け取ったとき
-
- 説明
- キー入力を待つ。 1:グー、2:チョキ、3:パー、として勝敗を判定する。
- 必要な処理
- セリフの表示
入力された手の判別
勝敗の判定 - コードの詳細
「じゃん」と2秒言います。(1秒遅れてCPUが「けん」と言います。)
プレイヤーにキー入力をうながすため「キー入力!グー(1)、チョキ(2)、パー(3)」と考えます。
inkeyに数値が入るのを待ちます。 どれかのキーが押されたとき のコードで1~3のキーが入力されるとinkey=0ではなくなります。
inkeyの値を調べて、 Playerの手を判別し言います。
cpu -inkeyを計算し flagに格納します。 これによりこの後の勝敗判別を簡単にしています。
以下のAのコードで勝敗の判別をします。
- A :
flag=1または flag=-2のときはPlayerの勝ちです。
[CPU:チョキ(2)]-[Player:グー(1)]=1
[CPU:パー(3)]-[Player:チョキ(2)]=1
[CPU:グー(1)]-[Player:パー(3)]=-2
「勝った!」と言い、ゲームは終了します。
条件に当てはまらなければ以下のBのコードでさらにあいこを判別します。 - B :
flag=0のときはあいこです。
[CPU:グー(1)]-[Player:グー(1)]=0
[CPU:チョキ(2)]-[Player:チョキ(2)]=0
[CPU:パー(3)]-[Player:パー(3)]=0
「あいこか~」と言い、ゲームは終了します。
条件に当てはまらなければPlayerの負けです。「負けた~」と言い、ゲームは終了します。
キー入力されたとき
-
- 説明
- 1から3のキーが入力されたらinkey にその数値をセットします。
- コードの詳細
どのキーが押されたのか調べます。
1キーならinkey=1にします。
2キーならinkey=2にします
3キーならinkey=3にします。
それ以外のキーならば何もしません。
CPU
主な動き
- Startがクリックされたら1秒まってから「けん!」と1秒言う。「Hmm...」と考える。
- 変数cpuに乱数(1~3)をセットする。
- 変数inkeyが0でなくなる (つまり1、2、3いずれかが入力がされる)まで待つ。 変数cpuの数値に応じて「グー!」、 「チョキ!」、「パー!」と言う。
- 2秒待ち、CPUの手(変数cpu)とPlayerの手( 変数inkey)を比べ、勝敗に応じて 「勝った!」、「負けた~」、「あいこか...」と言う。
Startを受け取ったとき
-
- 説明
- 初期状態に設定しキー入力を待つ。 1:グー、2:チョキ、3:パー、として勝敗を判定する。
- 必要な処理
- 変数の初期化
セリフの表示
乱数で手を決定
勝敗の判定 - コードの詳細
-
1秒待ってから「けん」と1秒言います。(先にPlayerが「じゃん」と言います) キー入力待ちの間「Hmm...」と考えます。
cpuに1~3の乱数(でたらめな数)をセットします。
inkeyに数値が入るのを待ちます。 どれかのキーが押されたとき のコードで1~3のキーが入力されると inkey=0ではなくなります。
cpuの値を調べて、CPUの手を判別し言います 。
2秒待ちます。(この間にPlayerスプライト側で flagに勝敗判別用の値を計算し格納します。)
以下のAのコードで勝敗の判別をします。
- A :
flag=-1または flag=2のときはCPUの勝ちです。
[CPU:グー(1)]-[Player:チョキ(2)]=-1
[CPU:チョキ(2)]-[Player:パー(3)]=-
[CPU:パー(3)]-[Player:グー(1)]=2
「勝った!」と言い、ゲームは終了します。
条件に当てはまらなければBのコードでさらにあいこを判別します。 - B :
flag=0のときはあいこです。
[CPU:グー(1)]-[Player:グー(1)]=0
[CPU:チョキ(2)]-[Player:チョキ(2)]=0
[CPU:パー(3)]-[Player:パー(3)]=0
「あいこか...」と言い、ゲームは終了します。
条件に当てはまらなければPlayerの負けです。「負けた~」と言い、ゲームは終了します。
Start
主な動き
- がクリックされたら変数cpu、inkey、flag を0にし(初期化)、コスチュームをStartにして表示する。
- クリックされたら各スプライトへStartを送り、 非表示にする(各スプライト Startを受け取ってゲーム開始)。
緑の旗がクリックされたとき
-
- 説明
- ゲームスタートの準備をする。
- 必要な処理
- 変数の初期化
Startの表示
マウスポインターが上に乗ったとき色を変える - コードの詳細
-
変数cpu、inkey、flag初期化するため0にします。
x座標(横の表示位置)を0、 y座標(縦の表示位置)を0にします。
コスチュームをStartにして表示します。 (ゲーム終了時は非表示になっているため)
マウスポインターがこのスプライトに触れているときは色を変え、 離れたら元の色に戻します。
このスプライトがクリックされたとき
-
- コードの詳細
-
コード「 緑の旗がクリックされたとき」が動作しているので、止めます。
各スプライトにStartを送りゲームを開始します。