写点什么

用 c++ 创作一个简单小游戏

发布于: 2021 年 03 月 06 日

#include<iostream>

#include<iomanip>

#include<cstring>

using namespace std;

const int X = 21;

const int Y = 21;

char p[X][Y];

int m=0;

int n=0;

void display()

{

for(int i=0; i<X; i++)

cout<<setw(3)<<setfill(' ')<<i;

cout<<endl;

for(int i=1; i<Y; i++)

{

cout<<setw(3)<<setfill(' ')<<i;

for(int j=1;j<X;j++)

cout<<setw(3)<<setfill(' ')<<p[i][j];

cout<<endl;

}

}

void black()

{

cout<<"请黑方输入落子 bai 位置:\n"

<<"请输入落子的行数:";

cin>>m;

cout<<"请输入落子的列数:";

cin>>n;

if(m<=0||m>=X||n>=Y||n<=0)

{

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

black();

}

else if((p[m][n]==1)||p[m][n]==2)

{

cout<<"该点已有棋子,请重新选取落子点!\n";

black();

}

else

p[m][n]=1;

system("cls");

display();

}

void red()

{

cout<<"请红方输入落子位置:\n"

<<"请输入落子的行数:";

cin>>m;

cout<<"请输入落子的列数:";

cin>>n;

if(m>=X||m<=0||n<=0||n>=Y)

{

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

red();

}

else if((p[m][n]==1)||p[m][n]==2)

{

cout<<"该点已有棋子,请重新选取落子点!\n";

red();

}

else

p[m][n]=2;

system("cls");

display();

}

int evalue()

{

int k = 0,r = 0;

for(k=3;k<X-2;k++)

{

for(r=3;r<Y-2;r++)

{

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

return 1;

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

return 1;

}

}

for(k=1;k<X;k++)

for(r=3;r<Y-2;r++)

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

return 1;

for(k=3;k<X-2;k++)

for(r=1;r<Y;r++)

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

return 1;

return 0;

}

int main()

{

memset(p,'-',441);

cout<<"欢迎使用简易双人对战五子棋游戏\n"

<<"五子棋棋谱如下:\n";

display();

while(1)

{

red();

if(evalue())

{

cout<<"红方赢!\n";

break;

}

black();

if(evalue())

{

cout<<"黑方赢!\n";

break;

}

}

return 0;

}


用户头像

还未添加个人签名 2021.02.27 加入

还未添加个人简介

评论

发布
暂无评论
用c++创作一个简单小游戏