c++游戏编程,写一个游戏编程,简单点

 我来答

答题抽奖

首次认真答题后

即可获得3次抽奖机会,100%中奖。

更多问题
最佳答案
忽忽上升
推荐于2017-09-23
忽忽上升
采纳数:488 获赞数:1553 LV10
擅长:操作系统/系统故障 数据结构及算法 C/C++ python VC++
向TA提问 私信TA
展开全部
#include<iostream>
#include<iomanip>
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<<"请黑方输入落子位置:\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; //黑方用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; //红方用2来表示
system("cls");
display();
}

int evalue()  //只需要判断落子点为中心的九点“米”字是否连续即可
{
int k = 0,r = 0;
/*斜线判断*/
for(k=3;k<X-2;k++)  //两条,其中的p[k][r]!='-'是排除空子的情况
{
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++)  //p[k][r]!='-'是排除空子的情况
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++)  //p[k][r]!='-'是排除空子的情况
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;
}

人人对战五子棋

ycl295644
2014-07-01
ycl295644
采纳数:26 获赞数:99 LV5
擅长:电脑/网络
向TA提问 私信TA
展开全部
2048游戏即可,写个简单的,就行
已赞过 已踩过<
评论 收起
襄见恨晚love
2014-07-01
襄见恨晚love
采纳数:173 获赞数:782 LV8
擅长:C/C++ Windows 常见软件 孝感市 篮球
向TA提问 私信TA
展开全部
贪吃蛇,源代码网上有
追问
你能复制下吗,什么坐标都给添上
已赞过 已踩过<
评论 收起
ignorallbutyou
来自电脑网络类芝麻团 2014-07-01
ignorallbutyou
采纳数:40 获赞数:201 LV6
擅长:C/C++ JAVA相关 Linux
参与团队:能言善编
向TA提问 私信TA
展开全部
这里有好多基础的代码http://pan.baidu.com/s/1pJiB7i7
你如果想要的话我用mfc做过两个小游戏 我给你发过去
追问
能留下Q吗,这个代码打不开
追答
打开 .dsw 后缀的文件
已赞过 已踩过<
评论 收起
匿名用户
2018-01-06
引用忽忽上升的回答:
#include<iostream>#include<iomanip>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<<"请黑方输入落子位置:\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; //黑方用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; //红方用2来表示 system("cls"); display();}int evalue() //只需要判断落子点为中心的九点“米”字是否连续即可{ int k = 0,r = 0; /*斜线判断*/ for(k=3;k<X-2;k++) //两条,其中的p[k][r]!='-'是排除空子的情况 { 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++) //p[k][r]!='-'是排除空子的情况 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++) //p[k][r]!='-'是排除空子的情况 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;}人人对战五子棋
展开全部
为什么初始化不行
已赞过 已踩过<
评论 收起
收起 1条折叠回答
收起 其他2条回答

为你推荐:

×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消