小游戏编程
# 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;
每个人都玩五子棋