static int CheckFour(char[,] board, playerDetail activePlayer) { char XO; int winFlag; XO = activePlayer.playerID; winFlag = 0; for (int i = 8; i >= 1; --i) { for (int j = 9; j >= 1; --j) { if (board[i, j] == XO && board[i - 1, j - 1] == XO && board[i - 2, j - 2] == XO && board[i - 3, j - 3] == XO) { winFlag = 1; } if (board[i, j] == XO && board[i, j - 1] == XO && board[i, j - 2] == XO && board[i, j - 3] == XO) { winFlag = 1; } if (board[i, j] == XO && board[i - 1, j] == XO && board[i - 2, j] == XO && board[i - 3, j] == XO) { winFlag = 1; } if (board[i, j] == XO && board[i - 1, j + 1] == XO && board[i - 2, j + 2] == XO && board[i - 3, j + 3] == XO) { winFlag = 1; } if (board[i, j] == XO && board[i, j + 1] == XO && board[i, j + 2] == XO && board[i, j + 3] == XO) { winFlag = 1; } } } return(winFlag); }
static int PlayerChoice(char[,] board, playerDetail activePlayer) { int placeChoice; Console.WriteLine(activePlayer.playerName + "'s Turn "); do { Console.WriteLine("Enter a number between 1 and 7: "); placeChoice = Convert.ToInt32(Console.ReadLine()); } while (placeChoice < 1 || placeChoice > 7); while (board[1, placeChoice] == 'X' || board[1, placeChoice] == 'O') { Console.WriteLine("Row is full, enter a new row: "); placeChoice = Convert.ToInt32(Console.ReadLine()); } return(placeChoice); }
static void PlaceTokenBellow(char[,] board, playerDetail activePlayer, int placeChoice) { int length, turn; length = 6; turn = 0; do { if (board[length, placeChoice] != 'X' && board[length, placeChoice] != 'O') { board[length, placeChoice] = activePlayer.playerID; turn = 1; } else { --length; } } while (turn != 1); }
static void PlayerWin(playerDetail activePlayer) { Console.WriteLine("------- " + activePlayer.playerName + " Connected Four, You win! -------"); }
static void Main(string[] args) { playerDetail playerOne = new playerDetail(); playerDetail playerTwo = new playerDetail(); char[,] board = new char[9, 10]; int placeChoice, winFlag, fullBoardFlag, exitFlag; Console.WriteLine("Player1 name: "); playerOne.playerName = Console.ReadLine(); playerOne.playerID = 'X'; Console.WriteLine("Player2 name: "); playerTwo.playerName = Console.ReadLine(); playerTwo.playerID = 'O'; fullBoardFlag = 0; winFlag = 0; exitFlag = 0; DisplayBoard(board); do { if (exitFlag != 1) { placeChoice = PlayerChoice(board, playerOne); PlaceTokenBellow(board, playerOne, placeChoice); DisplayBoard(board); winFlag = CheckFour(board, playerOne); if (winFlag == 1) { PlayerWin(playerOne); exitFlag = 1; } } if (exitFlag != 1) { placeChoice = PlayerChoice(board, playerTwo); PlaceTokenBellow(board, playerTwo, placeChoice); DisplayBoard(board); winFlag = CheckFour(board, playerTwo); if (winFlag == 1) { PlayerWin(playerTwo); exitFlag = 1; } } if (exitFlag != 1) { fullBoardFlag = FullBoard(board); if (fullBoardFlag == 7) { Console.WriteLine("The board is full, it is a draw!"); exitFlag = 1; } } } while (exitFlag != 1); Console.WriteLine("Press a key to exit Connect4....."); Console.ReadKey(); }