一个简单的五子棋程序,供大家下棋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;

}

希望能帮到你!!