c++游戏编程100事列_c++游戏编程,写一个游戏编程,简单点

展开全部

#include

#include

using namespace std;

const int X = 21; //棋盘62616964757a686964616fe78988e69d8331333335323966行数

const int Y = 21; //棋盘列数

char p[X][Y];  //定义棋盘

int m=0;//定义临时点,保存输入坐标

int n=0;

void display()  //输出棋盘

{

for(int i=0; i

cout<

cout<

for(int i=1; i

{

cout<

for(int j=1;j

cout<

cout<

}

}

void black()  //黑方落子

{

cout<

<

cin>>m;

cout<

cin>>n;

if(m<=0||m>=X||n>=Y||n<=0)

{

cout<

black();

}

else if((p[m][n]==1)||p[m][n]==2)

{

cout<

black();

}

else

p[m][n]=1; //黑方用1来表示

system("cls");

display();

}

void red()  //红方落子

{

cout<

<

cin>>m;

cout<

cin>>n;

if(m>=X||m<=0||n<=0||n>=Y)

{

cout<

red();

}

else if((p[m][n]==1)||p[m][n]==2)

{

cout<

red();

}

else

p[m][n]=2; //红方用2来表示

system("cls");

display();

}

int evalue()  //只需要判断落子点为中心的九点“米”字是否连续即可

{

int k = 0,r = 0;

/*斜线判断*/

for(k=3;k

{

for(r=3;r

{

if(p[k][r]!='-'&&p[k-2][r-2]==p[k][r]&&p[k-1][r-1]==p[k][r]&&p[k+1][r+1]==p[k][r]&&p[k+2][r+2]==p[k][r])

return 1;

else if(p[k][r]!='-'&&p[k+2][r-2]==p[k][r]&&p[k+1][r-1]==p[k][r]&&p[k-1][r+1]==p[k][r]&&p[k-2][r+2]==p[k][r])

return 1;

}

}

/*横线判断*/

for(k=1;k

for(r=3;r

if(p[k][r]!='-'&&p[k][r-2]==p[k][r]&&p[k][r-1]==p[k][r]&&p[k][r+1]==p[k][r]&&p[k][r+2]==p[k][r])

return 1;

/*竖线判断*/

for(k=3;k

for(r=1;r

if(p[k][r]!='-'&&p[k-2][r]==p[k][r]&&p[k-1][r]==p[k][r]&&p[k+1][r]==p[k][r]&&p[k+2][r]==p[k][r])

return 1;

return 0;

}

int main()

{

memset(p,'-',441);  //初始化为‘-’

cout<

<

display();

while(1)

{

red();

if(evalue())

{

cout<

break;

}

black();

if(evalue())

{

cout<

break;

}

}

return 0;

}

人人对战五子棋

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值