Untitled
user_9929031
plain_text
a year ago
4.6 kB
5
Indexable
Вот пример простой реализации игры "Крестики-нолики" на C#: ```csharp using System; class Program { static char[] board = { '1', '2', '3', '4', '5', '6', '7', '8', '9' }; static int player = 1; // Player 1 starts static int choice; static int flag = 0; // Set to 1 when a player wins // Check win private static int CheckWin() { #region Horzontal Winning Condtion if (board[0] == board[1] && board[1] == board[2]) { return 1; } else if (board[3] == board[4] && board[4] == board[5]) { return 1; } else if (board[6] == board[7] && board[7] == board[8]) { return 1; } #endregion #region Vertical Winning Condtion else if (board[0] == board[3] && board[3] == board[6]) { return 1; } else if (board[1] == board[4] && board[4] == board[7]) { return 1; } else if (board[2] == board[5] && board[5] == board[8]) { return 1; } #endregion #region Diagonal Winning Condition else if (board[0] == board[4] && board[4] == board[8]) { return 1; } else if (board[2] == board[4] && board[4] == board[6]) { return 1; } #endregion #region Checking For Draw else if (board[0] != '1' && board[1] != '2' && board[2] != '3' && board[3] != '4' && board[4] != '5' && board[5] != '6' && board[6] != '7' && board[7] != '8' && board[8] != '9') { return -1; // It's a draw } #endregion else { return 0; // Continue the game } } // Draws the board private static void DrawBoard() { Console.WriteLine(" | | "); Console.WriteLine(" {0} | {1} | {2}", board[0], board[1], board[2]); Console.WriteLine("_____|_____|_____ "); Console.WriteLine(" | | "); Console.WriteLine(" {0} | {1} | {2}", board[3], board[4], board[5]); Console.WriteLine("_____|_____|_____ "); Console.WriteLine(" | | "); Console.WriteLine(" {0} | {1} | {2}", board[6], board[7], board[8]); Console.WriteLine(" | | "); } static void Main() { do { Console.Clear(); // Whenever loop will restart, screen will be clear Console.WriteLine("Player 1: X and Player 2: O"); Console.WriteLine("\n"); if (player % 2 == 0) { Console.WriteLine("Turn Player 2"); } else { Console.WriteLine("Turn Player 1"); } Console.WriteLine("\n"); DrawBoard(); // board will be drawn after every input //Checking the winner flag = CheckWin(); if (flag == 1) { Console.WriteLine("Player {0} has won!", (player % 2) + 1); Console.ReadLine(); } else if (flag == -1) { Console.WriteLine("It's a Draw!"); Console.ReadLine(); } // Taking input from player bool validInput = int.TryParse(Console.ReadLine(), out choice); if (!validInput || choice < 1 || choice > 9 || board[choice - 1] == 'X' || board[choice - 1] == 'O') { Console.WriteLine("Invalid input. Please try again."); Console.ReadLine(); } else { if (player % 2 == 0) { board[choice - 1] = 'O'; player++; } else { board[choice - 1] = 'X'; player++; } } } while (flag != 1 && flag != -1); // Loop until someone wins or it's a draw } } ``` //Этот код представляет простую консольную реализацию игры "Крестики-нолики" на C#. Игроки поочередно делают ходы, вводя номер клетки, в которую они хотят поставить свой символ (X или O). Игра продолжается до тех пор, пока кто-то не выиграет или пока не наступит ничья.
Editor is loading...
Leave a Comment