ゲームの 動 きを 変 えてみよう
プロジェクトを 変更 して 動 きなどを 変 えてみたり、 機能 を 追加 してみたりしましょう。
設定 の 変更
マスの数を 減 らす
- 変更 するスプライト:
がクリックされたときに 以下 のように 変更 すると、 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を開始します。