int qiPan[19][19]; //声明一个19行19列的数组来存储棋盘
for(int h=0;h<19;h++) //对数组进行遍历,所有元素进行初始化(赋值),默认为0值
{
for(int l=0;l<19;l++)
{
qiPan[h][l]=0; //对当前元素进行初始化(赋值),默认为0值
}
}
for(int h=0;h<19;h++) //打印
{
for(int l=0;l<19;l++)
{
switch(qiPan[h][l])
{
case 0: //如果棋盘存储的元素为0时,我们打印 · 样式的字符
cout<<"·";
break;
}
}
cout<<endl;
}
int X=9; //2.声明并初始化光标的横纵坐标 int Y=9; qiPan[9][9]=8; //更改棋盘中光标所在元素的值为8
case 8: //如果棋盘存储的元素为0时,我们打印 · 样式的字符 cout<<"╋"; break;
char xx=getch(); //控制台从键盘获得一个字符的函数(方法)
switch(xx) //控制
{
case 'w': //上
Y=Y-1; //使光标纵坐标-1
qiPan[Y][X]=8; //将光标写入棋盘
qiPan[Y+1][X]=0; //使原本位置的值还原
break;
case 's': //下
Y=Y+1;
qiPan[Y][X]=8;
qiPan[Y-1][X]=0;
break;
case 'a': //左
X=X-1;
qiPan[Y][X]=8;
qiPan[Y][X+1]=0;
break;
case 'd': //右
X=X+1;
qiPan[Y][X]=8;
qiPan[Y][X-1]=0;
break;
}
int qiPanTwo[19][19]; //声明一个19行19列的数组来存储棋盘
for(int h=0;h<19;h++) //对数组进行遍历,所有元素进行初始化(赋值),默认为0值
{
for(int l=0;l<19;l++)
{
qiPanTwo[h][l]=0; //对当前元素进行初始化(赋值),默认为0值
}
}
int player=1;//设定玩家并进行初始化赋值
case 'j': //落子
if(player==1) //如果当前玩家为白色方时
{
qiPanTwo[Y][X]=1; //通过棋盘1中的光标位置更改棋盘2
//中对应元素的值为1,也就是白棋落子
player=2; //白棋落子后更换玩家
}
else if(player==2)
{
qiPanTwo[Y][X]=2;
player=1;
}
break;
if(qiPan[h][l]==8) //由于光标所在图层应该在棋子图层之上,所以优先考虑。
{
cout<<"╋";
}
else if(qiPanTwo[h][l]==0)
{
cout<<"·";
}
else if(qiPanTwo[h][l]==1)
{
cout<<"●";
}
else if(qiPanTwo[h][l]==2)
{
cout<<"○";
}
int shu=1,heng=1,pie=1,na=1;//横竖撇捺计数器,累计到5则表示某方向出现五个相同的旗子
for(int i=1;i<=4;i++) //上
{
if(qiPanTwo[Y+i][X]==qiPanTwo[Y][X]&&qiPanTwo[Y][X]!=0)
shu++;
else
break;
}
for(int i=1;i<=4;i++) //下
{
if(qiPanTwo[Y-i][X]==qiPanTwo[Y][X]&&qiPanTwo[Y][X]!=0)
shu++;
else
break;
}
for(int i=1;i<=4;i++) //左
{
if(qiPanTwo[Y][X-i]==qiPanTwo[Y][X]&&qiPanTwo[Y][X]!=0)
heng++;
else
break;
}
for(int i=1;i<=4;i++) //右
{
if(qiPanTwo[Y][X+i]==qiPanTwo[Y][X]&&qiPanTwo[Y][X]!=0)
heng++;
else
break;
}
for(int i=1;i<=4;i++) //左下
{
if(qiPanTwo[Y+i][X-i]==qiPanTwo[Y][X]&&qiPanTwo[Y][X]!=0)
pie++;
else
break;
}
for(int i=1;i<=4;i++) //右上
{
if(qiPanTwo[Y-i][X+i]==qiPanTwo[Y][X]&&qiPanTwo[Y][X]!=0)
pie++;
else
break;
}
for(int i=1;i<=4;i++) //右下
{
if(qiPanTwo[Y+i][X+i]==qiPanTwo[Y][X]&&qiPanTwo[Y][X]!=0)
na++;
else
break;
}
for(int i=1;i<=4;i++) //左上
{
if(qiPanTwo[Y-i][X-i]==qiPanTwo[Y][X]&&qiPanTwo[Y][X]!=0)
na++;
else
break;
}
if(shu==5||heng==5||pie==5||na==5)
{
if(qiPanTwo[Y][X]==1)
{
cout<<"白子获胜!";
system("pause");
break;
}
else
{
cout<<"黑子获胜!";
system("pause");
break;
}
}
shu=1,heng=1,pie=1,na=1;
#include<iostream>
#include<string>
#include<windows.h>
#include<conio.h>
using namespace std;
int main()
{
int player=1; //定义一个玩家,当1时为白方,2时为黑方
//................................棋盘1..............................................
int qiPan[19][19]; //1.声明一个19行19列的数组来存储棋盘 1
for(int h=0;h<19;h++) //对数组进行遍历,所有元素进行初始化(赋值),默认为0值
{
for(int l=0;l<19;l++)
{
qiPan[h][l]=0; //对当前元素进行初始化(赋值),默认为0值
}
}
//...............................棋盘2................................................
int qiPanTwo[19][19]; //声明一个19行19列的数组来存储棋盘 2
for(int h=0;h<19;h++) //对数组进行遍历,所有元素进行初始化(赋值),默认为0值
{
for(int l=0;l<19;l++)
{
qiPanTwo[h][l]=0; //对当前元素进行初始化(赋值),默认为0值
}
}
//...............................光标声明.............................................
int X=9; //2.声明并初始化光标的横纵坐标
int Y=9;
qiPan[9][9]=8;
//..............................显示...................................................
for(int h=0;h<19;h++)
{
for(int l=0;l<19;l++)
{
if(qiPan[h][l]==8)
{
cout<<"╋";
}
else if(qiPanTwo[h][l]==0)
{
cout<<"·";
}
else if(qiPanTwo[h][l]==1)
{
cout<<"●";
}
else if(qiPanTwo[h][l]==2)
{
cout<<"○";
}
}
cout<<endl;
}
//..............................输入控制...............................................
while(true)
{
char xx=getch(); //控制台从键盘获得一个字符
switch(xx) //控制
{
case 'w': //上
Y=Y-1; //使光标纵坐标-1
qiPan[Y][X]=8; //讲光标写入棋盘
qiPan[Y+1][X]=0; //使原本位置的值还原
break;
case 's': //下
Y=Y+1;
qiPan[Y][X]=8;
qiPan[Y-1][X]=0;
break;
case 'a': //左
X=X-1;
qiPan[Y][X]=8;
qiPan[Y][X+1]=0;
break;
case 'd': //右
X=X+1;
qiPan[Y][X]=8;
qiPan[Y][X-1]=0;
break;
case 'j': //落子
if(player==1) //如果当前玩家为白色方时
{
qiPanTwo[Y][X]=1; //通过棋盘1中的光标位置更改棋盘2中对应元素的值为1,也就是白棋落子
player=2; //白棋落子后更换玩家
}
else if(player==2)
{
qiPanTwo[Y][X]=2;
player=1;
}
break;
}
//................................清屏操作................................................
system("cls");
//...............................打印.....................................................
for(int h=0;h<19;h++)
{
for(int l=0;l<19;l++)
{
if(qiPan[h][l]==8)
{
cout<<"╋";
}
else if(qiPanTwo[h][l]==0)
{
cout<<"·";
}
else if(qiPanTwo[h][l]==1)
{
cout<<"●";
}
else if(qiPanTwo[h][l]==2)
{
cout<<"○";
}
}
cout<<endl;
}
//.........................游戏规则..............................................
int shu=1,heng=1,pie=1,na=1;//横竖撇捺
for(int i=1;i<=4;i++) //上
{
if(qiPanTwo[Y+i][X]==qiPanTwo[Y][X]&&qiPanTwo[Y][X]!=0)
shu++;
else
break;
}
for(int i=1;i<=4;i++) //下
{
if(qiPanTwo[Y-i][X]==qiPanTwo[Y][X]&&qiPanTwo[Y][X]!=0)
shu++;
else
break;
}
for(int i=1;i<=4;i++) //左
{
if(qiPanTwo[Y][X-i]==qiPanTwo[Y][X]&&qiPanTwo[Y][X]!=0)
heng++;
else
break;
}
for(int i=1;i<=4;i++) //右
{
if(qiPanTwo[Y][X+i]==qiPanTwo[Y][X]&&qiPanTwo[Y][X]!=0)
heng++;
else
break;
}
for(int i=1;i<=4;i++) //左下
{
if(qiPanTwo[Y+i][X-i]==qiPanTwo[Y][X]&&qiPanTwo[Y][X]!=0)
pie++;
else
break;
}
for(int i=1;i<=4;i++) //右上
{
if(qiPanTwo[Y-i][X+i]==qiPanTwo[Y][X]&&qiPanTwo[Y][X]!=0)
pie++;
else
break;
}
for(int i=1;i<=4;i++) //右下
{
if(qiPanTwo[Y+i][X+i]==qiPanTwo[Y][X]&&qiPanTwo[Y][X]!=0)
na++;
else
break;
}
for(int i=1;i<=4;i++) //左上
{
if(qiPanTwo[Y-i][X-i]==qiPanTwo[Y][X]&&qiPanTwo[Y][X]!=0)
na++;
else
break;
}
if(shu==5||heng==5||pie==5||na==5)
{
if(qiPanTwo[Y][X]==1)
{
cout<<"白子获胜!";
system("pause");
break;
}
else
{
cout<<"黑子获胜!";
system("pause");
break;
}
}
}
return 0;
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有