リバーシ


ゲームの 動 ( うご ) きを 変 ( か ) えてみよう

プロジェクトを 変更 ( へんこう ) して 動 ( うご ) きなどを 変 ( か ) えてみたり、 機能 ( きのう ) を 追加 ( ついか ) してみたりしましょう。

設定 ( せってい ) の 変更 ( へんこう )

マスの数を 減 ( へ ) らす

  • 変更 ( へんこう ) するスプライト:
  • がクリックされたときに 以下 ( いか ) のように 変更 ( へんこう ) すると、 1辺のマスの数を8から4に 減 ( へ ) らすことができます。

マスの数を 減 ( へ ) らす

  • 変更 ( へんこう ) するスプライト:
  • がクリックされたときの、 以下 ( いか ) の 部分 ( ぶぶん ) の「1辺のマスの数を8から16に 増 ( ふ ) やします」を 変更 ( へんこう ) します。

    また、そのままだとはみ出してしまうので、 以下 ( いか ) のようにも 変更 ( へんこう ) します。

    そうすることで、 以下 ( いか ) のようにマスの大きさを半分にした 状態 ( じょうたい ) です。

ゲーム開始から終了までを 自動的 ( じどうてき ) に 再現 ( さいげん ) する 機能 ( きのう ) を 追加 ( ついか ) する

  • 対戦中 ( たいせんちゅう ) に石を 置 ( お ) いた 順番 ( じゅんばん ) を 記憶 ( きおく ) しておきます。
    対戦終了後 ( たいせんしゅうりょうご ) にREPLAYボタンを 押 ( お ) されたらREPLAYモードにし、 スペースボタンを 押 ( お ) すたびに1つ前の 対戦 ( たいせん ) と同じ 順番 ( じゅんばん ) で石を 置 ( お ) いていくことで開始から終了までを 再現 ( さいげん ) します。
    まず新しいスプライトとしてREPLAYボタンとマス-リプレイを 追加 ( ついか ) します。
  • REPLAYボタン
    新しいスプライトとしてREPLAYボタンを 追加 ( ついか ) します。

    上記の赤丸 部分 ( ぶぶん ) をクリックしてスプライトライブラリーを 開 ( ひら ) き、Button2を 選択 ( せんたく ) します。

    通常 ( つうじょう ) の 対戦時 ( たいせんじ ) とリプレイ時のコスチュームを作ります。
  • マス-リプレイ
    マスの 複製 ( ふくせい ) を作り、そのスプライトの名前をマス-リプレイにします。

次に 通常 ( つうじょう ) の 対戦 ( たいせん ) をおこなう 処理 ( しょり ) の中に1手ずつの 履歴 ( りれき ) を 保存 ( ほぞん ) する 機能 ( きのう ) を 追加 ( ついか ) します。

  • マス
    すべてのスプライト用のリスト 履歴 ( りれき ) -マスを作ります。

    初期化 ( しょきか ) に 以下 ( いか ) を 追加 ( ついか ) します。

    以下 ( いか ) が 変更 ( へんこう ) 後のスクリプトです。
  • このスプライトがクリックされたときに を 追加 ( ついか ) します。
    履歴 ( りれき ) にはどちらのターンであるかの 情報 ( じょうほう ) も 含 ( ふく ) むので必ず よりも前に 追加 ( ついか ) します。
    以下 ( いか ) が 変更 ( へんこう ) 後のスクリプトです。
  • リプレイ開始を受け取ったときのスクリプトを 追加 ( ついか ) します。

    このスクリプトではリプレイ開始 を受け取ったら(リプレイモードになったら)、 表示 ( ひょうじ ) 中のクローンをすべて 削除 ( さくじょ ) しています。

REPLAYボタンにスクリプトを 追加 ( ついか ) します。

  • REPLAYボタン
    がクリックされたとき( 通常 ( つうじょう ) の 対戦 ( たいせん ) を開始するとき)には ボタンを 表示 ( ひょうじ ) する 座標 ( ざひょう ) を 設定 ( せってい ) し、 通常 ( つうじょう ) の 対戦時 ( たいせんじ ) のコスチュームにします。
    このスプライトがクリックされたとき (リプレイを開始するとき)にはリプレイ時のコスチュームにし、 リプレイ開始 を送ります(マスとマス-リプレイが受け取ります)。

マス-リプレイのスクリプトを 変更 ( へんこう ) します。

がクリックされたとき

    • 説明 ( せつめい )
    • 非表示 ( ひひょうじ ) にします。クローンではなくオリジナルであることがわかるように クローン?をnoにします。

初期化 ( しょきか )

    • 説明 ( せつめい )
    • 各変数 ( かくへんすう ) 、リストを 初期化 ( しょきか ) します。

    •  
    • コードの 詳細 ( しょうさい )
    • ターンを1にします。
      現在の手数を1にします。 コスチュームをなしにします。
      マスリストの 要素 ( ようそ ) を 一旦 ( いったん ) すべて 削除 ( さくじょ ) します。
      仮想 ( かそう ) の 盤面 ( ばんめん ) のマスの数だけマスリストに0を 追加 ( ついか ) します。

