用c#写一个井子棋小游戏
时间: 2023-08-02 11:25:05 浏览: 113
好的,以下是用C#实现井子棋小游戏的代码。井字棋是一种两人对弈的纸笔游戏,双方轮流在一个3x3的棋盘上放置棋子,先将自己的棋子连成一条线的一方获胜。
```csharp
using System;
namespace TicTacToeGame
{
class Program
{
static char[,] board = new char[3, 3]; // 棋盘
static char player = 'X'; // 轮到哪个玩家下棋
static int moves = 0; // 已经下了几步棋
static void Main(string[] args)
{
InitializeBoard();
DrawBoard();
while (true)
{
Console.Write($"玩家{player},请输入要下棋子的行列数(例如:1 2):");
string[] input = Console.ReadLine().Split(' ');
int row = int.Parse(input[0]) - 1;
int col = int.Parse(input[1]) - 1;
if (IsValidMove(row, col))
{
board[row, col] = player;
DrawBoard();
if (IsWinner())
{
Console.WriteLine($"玩家{player}获胜!");
return;
}
else if (IsTie())
{
Console.WriteLine("平局!");
return;
}
else
{
player = (player == 'X') ? 'O' : 'X';
moves++;
}
}
else
{
Console.WriteLine("无效的行列数,请重新输入!");
}
}
}
static void InitializeBoard()
{
for (int row = 0; row < 3; row++)
{
for (int col = 0; col < 3; col++)
{
board[row, col] = ' ';
}
}
}
static void DrawBoard()
{
Console.WriteLine(" 1 2 3");
Console.WriteLine(" -------");
for (int row = 0; row < 3; row++)
{
Console.Write(row + 1);
Console.Write("|");
for (int col = 0; col < 3; col++)
{
Console.Write(board[row, col] + "|");
}
Console.WriteLine();
Console.WriteLine(" -------");
}
}
static bool IsValidMove(int row, int col)
{
if (row < 0 || row > 2 || col < 0 || col > 2)
{
return false;
}
else if (board[row, col] != ' ')
{
return false;
}
else
{
return true;
}
}
static bool IsWinner()
{
// 检查行
for (int row = 0; row < 3; row++)
{
if (board[row, 0] == player && board[row, 1] == player && board[row, 2] == player)
{
return true;
}
}
// 检查列
for (int col = 0; col < 3; col++)
{
if (board[0, col] == player && board[1, col] == player && board[2, col] == player)
{
return true;
}
}
// 检查对角线
if (board[0, 0] == player && board[1, 1] == player && board[2, 2] == player)
{
return true;
}
else if (board[0, 2] == player && board[1, 1] == player && board[2, 0] == player)
{
return true;
}
return false;
}
static bool IsTie()
{
return (moves == 9);
}
}
}
```
希望这个井子棋小游戏能够让你在学习C#语言的同时,也能够享受一下小游戏带来的乐趣。