自制的小游戏,两个棋子会重叠,
又不知道怎么改,请大佬指教:
//禁止抄袭与发布!!!!!
#include<iostream>
#include<string>
#include<windows.h>
#include<conio.h>
using namespace std;
int main()
{
system("color 60");
system("mode con cols=40 lines=21");
cout<<"请先看说明再玩:"<<endl<<endl;
cout<<"1.WASD移动╋,按J在╋的位置下棋"<<endl<<endl;
cout<<"2.╋会覆盖棋子,移走就可以看见棋子"<<endl<<endl;
cout<<"3.黑子下完白子下,白子下完黑子下"<<endl<<endl;
cout<<"4.黑子先下,●是黑,◎是白"<<endl<<endl;
cout<<"5.黑子为玩家1,白子为玩家2"<<endl<<endl;
for(int i=1;i<=8;i++)cout<<endl;
system("pause");
int player=1; //定义一个玩家
int qiPan[19][19];//19行19列的数组存储棋盘1
for(int h=0;h<19;h++)//数组遍历,初始化(赋值),默认为0值
{
for(int l=0;l<19;l++)
{
qiPan[h][l]=0;//进行初始化(赋值),默认为0值
}
}
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;//初始化光标坐标
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;
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<<"玩家1黑子获胜!玩家2白子KO!"<<endl;
system("pause");
break;
}
else
{
cout<<"玩家2白子获胜!玩家1黑子KO!"<<endl;
system("pause");
break;
}
}
}
system("cls");
system("mode con cols=80 lines=25");
int p1s,p2s;
cout<<"请两位玩家评价,先输入玩家1,再输入玩家2"<<endl;
cout<<"玩家1:"<<endl<<"1.非常好玩 2.比较好玩 3.一般般 4.比较不好玩 5.非常不好玩"<<endl;
cin>>p1s;
if(p1s==1)cout<<"非常感谢您的支持!";
if(p1s==2)cout<<"我应该可以再改进一下。";
if(p1s==3)cout<<"OK,收到。";
if(p1s==4)cout<<"你是个SBSBSB大傻逼!";
if(p1s==5)cout<<"你这个混蛋以后别来玩了!滚!";
if(p1s>5||p1s<1)cout<<"1~5里有"<<p1s<<"吗?你数学没学好吧?"<<endl;
cout<<endl<<"玩家2:"<<endl<<"1.非常好玩 2.比较好玩 3.一般般 4.比较不好玩 5.非常不好玩"<<endl;
cin>>p2s;
if(p2s==1)cout<<"非常感谢您的支持!";
if(p2s==2)cout<<"我应该可以再改进一下。";
if(p2s==3)cout<<"OK,收到。";
if(p2s==4)cout<<"你是个SBSBSB大傻逼!";
if(p2s==5)cout<<"你这个混蛋以后别来玩了!滚!";
if(p2s>5||p2s<1)cout<<"1~5里有"<<p2s<<"吗?你数学没学好吧?"<<endl;
return 0;
}