linux控制台单人五子棋简书,用C#做一个控制台五子棋

using System.Text;

using System.Threading.Tasks;

namespace Wuziqi

{

class Program

{

#region 棋盘的展示

///

/// 棋盘的展示

///

/// 表示正方形棋盘的二维数组

/// 棋盘的长度

static void game(int[,] array, int x)

{

for (int i = 0; i < x; i++)

{

for (int j = 0; j < x; j++)

{

Console.Write(array[i, j] + " ");

}

Console.WriteLine();

}

}

#endregion

#region 游戏运行

static void start(ref bool whitemove, int[,] array, int x, ref int round)

{

int row = 0, column = 0;

if (whitemove == true)

{

Console.WriteLine("该白子移动了。");

Console.WriteLine("请输入要走的行数");

row = int.Parse(Console.ReadLine());

Console.WriteLine("请输入要走的列数");

column = int.Parse(Console.ReadLine());

}

else

{

Console.WriteLine("该黑子移动了。");

Console.WriteLine("请输入要走的行数");

row = int.Parse(Console.ReadLine());

Console.WriteLine("请输入要走的列数");

column = int.Parse(Console.ReadLine());

}

if (whitemove && array[row, column] == 0)

{

array[row, column] = 1;

whitemove = false;

round++;

game(array, x);

}

else if (!whitemove && array[row, column] == 0)

{

array[row, column] = -1;

whitemove = true;

round++;

game(array, x);

}

else

{

Console.WriteLine("此处已经有子了,请换个位置落子");

}

}

#endregion

#region 获胜判断

///

/// 胜利的判断

///

/// 表示正方形棋盘的二维数组

/// 长度

/// 白棋获胜条件

/// 黑棋获胜条件

static void win(int[,]array,int x,ref bool whitewin,ref bool blackwin)

{

//行获胜

for (int hang = 0; hang < x; hang++)

{

for (int i = 0; i < x - 4; i++)

{

int sum = 0;

for (int j = i; j < i + 5; j++)

{

sum += array[hang, j];

}

if (sum == 5)

{

whitewin = true;

break;

}

else if (sum == -5)

{

blackwin = true;

break;

}

}

if (whitewin == true || blackwin == true)

{

break;

}

}

//列获胜

for (int lie = 0; lie < x; lie++)

{

for (int i = 0; i < x - 4; i++)

{

int sum = 0;

for (int j = i; j < i + 5; j++)

{

sum += array[j, lie];

}

if (sum == 5)

{

whitewin = true;

break;

}

else if (sum == -5)

{

blackwin = true;

break;

}

}

if (whitewin == true || blackwin == true)

{

break;

}

}

// \获胜

for (int hang = 0; hang < x - 5; hang++)

{

for (int lie = 0; lie < x - 5; lie++)

{

int sum = 0;

for (int i = hang, j = lie; i < hang + 5 && j < lie + 5;)

{

sum += array[i, j];

i++; j++;

}

if (sum == 5)

{

whitewin = true;

break;

}

else if (sum == -5)

{

blackwin = true;

break;

}

}

if (whitewin == true || blackwin == true)

{

break;

}

}

// /获胜

for (int hang = 0; hang < x - 5; hang++)

{

for (int lie = x-1; lie > 3; lie--)

{

int sum = 0;

for (int i = hang, j = lie; i < hang + 5;)

{

sum += array[i, j];

i++; j--;

}

if (sum == 5)

{

whitewin = true;

break;

}

else if (sum == -5)

{

blackwin = true;

break;

}

}

if (whitewin == true || blackwin == true)

{

break;

}

}

}

#endregion

static void Main(string[] args)

{

int round = 0;

int x = 15;

int[,] array = new int[x, x];

bool whitemove = true, whitewin = false, blackwin = false;

while (true)

{

start(ref whitemove, array, x, ref round);

win(array, x, ref whitewin, ref blackwin);

if (round == 225)

{

Console.WriteLine("平局");

break;

}

else if (whitewin)

{

Console.WriteLine("白色获胜");

break;

}

else if (blackwin)

{

Console.WriteLine("黑色获胜");

break;

}

}

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值