C#实现一个基本的五子棋游戏

C#实现一个基本的五子棋游戏

首页角色扮演CODE NAME X更新时间:2024-04-22

下面是一个简单的示例,演示如何使用C#实现一个基本的五子棋游戏:

csharpCopy Codeusing System; namespace FiveInARow { class Program { static char[,] board; static bool isPlayer1Turn; static void Main(string[] args) { InitializeBoard(); isPlayer1Turn = true; while (true) { DrawBoard(); Console.WriteLine("请输入您要下棋的位置(例如:A1):"); string input = Console.ReadLine().ToUpper(); if (input == "QUIT") break; if (input.Length != 2 || !Char.IsLetter(input[0]) || !char.IsDigit(input[1])) { Console.WriteLine("无效的输入,请重新输入!"); continue; } int row = input[1] - '1'; int col = input[0] - 'A'; if (row < 0 || row >= 15 || col < 0 || col >= 15 || board[row, col] != '-') { Console.WriteLine("无效的位置,请重新输入!"); continue; } board[row, col] = isPlayer1Turn ? 'X' : 'O'; if (CheckWin(row, col)) { DrawBoard(); Console.WriteLine($"玩家{(isPlayer1Turn ? "1" : "2")}获胜!"); break; } if (IsBoardFull()) { DrawBoard(); Console.WriteLine("平局!"); break; } isPlayer1Turn = !isPlayer1Turn; } } static void InitializeBoard() { board = new char[15, 15]; for (int i = 0; i < 15; i ) { for (int j = 0; j < 15; j ) { board[i, j] = '-'; } } } static void DrawBoard() { Console.Clear(); Console.WriteLine(" A B C D E F G H I J K L M N O"); for (int i = 0; i < 15; i ) { Console.Write($"{i 1} "); for (int j = 0; j < 15; j ) { Console.Write(board[i, j] " "); } Console.WriteLine(); } } static bool CheckWin(int row, int col) { char symbol = board[row, col]; // 检查水平方向 int count = 1; int left = col - 1; while (left >= 0 && board[row, left] == symbol) { count ; left--; } int right = col 1; while (right < 15 && board[row, right] == symbol) { count ; right ; } if (count >= 5) return true; // 检查垂直方向 count = 1; int up = row - 1; while (up >= 0 && board[up, col] == symbol) { count ; up--; } int down = row 1; while (down < 15 && board[down, col] == symbol) { count ; down ; } if (count >= 5) return true; // 检查正斜方向 count = 1; int topLeftRow = row - 1; int topLeftCol = col - 1; while (topLeftRow >= 0 && topLeftCol >= 0 && board[topLeftRow, topLeftCol] == symbol) { count ; topLeftRow--; topLeftCol--; } int bottomRightRow = row 1; int bottomRightCol = col 1; while (bottomRightRow < 15 && bottomRightCol < 15 && board[bottomRightRow, bottomRightCol] == symbol) { count ; bottomRightRow ; bottomRightCol ; } if (count >= 5) return true; // 检查反斜方向 count = 1; int topRightRow = row - 1; int topRightCol = col 1; while (topRightRow >= 0 && topRightCol < 15 && board[topRightRow, topRightCol] == symbol) { count ; topRightRow--; topRightCol ; } int bottomLeftRow = row 1; int bottomLeftCol = col - 1; while (bottomLeftRow < 15 && bottomLeftCol >= 0 && board[bottomLeftRow, bottomLeftCol] == symbol) { count ; bottomLeftRow ; bottomLeftCol--; } if (count >= 5) return true; return false; } static bool IsBoardFull() { for (int i = 0; i < 15; i ) { for (int j = 0; j < 15; j ) { if (board[i, j] == '-') return false; } } return true; } } }

这个示例通过控制台界面实现了一个简单的五子棋游戏。玩家可以输入行列坐标进行下棋,输入"QUIT"结束游戏。程序会在每次下棋后检查是否有玩家获胜或者平局,并相应地输出结果。

请注意,这只是一个基础的实现示例,可能还需要添加更多的功能和优化来完善游戏体验。

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved