按WASD移动,按J下棋子,结束之后按Y继续,按N退出(均为小写)
#include<iostream>
#include<string>
#include<csetjmp>
#include<stdlib.h>
#include<queue>
#include<Windows.h>
#include<conio.h>
using namespace std;
int main()
{
while(true) {
int player=1;
printf("按WSAD移动,按J下棋,(提示:慢点下,不然程序跟不上您的手速)\n");
int qiPan[19][19];
for(int h=0;h<19;h++)
{
for(int l=0;l<19;l++)
{
qiPan[h][l]=0;
}
}
int qiPanTwo[19][19];
for(int h=0;h<19;h++)
{
for(int l=0;l<19;l++)
{
qiPanTwo[h][l]=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(); //如果是VS,就要改成_getch()
switch(xx)
{
case 'w':
Y=Y-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");
printf("按WSAD移动,按J下棋,(提示:慢点下,不然程序跟不上您的手速)\n");
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 or heng>=5 or pie>=5 or na>=5)
{
if(qiPanTwo[Y][X]==1)
{
cout<<"Black win!"<<'\n';
printf("是否继续?(Y/N) ");
char ss=getch();
if(ss=='N' or ss=='n')
printf("N"),exit(0);
system("cls");
break;
}
else
{
cout<<"White win!"<<'\n';
printf("是否继续?(Y/N) ");
char ss=getch();
if(ss=='N' or ss=='n')
printf("N"),exit(0);
system("cls");
break;
}
}
}
}
exit(0);
}
此为本博主第一次写,感谢大家多多支持,谢谢!