じゃんけん


プログラムの 中身 ( なかみ ) を 詳 ( くわ ) しくみてみよう

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を送りゲームを開始します。

^