123
#include "function.h"
#include
#include
#define Max 20
void Maps(int block[Max][17])
{
for (int i=0; i<19;i++)
{
for (int j=0;j<17;j++)
{
if (i%2==0)
{
if (j%2!=0)
{
block[i][j]=1;//1等於"-"
}
else
{
block[i][j]=0;//0等於"口"
}
}
else
{
if (j%2==0)
{
block[i][j]=2;//2等於"|"
}
else
{
block[i][j]=-1;//-1等於“空格”
}
}
}
}
for ( int i=5 ; i<15 ; i+=2 )
{
for (int j=7 ; j<11 ; j+=2)
{
block[i][j]=-2;
}
}
for (int i=2; i<16 ;i+=2)
{
block[9][i]=-2;
}
block[1][7]=3; //3等於"\"
block[1][9]=4; //4等於"/"
block[17][7]=4;
block[17][9]=3;
block[3][9]=3;
block[3][7]=4;
block[15][9]=4;
block[15][7]=3;
block[9][7]=-4;
block[9][9]=-3;
block[11][7]=-3;
block[11][9]=-3;
block[5][7]=-3;
block[5][9]=-3;
block[7][7]=-3;
block[7][9]=-3;
}
void start()
{
printf(" \n");
printf(" \n");
printf(" /____ \n");
printf(" / / | ___|_____|___ \n");
printf(" _______/_____ | | | \n");
printf(" | | | __|___ |_____| \n");
printf(" |______|______| /|\\ | | \n");
printf(" /_______ / | \\ | | \n");
printf(" / / \\ / | | | |_____| \n");
printf(" / |/ | | | | | \n");
printf(" / /|\\ | | |__|_____|___ \n");
printf(" / | \\ | | | \n");
printf(" / | \\ | / \\ \n");
printf(" \\___/ | / \\ \n");
printf("\n\n\n\n\n");
printf(" (1)Start \n");
printf(" (0)Exit \n");
}
void Print(int block[Max][17],int option)
{
if (option==0)
{
char ch='A';
printf(" 1 2 3 4 5 6 7 8 9\n\n");
for (int i=0; i<19 ;i++)
{
if (i%2==0)
{
printf(" %c ",ch+i/2);
}
else
{
printf(" ");
}
for (int j=0 ; j<17 ; j++ )
{
if (block[i][j]==1)
{
printf(" - ");
}
else if (block[i][j]==2)
{
printf(" | ");
}
else if (block[i][j]==3)
{
printf("\\ ");
}
else if (block[i][j]==4)
{
printf("/ ");
}
else if (block[i][j]==5)
{
printf("帥");
}
else if (block[i][j]==6)
{
printf("仕");
}
else if (block[i][j]==7)
{
printf("相");
}
else if (block[i][j]==8)
{
printf("車");
}
else if (block[i][j]==9)
{
printf("傌");
}
else if (block[i][j]==10)
{
printf("炮");
}
else if (block[i][j]==11)
{
printf("兵");
}
else if (block[i][j]==12)
{
printf("將");
}
else if (block[i][j]==13)
{
printf("士");
}
else if (block[i][j]==14)
{
printf("象");
}
else if (block[i][j]==15)
{
printf("車");
}
else if (block[i][j]==16)
{
printf("馬");
}
else if (block[i][j]==17)
{
printf("包");
}
else if (block[i][j]==18)
{
printf("卒");
}
else if (block[i][j]==0)
{
printf("口");
}
else if (block[i][j]==-2)
{
printf(" ");
}
else if (block[i][j]==-4)
{
printf(" ");
}
else
{
printf(" ");
}
}
printf("\n");
}
}
else
{
if (option==5)
{
printf("帥");
}
else if (option==6)
{
printf("仕");
}
else if (option==7)
{
printf("相");
}
else if (option==8)
{
printf("車");
}
else if (option==9)
{
printf("傌");
}
else if (option==10)
{
printf("炮");
}
else if (option==11)
{
printf("兵");
}
else if (option==12)
{
printf("將");
}
else if (option==13)
{
printf("士");
}
else if (option==14)
{
printf("象");
}
else if (option==15)
{
printf("車");
}
else if (option==16)
{
printf("馬");
}
else if (option==17)
{
printf("包");
}
else
{
printf("卒");
}
}
}
void Chess(int chess[Max][16])
{
chess[0][0]=5;//帥
chess[1][0]=12;//將
for (int i=1;i<3;i++)
{
chess[0][i]=6;//仕
}
for (int i=3;i<5;i++)
{
chess[0][i]=7;//相
}
for (int i=5;i<7;i++)
{
chess[0][i]=8;//俥
}
for (int i=7;i<9;i++)
{
chess[0][i]=9;//傌
}
for (int i=9;i<11;i++)
{
chess[0][i]=10;//炮
}
for (int i=11;i<16;i++)
{
chess[0][i]=11;//兵
}
for (int i=1;i<3;i++)
{
chess[1][i]=13;//士
}
for (int i=3;i<5;i++)
{
chess[1][i]=14;//象
}
for (int i=5;i<7;i++)
{
chess[1][i]=15;//車
}
for (int i=7;i<9;i++)
{
chess[1][i]=16;//馬
}
for (int i=9;i<11;i++)
{
chess[1][i]=17;//包
}
for (int i=11;i<16;i++)
{
chess[1][6]=18;//卒
}
}
void FirstMove(int block[Max][17])
{
block[0][0]=15;
block[0][2]=16;
block[0][4]=14;
block[0][6]=13;
block[0][8]=12;
block[0][10]=13;
block[0][12]=14;
block[0][14]=16;
block[0][16]=15;
block[4][2]=17;
block[4][14]=17;
block[6][0]=18;
block[6][4]=18;
block[6][8]=18;
block[6][12]=18;
block[6][16]=18;
block[12][0]=11;
block[12][4]=11;
block[12][8]=11;
block[12][12]=11;
block[12][16]=11;
block[14][2]=10;
block[14][14]=10;
block[18][0]=8;
block[18][2]=9;
block[18][4]=7;
block[18][6]=6;
block[18][8]=5;
block[18][10]=6;
block[18][12]=7;
block[18][14]=9;
block[18][16]=8;
}
void DieChess(int chess[Max][16],int side,int num)
{
int count=0;
for ( int i=0 ; i<16 && count!=1 ; i++ )
{
if (chess[side][i]==num)
{
chess[side][i]=0;
}
count+=1;
}
}
bool Move(int num,int row1,int col1,int row2,int col2,int block [Max][17])
{
if (num==5)
{
int count=0;
if (row2<14 || row2>18 || col2<6 || col2>10)
{
int i=0;
if (col1==col2)
{
for ( i=row1-2 ; i>=row2 && count!=1 ; i-=2 )
{
if (block[i][col2]!=0)
{
count+=1;
}
}
if (count==1)
{
if (block[i+2][col2]==12)
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
else
{
return false;
}
}
else
{
if (row1-row2==2 || row1-row2==-2)
{
if (col1-col2==0)
{
return true;
}
else
{
return false;
}
}
else if (row1-row2==0)
{
if (col1-col2==2 || col1-col2==-2)
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
}
else if (num==6)
{
if (row2<14 || row2>18 || col2<6 || col2>10)
{
return false;
}
else if (row1-row2==2 || row1-row2==-2)
{
if (col1-col2==2 || col1-col2==-2)
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
else if (num==7)
{
if (row2<10 || row2>18 || col2<0 || col2>16)
{
return false;
}
else if (row1-row2==4 || row1-row2==-4)
{
if (col1-col2==4 || col1-col2==-4)
{
if (block[(row1-row2)/2+row2][(col1-col2)/2+col2]!=0)
{
printf("卡象腳!!!\n");
return false;
}
else
{
return true;
}
}
else
{
return false;
}
}
else
{
return false;
}
}
else if (num==8)
{
int count=0;
if (row2<0 || row2>18 || col2<0 || col2>16)
{
return false;
}
else if (row1-row2!=0)
{
if (col1-col2!=0)
{
return false;
}
else
{
if (row1-row2>0)
{
for ( int i=row1-2 ; i>=row2 ; i-=2 )
{
if (block[i][col2]!=0)
{
count+=1;
}
}
}
else
{
for ( int i=row1+2 ; i<=row2 ; i+=2 )
{
if (block[i][col1]!=0)
{
count+=1;
}
}
}
if (count==0)
{
return true;
}
else if (count==1)
{
if (block[row2][col2]!=0)
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
}
else if (col1-col2!=0)
{
if (row1-row2!=0)
{
return false;
}
else
{
if (col1-col2>0)
{
for ( int i=col1-2 ; i>=col2 ; i-=2 )
{
if (block[row2][i]!=0)
{
count+=1;
}
}
}
else
{
for ( int i=col1+2 ; i<=col2 ; i+=2 )
{
if (block[row1][i]!=0)
{
count+=1;
}
}
}
if (count==0)
{
return true;
}
else if (count==1)
{
if (block[row2][col2]!=0)
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
}
else
{
return false;
}
}
else if (num==9)
{
if (row2<0 || row2>18 || col2<0 || col2>16)
{
return false;
}
else
{
if (row1-row2==2 && col1-col2==4)
{
if (block[row2][col2]>11 || block[row2][col2]<5)
{
if (block[row1][col1-2]!=0)
{
printf("卡馬腳!!!\n");
return false;
}
else
{
return true;
}
}
else
{
return false;
}
}
else if (row1-row2==2 && col1-col2==-4)
{
if (block[row2][col2]>11 || block[row2][col2]<5)
{
if (block[row1][col1+2]!=0)
{
printf("卡馬腳!!!\n");
return false;
}
else
{
return true;
}
}
else
{
return false;
}
}
else if (row1-row2==-2 && col1-col2==4)
{
if (block[row2][col2]>11 || block[row2][col2]<5)
{
if (block[row1][col1-2]!=0)
{
printf("卡馬腳!!!\n");
return false;
}
else
{
return true;
}
}
else
{
return false;
}
}
else if (row1-row2==-2 && col1-col2==-4)
{
if (block[row2][col2]>11 || block[row2][col2]<5)
{
if (block[row1][col1+2]!=0)
{
printf("卡馬腳!!!\n");
return false;
}
else
{
return true;
}
}
else
{
return false;
}
}
else if (row1-row2==4 && col1-col2==2)
{
if (block[row2][col2]>11 || block[row2][col2]<5)
{
if (block[row1-2][col1]!=0)
{
printf("卡馬腳!!!\n");
return false;
}
else
{
return true;
}
}
else
{
return false;
}
}
else if (row1-row2==4 && col1-col2==-2)
{
if (block[row2][col2]>11 || block[row2][col2]<5)
{
if (block[row1-2][col1]!=0)
{
printf("卡馬腳!!!\n");
return false;
}
else
{
return true;
}
}
else
{
//printf("2");
return false;
}
}
else if (row1-row2==-4 && col1-col2==2)
{
if (block[row2][col2]>11 || block[row2][col2]<5)
{
if (block[row1+2][col1]!=0)
{
printf("卡馬腳!!!\n");
return false;
}
else
{
return true;
}
}
else
{
return false;
}
}
else if (row1-row2==-4 && col1-col2==-2)
{
if (block[row2][col2]>11 || block[row2][col2]<5)
{
if (block[row1+2][col1]!=0)
{
printf("卡馬腳!!!\n");
return false;
}
else
{
return true;
}
}
else
{
return false;
}
}
else
{
return false;
}
}
}
else if (num==10)
{
int count=0;
if (row2<0 || row2>18 || col2<0 || col2>16)
{
return false;
}
else
{
if (row1-row2!=0)
{
if (col1-col2==0)
{
if (row1>row2)
{
for ( int i=row1-2 ; i>=row2 ; i-=2 )
{
if (block[i][col2]!=0)
{
count+=1;
}
}
}
else
{
for ( int i=row1+2 ; i<=row2 ; i+=2 )
{
if (block[i][col2]!=0)
{
count+=1;
}
}
}
if (count==0)
{
return true;
}
else if (count==2)
{
if (block[row2][col2]>11 || block[row2][col2]<5)
{
if (block[row2][col2]!=0)
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
else
{
return false;
}
}
else
{
return false;
}
}
else
{
if (col1-col2!=0)
{
if (col1>col2)
{
for ( int i=col1-2 ; i>=col2 ; i-=2 )
{
if (block[row2][i]!=0)
{
count+=1;
}
}
}
else
{
for ( int i=col1+2 ; i<=col2 ; i+=2 )
{
if (block[row2][i]!=0)
{
count+=1;
}
}
}
if (count==0)
{
return true;
}
else if (count==2)
{
if (block[row2][col2]>11 || block[row2][col2]<5)
{
if (block[row2][col2]!=0)
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
else
{
return false;
}
}
else
{
return false;
}
}
}
}
else if (num==11)
{
if (row2<0 || row2>18 || col2<0 || col2>16)
{
return false;
}
else if (row1>=10)
{
if (col1-col2==0 && row1-row2==2)
{
if (block[row2][col2]>11 || block[row2][col2]==0)
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
else
{
if (row1-row2==0)
{
if (col1-col2==2 || col1-col2==-2)
{
if (block[row2][col2]>11 || block[row2][col2]==0)
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
else if (col1-col2==0)
{
if (row1-row2==2)
{
if (block[row2][col2]>11 || block[row2][col2]==0)
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
else
{
return false;
}
}
}
else if (num==12)
{
int count=0;
if (row2<0 || row2>4 || col2<6 || col2>10)
{
int i=0;
if (col1==col2)
{
for ( i=row1+2 ; i<=row2 && count!=1 ; i+=2 )
{
if (block[i][col2]!=0)
{
count+=1;
}
}
if (count==1)
{
if (block[i-2][col2]==5)
{
//printf("1");
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
else
{
return false;
}
}
else
{
if (row1-row2==2 || row1-row2==-2)
{
if (col1-col2==0)
{
//printf("2");
return true;
}
else
{
return false;
}
}
else if (row1-row2==0)
{
if (col1-col2==2 || col1-col2==-2)
{
//printf("3");
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
}
else if (num==13)
{
if (row2<0 || row2>4 || col2<6 || col2>10)
{
return false;
}
else if (row1-row2==2 || row1-row2==-2)
{
if (col1-col2==2 || col1-col2==-2)
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
else if (num==14)
{
if (row2<0 || row2>8 || col2<0 || col2>16)
{
return false;
}
else if (row1-row2==4 || row1-row2==-4)
{
if (col1-col2==4 || col1-col2==-4)
{
if (block[(row1-row2)/2+row2][(col1-col2)/2+col2]!=0)
{
printf("卡象腳!!!\n");
return false;
}
else
{
return true;
}
}
else
{
return false;
}
}
else
{
return false;
}
}
else if (num==15)
{
int count=0;
if (row2<0 || row2>18 || col2<0 || col2>16)
{
return false;
}
else if (row1-row2!=0)
{
if (col1-col2!=0)
{
return false;
}
else
{
if (row1-row2>0)
{
for ( int i=row1-2 ; i>=row2 ; i-=2 )
{
if (block[i][col2]!=0)
{
count+=1;
}
}
}
else
{
for ( int i=row1+2 ; i<=row2 ; i+=2 )
{
if (block[i][col1]!=0)
{
count+=1;
}
}
}
if (count==0)
{
return true;
}
else if (count==1)
{
if (block[row2][col2]!=0)
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
}
else if (col1-col2!=0)
{
if (row1-row2!=0)
{
return false;
}
else
{
if (col1-col2>0)
{
for ( int i=col1-2 ; i>=col2 ; i-=2 )
{
if (block[row2][i]!=0)
{
count+=1;
}
}
}
else
{
for ( int i=col1+2 ; i<=col2 ; i+=2 )
{
if (block[row1][i]!=0)
{
count+=1;
}
}
}
if (count==0)
{
return true;
}
else if (count==1)
{
if (block[row2][col2]!=0)
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
}
else
{
return false;
}
}
else if (num==16)
{
if (row2<0 || row2>18 || col2<0 || col2>16)
{
return false;
}
else
{
if (row1-row2==2 && col1-col2==4)
{
if ((block[row2][col2]<=11 && block[row2][col2]>=5) || block[row2][col2]==0)
{
if (block[row1][col1-2]!=0)
{
printf("卡馬腳!!!\n");
return false;
}
else
{
return true;
}
}
else
{
return false;
}
}
else if (row1-row2==2 && col1-col2==-4)
{
if ((block[row2][col2]<=11 && block[row2][col2]>=5) || block[row2][col2]==0)
{
if (block[row1][col1+2]!=0)
{
printf("卡馬腳!!!\n");
return false;
}
else
{
return true;
}
}
else
{
return false;
}
}
else if (row1-row2==-2 && col1-col2==4)
{
if ((block[row2][col2]<=11 && block[row2][col2]>=5) || block[row2][col2]==0)
{
if (block[row1][col1-2]!=0)
{
printf("卡馬腳!!!\n");
return false;
}
else
{
return true;
}
}
else
{
return false;
}
}
else if (row1-row2==-2 && col1-col2==-4)
{
if ((block[row2][col2]<=11 && block[row2][col2]>=5) || block[row2][col2]==0)
{
if (block[row1][col1+2]!=0)
{
printf("卡馬腳!!!\n");
return false;
}
else
{
return true;
}
}
else
{
return false;
}
}
else if (row1-row2==4 && col1-col2==2)
{
if ((block[row2][col2]<=11 && block[row2][col2]>=5) || block[row2][col2]==0)
{
if (block[row1-2][col1]!=0)
{
printf("卡馬腳!!!\n");
return false;
}
else
{
return true;
}
}
else
{
return false;
}
}
else if (row1-row2==4 && col1-col2==-2)
{
if ((block[row2][col2]<=11 && block[row2][col2]>=5) || block[row2][col2]==0)
{
if (block[row1-2][col1]!=0)
{
printf("卡馬腳!!!\n");
return false;
}
else
{
return true;
}
}
else
{
//printf("2");
return false;
}
}
else if (row1-row2==-4 && col1-col2==2)
{
if ((block[row2][col2]<=11 && block[row2][col2]>=5) || block[row2][col2]==0)
{
if (block[row1+2][col1]!=0)
{
printf("卡馬腳!!!\n");
return false;
}
else
{
return true;
}
}
else
{
return false;
}
}
else if (row1-row2==-4 && col1-col2==-2)
{
if ((block[row2][col2]<=11 && block[row2][col2]>=5) || block[row2][col2]==0)
{
if (block[row1+2][col1]!=0)
{
printf("卡馬腳!!!\n");
return false;
}
else
{
return true;
}
}
else
{
return false;
}
}
else
{
return false;
}
}
}
else if (num==17)
{
int count=0;
if (row2<0 || row2>18 || col2<0 || col2>16)
{
return false;
}
else
{
if (row1-row2!=0)
{
if (col1-col2==0)
{
if (row1>row2)
{
for ( int i=row1-2 ; i>=row2 ; i-=2 )
{
if (block[i][col2]!=0)
{
count+=1;
}
}
}
else
{
for ( int i=row1+2 ; i<=row2 ; i+=2 )
{
if (block[i][col2]!=0)
{
count+=1;
}
}
}
if (count==0)
{
return true;
}
else if (count==2)
{
if ((block[row2][col2]<=11 && block[row2][col2]>=5) || block[row2][col2]==0)
{
if (block[row2][col2]!=0)
{
return true;
}
else
{
//printf("1");
return false;
}
}
else
{
//printf("2");
return false;
}
}
else
{
//printf("3");
return false;
}
}
else
{
//printf("4");
return false;
}
}
else
{
if (col1-col2!=0)
{
if (col1>col2)
{
for ( int i=col1-2 ; i>=col2 ; i-=2 )
{
if (block[row2][i]!=0)
{
count+=1;
}
}
}
else
{
for ( int i=col1+2 ; i<=col2 ; i+=2 )
{
if (block[row2][i]!=0)
{
count+=1;
}
}
}
if (count==0)
{
return true;
}
else if (count==2)
{
if ((block[row2][col2]<=11 && block[row2][col2]>=5) || block[row2][col2]==0)
{
if (block[row2][col2]!=0)
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
else
{
return false;
}
}
else
{
return false;
}
}
}
}
else if (num==18)
{
if (row2<0 || row2>18 || col2<0 || col2>16)
{
return false;
}
else if (row1<=8)
{
if (col1-col2==0 && row1-row2==-2)
{
if ((block[row2][col2]<=11 && block[row2][col2]>=5)|| block[row2][col2]==0)
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
else
{
if (row1-row2==0)
{
if (col1-col2==2 || col1-col2==-2)
{
if ((block[row2][col2]<=11 && block[row2][col2]>=5)|| block[row2][col2]==0)
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
else if (col1-col2==0)
{
if (row1-row2==-2)
{
if ((block[row2][col2]<=11 && block[row2][col2]>=5)|| block[row2][col2]==0)
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
else
{
return false;
}
}
}
else
{
return false;
}
}
#include
#include
#include
#include "function.h"
int main()
{
int block[19][17],option=2,Error_Time=0,chess[2][16];
char xx;
while(option!=0)
{
start();
printf("請選擇......>");
scanf_s("%d", &option);
xx=getchar();
switch (option)
{
case 1:
{
int count=0,low=10,col=9;
system("cls");
Maps(block);
if (count==0)
{
Chess(chess);
FirstMove(block);
}
while (chess[0][0]!=0 && chess[1][0]!=0)
{
system ("cls");
Print(block,0);
int time=1;
do
{
int num=0,time1=1,num1;
char input='a',x,input1='a';
if (count%2==0)
{
printf("請Player 1選擇要操作的棋子(先輸入大寫的英文,再輸入數字,例如:A1)...>");
int num3;
while (input1=='\n' || input1-'A'<0 || input1-'Z'>0)
{
input1=getchar();
if (input1!='\n' && input1-'A'>=0 && input1-'Z'<=0)
{
scanf_s("%d",&num3);
x=getchar();
}
}
num1=block[(input1-'A')*2][num3*2-2];
//printf("%d %c %d\n", block[(input1-'A')*2][num3*2-2],input1,num3);
if (num1>=5 && num1<=11 && num3>=1 && num3<=9 && (input1-'A')>=0 && (input1-'A')<=9)
{
time-=1;
while (time1!=0)
{
printf("您的");
Print(block,num1);
printf("要移到哪裡?(先輸入大寫的英文,再輸入數字,例如:A1)...>");
while (input=='\n' || input-'A'<0 || input-'Z'>0)
{
input=getchar();
if (input!='\n' || input-'A'>=0 && input-'Z'<=0)
{
scanf_s("%d",&num);
x=getchar();
}
}
int num2=block[(input-'A')*2][num*2-2];
//printf(" %d %d %d %d %d %s\n", num1,(input1-'A')*2,num3*2-2,(input-'A')*2,num*2-2,input);
if (Move(num1,(input1-'A')*2,num3*2-2,(input-'A')*2,num*2-2,block))
{
if ((num2>=12 && num2<=18) || num2==0)
{
DieChess(chess, 1, num2);
block[(input-'A')*2][num*2-2]=num1;
block[(input1-'A')*2][num3*2-2]=0;
time1-=1;
}
else
{
printf("別吃自己人啊!!!\n");
system("pause");
system ("cls");
Print(block,0);
}
}
else
{
//printf("1");
printf("錯誤棋步!\n");
system("pause");
system ("cls");
Print(block,0);
}
}
}
else
{
printf("這邊沒有你可以動的棋子,請重新選擇!!!(請注意大小寫)\n");
system("pause");
system ("cls");
Print(block,0);
}
}
else
{
system ("cls");
Print(block,0);
printf("請Player 2選擇要操作的棋子(先輸入大寫的英文,再輸入數字,例如:A1)...>");
int num3;
while (input1=='\n' || input1-'A'<0 || input1-'Z'>0)
{
input1=getchar();
if (input1!='\n' && input1-'A'>=0 && input1-'Z'<=0)
{
scanf_s("%d",&num3);
x=getchar();
}
}
num1=block[(input1-'A')*2][num3*2-2];
if (num1>=12 && num1<=18 && num<=9 && (input1-'A')>=0 && (input1-'A')<=9)
{
time-=1;
while (time1!=0)
{
printf("您的");
Print(block,num1);
printf("要移到哪裡?(先輸入大寫的英文,再輸入數字,例如:A1)");
while (input=='\n' || input-'A'<0 || input-'Z'>0)
{
input=getchar();
if (input!='\n' && input-'A'>=0 && input-'Z'<=0)
{
scanf_s("%d",&num);
x=getchar();
}
}
int num2=block[(input-'A')*2][num*2-2];
//printf(" %d %d %d %d %d %s\n", num1,(input1-'A')*2,num3*2-2,(input-'A')*2,num*2-2,input);
if (Move(num1,(input1-'A')*2,num3*2-2,(input-'A')*2,num*2-2,block))
{
if ((num2>=5 && num2<=11) || num2==0)
{
DieChess(chess, 1, num2);
block[(input-'A')*2][num*2-2]=num1;
block[(input1-'A')*2][num3*2-2]=0;
time1-=1;
}
else
{
printf("別吃自己人啊!!!\n");
system("pause");
system ("cls");
Print(block,0);
}
}
else if (num2>=12 && num2<=18)
{
printf("別吃自己人啊!!!\n");
system("pause");
system ("cls");
Print(block,0);
}
else
{
//printf("2");
printf("錯誤棋步!\n");
system("pause");
system ("cls");
Print(block,0);
}
}
}
else
{
printf("這邊沒有你可以動的棋子,請重新選擇!!!(請注意大小寫)\n");
system("pause");
system ("cls");
Print(block,0);
}
}
}
while (time!=0);
count+=1;
}
if (chess[0][0]==0 || chess[1][0]==0)
{
system("cls");
Print(block,0);
if (chess[1][0]==0)
{
printf(" Player 1獲勝!!!\n");
system("pause");
}
else
{
printf(" Player 2獲勝!!!\n");
system("pause");
}
printf("是否要再下一局?(輸入非0值來回到主選單,輸入0來結束)...>");
scanf_s("%d", &option);
xx=getchar();
if (option==0)
{
system("pause");
system("cls");
printf("\n\n\n\n\n\n\n\n\n 下次再來挑戰吧~\n\n\n\n\n\n\n\n\n");
exit (0);
}
}
}
break;
case 0:
{
system("pause");
system("cls");
printf("\n\n\n\n\n\n\n\n\n 下次再來挑戰吧~\n\n\n\n\n\n\n\n\n");
exit (0);
}
break;
default:
{
Error_Time+=1;
system("cls");
printf("\n\n\n\n\n\n\n\n\n 錯誤代碼,請重新選擇!!!\n\n\n\n\n\n\n\n\n");
system("pause");
system("cls");
if (Error_Time>=5)
{
printf("\n\n\n\n\n\n\n\n\n 你是來亂的喔= =\n\n\n\n\n\n\n\n\n");
system("pause");
system("cls");
if (Error_Time>=10)
{
printf("\n\n\n\n\n\n\n\n\n 純心找碴啊你?滾開!!!\n\n\n\n\n\n\n\n\n");
system("pause");
system("cls");
exit (0);
}
}
}
break;
}
}
return 0;
}
沒有留言:
張貼留言