小游戏编程

# include & ltiostream & gt

# include & ltiomanip & gt

使用?命名空间?std

const?int?x?=?21;?//棋盘行数

const?int?y?=?21;?//棋盘列数

夏尔?p[X][Y];//定义棋盘

int?m = 0;//定义一个临时点,保存输入坐标。

int?n = 0;

作废?Display()//输出棋盘

{

for(int?I = 0;?我& ltx;?i++)

cout & lt& ltsetw(3)& lt;& ltsetfill('?')& lt& lt我;

cout & lt& ltendl

for(int?I = 1;?我& lty;?i++)

{

cout & lt& ltsetw(3)& lt;& ltsetfill('?')& lt& lt我;

for(int?j = 1;j & ltx;j++)

cout & lt& ltsetw(3)& lt;& ltsetfill('?')& lt& ltp[I][j];

cout & lt& ltendl

}

}

作废?Black()//黑棋移动。

{

cout & lt& lt"请输入黑色的放置位置:\n "

& lt& lt”请输入行数:“;

CIN & gt;& gtm;

cout & lt& lt请输入列数:“;

CIN & gt;& gtn;

如果(m & lt= 0 | | m & gt= X | | n & gt= Y | | n & lt=0)

{

cout & lt& lt“超出棋盘范围,请重新输入正确坐标!\ n ";

黑色();

}

不然呢?if((p[m][n]= = 1)| | p[m][n]= = 2)

{

cout & lt& lt“此处有棋子,请重新选择移动点!\ n ";

黑色();

}

其他

p[m][n]= 1;?//黑边用1表示。

系统(“cls”);

显示();

}

作废?Red()//红方移动。

{

cout & lt& lt"请用红色输入位置:\n "

& lt& lt”请输入行数:“;

CIN & gt;& gtm;

cout & lt& lt请输入列数:“;

CIN & gt;& gtn;

如果(m & gt= X | | m & lt= 0 | | n & lt= 0 | | n & gt=Y)

{

cout & lt& lt“超出棋盘范围,请重新输入正确坐标!\ n ";

红色();

}

不然呢?if((p[m][n]= = 1)| | p[m][n]= = 2)

{

cout & lt& lt“此处有棋子,请重新选择移动点!\ n ";

红色();

}

其他

p[m][n]= 2;?//红色方块用2表示。

系统(“cls”);

显示();

}

int?evaluate()//只需要判断以落点为中心的九点“m”是否连续。

{

int?k?=?0,r?=?0;

/*对角线判断*/

for(k = 3;k & ltx-2;K++)//两个,其中p[k][r]!='-'是消除漏洞的情况。

{

for(r = 3;r & lty-2;r++)

{

if(p[k][r]!= '-' & amp;& ampp[k-2][r-2]= p[k][r]& amp;& ampp[k-1][r-1]= p[k][r]& amp;& ampp[k+1][r+1]= p[k][r]& amp;& ampp[k+2][r+2]==p[k][r])

回归?1;

不然呢?if(p[k][r]!= '-' & amp;& ampp[k+2][r-2]= p[k][r]& amp;& ampp[k+1][r-1]= p[k][r]& amp;& ampp[k-1][r+1]= p[k][r]& amp;& ampp[k-2][r+2]==p[k][r])

回归?1;

}

}

/*水平线判断*/

for(k = 1;k & ltx;k++)//p[k][r]!='-'是消除漏洞的情况。

for(r = 3;r & lty-2;r++)

if(p[k][r]!= '-' & amp;& ampp[k][r-2]= = p[k][r]& amp;& ampp[k][r-1]= = p[k][r]& amp;& ampp[k][r+1]= = p[k][r]& amp;& ampp[k][r+2]==p[k][r])

回归?1;

/*垂直线判断*/

for(k = 3;k & ltx-2;k++)//p[k][r]!='-'是消除漏洞的情况。

for(r = 1;r & lty;r++)

if(p[k][r]!= '-' & amp;& ampp[k-2][r]= = p[k][r]& amp;& ampp[k-1][r]= = p[k][r]& amp;& ampp[k+1][r]= = p[k][r]& amp;& ampp[k+2][r]==p[k][r])

回归?1;

回归?0;

}

int?主()

{

memset(p,'-',441);//初始化为“-”

cout & lt& lt"欢迎来到简单的双人五子棋游戏\n "

& lt& lt“五子棋的棋分如下:\ n”;

显示();

while(1)

{

红色();

if(evalue())

{

cout & lt& lt“红色胜利了!\ n ";

打破;

}

黑色();

if(evalue())

{

cout & lt& lt“黑棋赢了!\ n ";

打破;

}

}

回归?0;

每个人都玩五子棋