プログラムの 中身 を 詳 しくみてみよう
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を送りゲームを開始します。