リプレイ開始を受け取ったとき

    • 説明 ( せつめい )
    • 並 ( なら ) べられているマス(クローン)を 一旦 ( いったん ) すべて 削除 ( さくじょ ) し、 通常 ( つうじょう ) の 対戦 ( たいせん ) と同じような形で 配置 ( はいち ) します。

    •  
    • コードの 詳細 ( しょうさい )
    • クローンであれば(クローン?=yesならば) 削除 ( さくじょ ) します。

      初期化 ( しょきか ) を実行して 各変数 ( かくへんすう ) 、リストを初期の 状態 ( じょうたい ) にします。( 初期化 ( しょきか ) の内容はマスの場合と少し 異 ( こと ) なります)

      表示 ( ひょうじ ) されていたクローンが 一旦 ( いったん ) すべて 削除 ( さくじょ ) されてから新しくマスを 並 ( なら ) べたいので 念 ( ねん ) のため1秒待ちます。

      マスを 並 ( なら ) べるを実行して各マスを 配置 ( はいち ) します。

      石を中央に 置 ( お ) くを実行して 盤面 ( ばんめん ) の中央に黒を2つ、白を2つ石を 置 ( お ) きます。

      石更新を送ります。

スペースキーが 押 ( お ) されたとき

    • 説明 ( せつめい )
    • 履歴 ( りれき ) -マスリストから 順番 ( じゅんばん ) に 履歴 ( りれき ) を 抽出 ( ちゅうしゅつ ) し、 該当 ( がいとう ) するマスに石を 並 ( なら ) べていきます。

      スペースキーが 押 ( お ) されたときの イベントはオリジナルとすべてのクローンが受け取るので、 履歴 ( りれき ) から取得したマス番号に 該当 ( がいとう ) するクローンのみが 以降 ( いこう ) の 処理 ( しょり ) を実行するようにします。 スペースキーが1回 押 ( お ) された時に石を 置 ( お ) く 処理 ( しょり ) を実行するマスは常に1つだけです。

      実際 ( じっさい ) に石を 置 ( お ) いて 挟 ( はさ ) んだ石を 裏 ( うら ) 返す 処理 ( しょり ) などは 通常 ( つうじょう ) の 対戦時 ( たいせんじ ) と同じ 処理 ( しょり ) をします。

    •  
    • コードの 詳細 ( しょうさい )
    • 履歴 ( りれき ) -マスリストから 現在の手数に 該当 ( がいとう ) する 履歴 ( りれき ) 情報 ( じょうほう ) を取り出します。

      履歴 ( りれき ) にはその手数の時に石を 置 ( お ) いたマスの番号が入っています。 黒の番であればそのままプラスの 値 ( あたい ) 、白の番であればマスの番号に-1をかけたマイナスの 値 ( あたい ) が入っています。

      つまり 履歴 ( りれき ) から取り出した 値 ( あたい ) の 絶対値 ( ぜったいち ) が石を 置 ( お ) いたマスの番号となります。

      履歴 ( りれき ) から取り出したマス番号と同じ番号が割り当てられているマス(クローン)のみ、 それ 以降 ( いこう ) の 処理 ( しょり ) を実行して石を 置 ( お ) きます。

      処理 ( しょり ) を実行するマスは1つだけであり、それ以外のマスは何もせずにスクリプトを終了します。

      履歴 ( りれき ) から取り出した 値 ( あたい ) がマイナスの場合はターンを-1(白)にし、 プラスの場合はターンを1(黒)にします。

      それ 以降 ( いこう ) は 通常 ( つうじょう ) の 対戦時 ( たいせんじ ) と同じようにして石を 置 ( お ) き、 挟 ( はさ ) んだ石を 裏 ( うら ) 返します。

      最後に現在の手数を1 増 ( ふ ) やすブロックを 追加 ( ついか ) します。

  • 削除 ( さくじょ ) するスクリプト
    • 盤面 ( ばんめん ) の 設定 ( せってい )
    • このスプライトがクリックされたとき
  • 変更 ( へんこう ) しないスクリプト
    • マスを 並 ( なら ) べる
    • 石を中央に 置 ( お ) く
    • クローンされたとき
    • 石 更新 ( こうしん ) を受け取ったとき
    • 石を 置 ( お ) ける?
    • この方向で 裏 ( うら ) 返せる?
    • 各方向を 裏 ( うら ) 返す
    • 1方向を 裏 ( うら ) 返す
    • 黒白( 仮 ( かり ) )→ 確定 ( かくてい )

以上で 変更 ( へんこう ) は 完了 ( かんりょう ) です。次のような 動 ( うご ) きとなります。


  • 通常 ( つうじょう ) の 対戦後 ( たいせんご ) にREPLAYボタンを 押 ( お ) すとREPLAYを開始します。
^