スクラッチで作る「神経衰弱」7回目の今回で完成となります。
前回までで1人プレイ用のゲームはできましたので、今回は複数人でプレイできるような仕組みを作っていきます。
複数でプレイするときのルールですが、プレイヤーの引いたカードがそろわなかったら順番交代、もしプレイヤーがひいたカードが同じなら再度プレイできるようにしておきましょう。
仕組みが大きく変わりますので、全てのスクリプトを確認していきます。
複雑になるので、前回最後で作った演出に関しては、いったん無しということで進めます。
まずは以下のサンプルをご確認いただき、完成イメージをつかんでみてください!
ステージのプログラム
先に通常画面(ゲーム進行中の背景)を選択し、ステージのプログラムを作成します。
手本では「BlueSky」の背景を選択しました。
①事前にリストを2つ作成します。リスト「プレイヤー」はプレイヤーの名前を保存するリストです。
リスト「スコア」はプレイヤーごとのスコアを保存するリストです。
旗が押された後に、ともに中身をすべて削除しておきましょう。
初期化の前後、どちらでもいいので、リスト「スコア」を隠しておきます。
リスト「プレイヤー」は後ほど隠します。さらに背景にゲーム中の画面を指定しておきます。
②質問ブロックで、プレイヤーの人数を決めます。「何人でプレイしますか?」と聞いて待つ ブロックを追加。
この後に①で作った2つのリストを表示させます。
③変数「プレイ人数」を作成し、初期値に直前で入力された「プレイヤーの人数」を代入します。
質問ブロックで入力された値は「答え」ブロックに入っています。
もう一つ、変数「名前」を作成します。
これはこの後の繰返しブロックで使う、繰り返し回数を数えるための変数になります。
初期値に 1 を代入しておきます。
今回は、変数、たくさん作りますので、頭の中を整理しながら進めてください。
④以下の処理を変数「プレイ人数」回繰り返します。
変数「名前」と「人目のお名前を入力してください」と聞いて待つ ブロックを追加。
例えば一人目のプレイヤーの時は、「1人目のお名前を入力してください」と聞いてきます。
入力した名前(答え)をリスト「プレイヤー」に追加します。
変数「名前」を1ずつ更新します。さらにスコアをリセットします。
リスト「スコア」に0を追加します。
繰り返し処理が終わったら、メッセージ「ゲームスタート」を送ります。
カードのプログラム
続いて「カード」のプログラムを改造します。前回までと大きく変わっている部分もありますので、よく確認しながら進みましょう!
⑤「旗が押されたとき」に続くのは、初期化を行うブロックのみになります。
⑥定義「シャッフル」は前回までのもの、そのままです。
⑦定義「並べる」もそのままです。
⑧「ステージ」が送ったメッセージ「ゲームスタート」を受け取ったとき に続くのは以下の処理になります。
定義「シャッフル」と定義「並べる」を実行します。
変数「プレイ数」を1にする で初期化。
「ターン」を送る で初回のメッセージを送ります。
この後はクローンが0になったタイミング、つまり全部カードがそろったタイミングでメッセージ「クリア」を送る。
⑨メッセージ「ターン」を受け取ったときに続くスクリプトを改造します。
ここは今まで作ったものとほぼ同じです。
最後の 変数「プレイ数」を1ずつ変える のブロックは他に任せますので削除します。
ステージのプログラム
ここではプログラムにしゃべらせたいので、ステージのプログラムになります。
⑩事前に変数「順番交代」と変数「順番」を作成します。
変数「順番交代」はフラグとしての働きをします。
変数「順番交代」が0なら同じプレイヤーがリプレイ、1 ならプレイヤー交代となります。
変数「順番」はゲームを行うプレイヤーの順番を管理します。
メッセージ「ターン」を受け取ったとき、もし変数「順番交代」=1 なら、つまりプレイヤーの順番が交代なら、変数「プレイ数」を1ずつ変える。さらに背景色を乱数で指定します。これは間違えて違うプレイヤーがカードを引かないように、視覚的な工夫です。
⑪この後に変数「順番交代」を0 にするさらに変数「プレイ数」と変数「プレイ人数」から順番を計算して変数「順番」に今の順番を代入しています。さらにリスト「プレイヤー」と変数「順番」を使って、順番のプレイヤーの名前を発言させています。
カードのプログラム
再度カードに戻りましょう。
作成済みの定義「カードチェック」を改造します。⑫カードがそろったらスコアを加算します。今まではカードがそろったとき、自分自身のスコアを変えればよかったのですが、今回はプレイヤーが複数います。リスト「スコア」と変数「順番」を活用して、リストの値を置き換えています。今まではただデータを追加していただけですが、リストの値を更新する方法には、一工夫必要です。
⑬カードがそろわなかったら、変数「順番交代」を1にする、でプレイヤーが交代の状態を作ります。
⑭「クローンされたとき」に続くスクリプトはそのままです。
⑮最後はメッセージ「クリア」を受け取った時 に続くスクリプトです。背景をクリア画面にして、スクリプトを止めます。
長いプログラムもこれで完成です。リストの活用、変数との組み合わせなどは比較的高度な技術になります。わからない部分があると思いますので、もし詳しくお知りになりたい方は、教室までご連絡ください!また完成版は以下でもご確認いただけます。
スクラッチ神経衰弱完成版
教室では実際に通って頂いての授業の他、ちょっとしたお困りごとに対するオンライン授業やオンラインサポートも行っております。お困りごとのある方、ご興味がある方は、ぜひお問い合わせください。
お問い合わせは こちら から。体験授業のお申込みは こちら から。
過去の「神経衰弱をつくってみよう」はこちらから。