C++实现图形界面双人五子棋游戏
设计思路
定义一个Chess类,用16*16的二维数组的来表示一方棋手在棋局上的落子状态。
通过控制键盘←↑→↓来选择落点,getch()函数可获得用户的键盘输入,用coord控制台屏幕上的坐标。
胜利条件:Chess类的成员函数win(),每落一个棋子进行win()的判断,当横向、竖向或斜向存在同一颜色的连续五个棋子时,win()返回值1。
代码如下
#include <windows.h>
#include <iostream>
#include<conio.h>
#include<cstring>
using namespace std;
COORD c;
class Chess
{
/*一方棋局*/
private:
int p[15][15]; /*落子情况*/
public:
void newchess()
{
/*空棋盘*/
for(int i=0;i<16;i++)
for(int j=0;j<16;j++)
p[i][j]=0;
}
int win()
{
/*判断胜利*/
int i,j,f;
for(i=0;i<16;i++)
{
/*横向*/
j=f=0;
while(f<5&&j<16)
{
if(p[i][j]) f++;
else f=0;
j++;
}
if(f==5) return 1;
}
for(j=0;j<16;j++)
{
/*竖向*/
i=f=0;
while(f<5&&i<16)
{
if(p[i][j]) f++;
else f=0;
i++;
}
if(f==5) return 1;
}
for(i=0;i<12;i++)
{
/*下斜*/
j=f=0;
while(f<5&&j<12)
{
if(p[i+f][j