// Lv2のゲームを実行するメソッド public void PlayGame(Player_Lv2 player, CP_Lv2 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(); turn = 3; break; // CPがカードを出す場面 case 2: cp.ThinkingTime(2); cp.DiscardCard(); turn = 3; break; // フィールドと手札の更新 と その後の処理 case 3: // ゲーム終了判定 // どちらかの手札が0枚になった時点でゲーム終了 // 両方とも出すことが出来ない状態の時 if (player.card.Count == 0 || cp.card.Count == 0 || player.skipNum == 0 || cp.skipNum == 0) { nextPlay = "finish"; } // 条件分岐でどのplayerがプレーするか判断 if (nextPlay.Equals("player")) { turn = 1; } else if (nextPlay.Equals("cp")) { turn = 2; } else if (nextPlay.Equals("playerSkip")) // プレイヤーがskipを利用した時の処理 { if (fieldCard.Count > 0) { player.Skip(fieldCard.Count); } FieldReset(); turn = 2; } else if (nextPlay.Equals("cpSkip")) // CPがskipを利用した時 { if (fieldCard.Count > 0) { cp.Skip(fieldCard.Count); } FieldReset(); turn = 1; } 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); }