一个简单的五子棋程序,供大家下棋C语言棋盘,点语言200行左右。
# include & ltiostream & gt
使用命名空间std
int Hsheng(char a[][15]);//判断O sub是否获胜的函数
int Bsheng(char a[][15]);//判断X sub是否获胜的函数
int he(char a[][15]);//判断是否有和棋(即棋盘已满)的函数
Void潘琪(char a[15][15])//执行输出棋盘命令。
{ for(int I = 0;我& lt15;I++) //打印棋盘
{ for(int j = 0;j & lt15;j++)
cout & lt& lta[I][j];
cout & lt& ltendl} }
int main()
{ char a[15][15];int x,y;
for(int I = 0;我& lt15;i++)
for(int j = 0;j & lt15;j++)
a[I][j]=“”;潘琪(a);
While(1)//使用循环语句交替执行O和X。这些while语句看似死循环~其实都是以break结尾的。
{ int a 1 = 1;
while(1)
{ for(;a 1;)
{ cout & lt& lt“请在O:”下输入位置;//输入O接头的位置。
CIN & gt;& gtx & gt& gty;if(a[x][y]= = ' o ' | | a[x][y]= = ' x ')//判断是否有子女。
{ cout & lt& lt“请复制现有的子项目”< & lt",";继续;}
else if(x & gt;= 15 | | y >;= 15){ cout & lt;& lt“输入错误,请重新输入”< & lt",";继续;}
else { a[x][y]= ' o ';a 1 = 0;}
}破;}
潘琪(a);//O子打完后会显示棋盘。
if(hseng(a))//判断O是否赢了。
{ cout & lt& lt“O胜”
While(1)// Subx
{ cout & lt& lt“请在X:”下输入位置;
CIN & gt;& gtx & gt& gty;
if(a[x][y]= = ' o ' | | a[x][y]= = ' x ' | | x & gt;= 15 | | y >;=15)
{ for(;a[x][y]= = ' o ' | | a[x][y]= = ' x ';)
{ cout & lt& lt”请复制现有的子项目”;
cout & lt& lt“请在X:”下输入位置;
CIN & gt;& gtx & gt& gty;继续;}
for(;x & gt= 15 | | y >;= 15 | | x;)
{ cout & lt& lt“输入错误,请重新输入”< & lt",";//判断输入棋子的位置是否正确。
cout & lt& lt“请在X:”下输入位置;
CIN & gt;& gtx & gt& gty;继续;}
a[x][y]= ' x ';打破;}
其他
{ a[x][y]= ' x ';打破;} }
潘琪(a);//再次输出棋盘
If(Bsheng(a))//判断X是否赢了。
{ cout & lt& lt" X赢了"
If(he(a))//判断是否平局。
{ cout & lt& lt“领带”
返回0;}
int Hsheng(char a[][15])
{ int i,j;//判断五横是否都相等。
for(I = 0;我& lt15;i++)
for(j = 0;j & lt15;j++)
if(a[I][j]= = ' o ' & amp;& ampa[I][j+1]= = ' o ' & amp;& ampa[I][j+2]= ' o ' & amp;& ampa[I][j+3]= ' o ' & amp;& ampa[i][j+4]=='o ')
返回1;
for(j = 0;j & lt15;J++)//判断五竖是否都相等。
for(I = 0;我& lt15;i++)
if(a[I][j]= = ' o ' & amp;& ampa[I+1][j]= = ' o ' & amp;& ampa[I+2][j]= = ' o ' & amp;& ampa[I+3][j]= = ' o ' & amp;& ampa[i+4][j]=='o ')
返回1;
for(I = 0;我& lt15;I++)//判断5左倾。
for(j = 0;j & lt15;j++)
if(a[I][j]= = ' o ' & amp;& ampa[I+1][j+1]= = ' o ' & amp;& ampa[I+2][j+2]= ' o ' & amp;& ampa[I+3][j+3]= ' o ' & amp;& ampa[I+4][j+4]= ' o ')
返回1;
for(I = 0;我& lt15;I++)//右斜5
for(j = 14;j & gt3;j -)
if(a[I][j]= = ' H ' & amp;& ampa[I+1][j-1]= = ' o ' & amp;& ampa[I+2][j-2]= ' o ' & amp;& ampa[I+3][j-3]= ' o ' & amp;& ampa[I+4][j-4]= ' o ')
返回1;
返回0;}
Int Bsheng(char a[][15])//与O相同,只是改变了字符。
{ int i,j;
for(I = 0;我& lt15;i++)
for(j = 0;j & lt15;j++)
if(a[I][j]= = ' x ' & amp;& ampa[I][j+1]= = ' x ' & amp;& ampa[I][j+2]= ' x ' & amp;& ampa[I][j+3]= = ' x ' & amp;& ampa[i][j+4]=='x ')
返回1;
for(j = 0;j & lt15;j++)
for(I = 0;我& lt15;i++)
if(a[I][j]= = ' x ' & amp;& ampa[I+1][j]= = ' x ' & amp;& ampa[I+2][j]= = ' x ' & amp;& ampa[I+3][j]= = ' x ' & amp;& ampa[i+4][j]=='x ')
返回1;
for(I = 0;我& lt15;i++)
for(j = 0;j & lt15;j++)
if(a[I][j]= = ' x ' & amp;& ampa[I+1][j+1]= ' x ' & amp;& ampa[I+2][j+2]= ' x ' & amp;& ampa[I+3][j+3]= ' x ' & amp;& ampa[i+4][j+4]=='x ')
返回1;
for(I = 0;我& lt15;i++)
for(j = 14;j & gt3;j -)
if(a[I][j]= = ' x ' & amp;& ampa[I+1][j-1]= ' x ' & amp;& ampa[I+2][j-2]= ' x ' & amp;& ampa[I+3][j-3]= ' x ' & amp;& ampa[i+4][j-4]=='x ')
返回1;
返回0;}
int he(char a[][15])
{ for(int I = 0;我& lt15;i++)
for(int j = 0;j & lt15;j++)
{ If(a[I][j]= '')//只有当所有棋盘都不是' '时,才能返回1,即棋盘已满。
返回0;
}
返回1;
}
希望能帮到你!!