public void Start() //function that start the program { currentPlayer = 1; principalBoard.PrintGameBoard(); int flag = 0; while (principalBoard.CheckGameBoard() != true) { if (principalBoard.checkIfFull() != true) { Round(); principalBoard.PrintGameBoard(); } else { flag = 1; break; } } if (currentPlayer == 2 && flag == 0) { Console.WriteLine("Player 1 won!"); } else if (currentPlayer == 1 && flag == 0) { Console.WriteLine("Player 2 won!"); } else { Console.WriteLine("Draw!"); } }
static void Main(string[] args) { Console.ForegroundColor = ConsoleColor.DarkGreen; Console.BackgroundColor = ConsoleColor.Yellow; #region choose game type (new or saved) while (true) { Console.WriteLine("Press \"y\" for new game, press \"k\" for saved game:"); string choice = Console.ReadLine(); if (choice == "y") { break; } else if (choice == "k") { try { using (StreamReader reader = new StreamReader("oldgame.txt")) { username = reader.ReadLine(); playLetter = Convert.ToChar(reader.ReadLine()); player_ = new Gamer(true, playLetter, username); if (player_.GetCharacter() == 'x') { computer_ = new Gamer(false, 'O', "Computer"); } else { computer_ = new Gamer(false, 'X', "Computer"); } boardLength = Convert.ToInt32(reader.ReadLine()); boardArray = new char[boardLength, boardLength]; for (int i = 0; i < boardLength; i++) { for (int j = 0; j < boardLength; j++) { boardArray[i, j] = Convert.ToChar(reader.ReadLine()); } } oldGame = true; break; } } catch (Exception) { Console.WriteLine("There is not saved game."); } } else { Console.WriteLine("You pressed wrong key,would you like to try again"); } } #endregion Gamer player = new Gamer(); Gamer computer = new Gamer(); if (!oldGame) { Console.WriteLine("Your name please:"); username = Console.ReadLine(); #region game board settings while (true) { Console.WriteLine("Game board length value (Please do not enter except 3,5,7) :"); string s = Console.ReadLine(); if (s == "3" || s == "5" || s == "7") { boardLength = Convert.ToInt32(s); break; } else { Console.WriteLine("Bad letter has been chosen, please try again!"); } } #endregion boardArray = new char[boardLength, boardLength]; for (int i = 0; i < boardLength; i++) { for (int j = 0; j < boardLength; j++) { boardArray[i, j] = ' '; } } #region choose game character (x,o) and create player classes(player and computer) while (true) { Console.WriteLine("Please choose your letter to play, press X or O \n(If don't, please press C)"); string s = Console.ReadLine(); playLetter = Convert.ToChar(s); if (s == "X" || s == "x") { player_ = new Gamer(true, playLetter, username); computer_ = new Gamer(false, 'O', "Computer"); break; } else if (s == "O" || s == "o") { player_ = new Gamer(true, playLetter, username); computer_ = new Gamer(false, 'X', "Computer"); break; } else if (s == "C" || s == "c") { player_ = new Gamer(true, username); computer_ = new Gamer(false, "Computer"); break; } else { Console.WriteLine("Bad letter has been chosen, please try again!"); } } #endregion } else { Console.WriteLine("Welcome again " + username + " the game has continued successfully"); } GameBoard board = new GameBoard(boardArray); player = player_; computer = computer_; #region the game has been started while (true) { board.PrintGameBoard(); while (true) { string s = player.GetGamerMove(); MoveTypes moveTypes = player.CheckGamerMove(s, boardArray); if (moveTypes == MoveTypes.Correct) { board.PrintGameBoard(); break; } else if (moveTypes == MoveTypes.Exit) { Console.WriteLine("you have chosen the quit.Press k if you would like to save the game."); string sss = Console.ReadLine(); if (sss == "K" || sss == "k") { SaveTheGame(boardArray, username, boardLength, player.GetCharacter()); } gameIsOver = true; break; } else { Console.WriteLine(moveTypes.GetDescription()); } } if (gameIsOver) { break; } if (board.Winner(player.GetCharacter())) { Console.WriteLine(player.GetUsername() + " won"); DeleteSavedGame(); break; } if (board.CheckDraw()) { Console.WriteLine("Game in Draw"); DeleteSavedGame(); break; } computer.GenerateComputerMove(boardArray); if (board.Winner(computer.GetCharacter())) { Console.WriteLine(computer.GetUsername() + " won"); DeleteSavedGame(); break; } if (board.CheckDraw()) { Console.WriteLine("Game in Draw"); DeleteSavedGame(); break; } } #endregion //the game is over Console.WriteLine("Press any key to exit"); Console.ReadKey(); }