资源简介
这是用C++编写的六子棋游戏,该程序包含了打印棋盘、下棋规则和判断胜负等代码的实现,用c++编译器编译运行后就可以直接玩了。 注意:由于兼容问题,可能要修改一下命令窗口的版本,命令窗口右键点击—>属性—>勾选“使用旧版控制台”
代码片段和文件信息
#include
#include
#include
#include
#include“class.h“
using namespace std;
int main()
{
chess SIX;
j[0][0]=true;
int a b;
cout<<“请输入你想要的尺寸:“;
cin>>size;
for(a=0; a<=3*size; ++a) //利用for循环打印棋盘,并初始化棋子
{
for(b=0; b<=3*size; ++b)
{
if(a==0)
{
if(b==0 || b==size || b==2*size || b==3*size) printf(“●“);
else printf(“━“);
}
else if(a==size)
{
if(b==0 || b==3*size) printf(“●“);
else if(b==size || b==2*size) printf(“╋“);
else printf(“━“);
}
else if(a==2*size)
{
if(b==0 || b==3*size) printf(“○“);
else if(b==size || b==2*size) printf(“╋“);
else printf(“━“);
}
else if(a==3*size)
{
if(b==0 || b==size || b==2*size || b==3*size) printf(“○“);
else printf(“━“);
}
else if(b==0 || b==size || b==2*size || b==3*size) printf(“┃“);
else printf(“ “);
}
printf(“\n“);
}
for(;;)
{
SIX.pandu(); //先判断哪些棋子被堵住
int c1c2c3c4;
if(t==0)
{
cout<<“\n\n请输入你要移动白棋子的坐标(xy): “;
cin>>c1>>c2;
for(;;)
{
if(p[c1][c2]==a0&&j[c1][c2]==false) break; //轮到白棋回合时,选中的棋子为白棋,且该棋不能被堵住
else //否则重新输入
{
cout<<“输入错误,请再输入一次移子坐标:“;
cin>>c1>>c2;
}
}
}
if(t==1)
{
cout<<“\n\n请输入你要移动黑棋子的坐标(xy): “;
cin>>c1>>c2;
for(;;)
{
if(p[c1][c2]==a1&&j[c1][c2]==false) break; //轮到黑棋回合时,选中的棋子为黑棋,且该棋不能被堵住
else //否则重新输入
{
cout<<“输入错误,请再输入一次移子坐标:“;
cin>>c1>>c2;
}
}
}
cout<<“\n请输入你要到达的坐标: “;
cin>>c3>>c4;
for(;;) //输入棋子将要到达的坐标,该坐标不能有棋子且与棋子原来的坐标相邻,否则重新输入
{
if(c3>0&&c3<5&&c4>0&&c4<5 &&p[c3][c4]!=a0&&p[c3][c4]!=a1 &&((c3==c1&& (c4==c2-1||c4==c2+1)) || (c4==c2&& (c3==c1-1||c3==c1+1))))
break;
else
{
cout<<“到达坐标输入错误!请再输入一次落子坐标:“;
cin>>c3>>c4;
}
}
// Sleep(1000); //暂停一秒
SIX.movechess(c1 c2 c3 c4); //移子
SIX.attack(c3c4); //吃子
SIX.pandu(); //判断棋子的围堵
SIX.judge(); //判断哪一方胜出
if(win==1)
{
SIX.gotoxy(6*size+52*size);
cout<<“恭喜白方获胜!“;
break;
}
else if(win==2)
{
SIX.gotoxy(6*size+52*size);
cout<<“恭喜黑方获胜!“;
break;
}
if(p[c3][c4]==a0)
{
p[0][0]=a0;
t=1;
}
else if(p[c3][c4]==a1)
{
p[0][0]=a1;
t=0;
}
int s; //消除多余的文字
for(s=0;s<8;s++)
{
SIX.gotoxy(03*size+2);
SIX.delline();
}
}
SIX.gotoxy(6*size+53*size+5);
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 7031 2017-10-10 16:38 class.h
文件 2987 2017-10-10 16:32 main.cpp
文件 1023 2017-10-09 02:18 六子棋2.0.dev
----------- --------- ---------- ----- ----
11041 3
- 上一篇:surf+ransac匹配
- 下一篇:多用户多级目录文件系统的实现源.cpp
评论
共有 条评论