// Lv4のゲームを実行するメソッド // 場に出すことが出来なかった時、場が保持しているカードを失点に追加し、場の数を0にリセットする。 // そして、改めて最初のplayerとして自由な数からだす public void PlayGame(Player_Lv4 player, CP_Lv4 cp) { turn = 0; playGame = true; while (playGame) { switch (turn) { // ゲーム開始場面 case 0: cp.ShowCard(); FieldCard(turn); player.ShowCard(); turn = 1; Line(); break; // Playerがカードを出す場面 case 1: TurnName(player); player.DiscardCard(); player.Draw(number); turn = 3; break; // CPがカードを出す場面 case 2: cp.ThinkingTime(1); cp.DiscardCard(); cp.Draw(number); turn = 3; break; // フィールドと手札の更新 と その後の処理 case 3: // ゲーム終了判定 // どちらかの手札が0枚になった時点でゲーム終了 if (player.card.Count == 0 || cp.card.Count == 0) { nextPlay = "finish"; } // 条件分岐でどのplayerがプレーするか判断 if (nextPlay.Equals("player")) { turn = 1; } else if (nextPlay.Equals("cp")) { turn = 2; } else if (nextPlay.Equals("playerRestart")) // プレイヤーが場に出さないことを選択した時の処理 { if (fieldCard.Count > 0) { player.AddPoint(fieldCard.Count); } FieldReset(); turn = 1; // 再び自分のターン } else if (nextPlay.Equals("cpRestart")) // CPが場に出さないこと選択した時の処理 { if (fieldCard.Count > 0) { cp.AddPoint(fieldCard.Count); } FieldReset(); turn = 2; // 再び相手のターン } else if (nextPlay.Equals("finish")) { turn = 4; } if (fieldCard.Count > 0) { // 場が保持しているカードの表示 CountFieldCard(); } Line(); cp.ShowCard(); FieldCard(turn); player.ShowCard(); Line(); break; case 4: // playGame = false; FinishGame(); break; } } GameResult(player, cp); Reset(player, cp); }