问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求几个C++在VC6.0环境下编写的游戏小程序的源代码实例教程

发布网友 发布时间:2022-04-23 09:27

我来回答

5个回答

热心网友 时间:2022-04-23 10:56

在百度上看到的一个贪吃蛇游戏
#include<iostream.h>
#include<windows.h>
#include<time.h>
#include<stdlib.h>
#include<conio.h>
#define N 21
void gotoxy(int x,int y)//位置函数
{
COORD pos;
pos.X=2*x;
pos.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);
}
void color(int a)//颜色函数
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);
}
void init(int apple[2])//初始化函数(初始化围墙、显示信息、苹果)
{
int i,j;//初始化围墙
int wall[N+2][N+2]={{0}};
for(i=1;i<=N;i++)
{
for(j=1;j<=N;j++)
wall[i][j]=1;
}
color(11);
for(i=0;i<N+2;i++)
{
for(j=0;j<N+2;j++)
{
if(wall[i][j])
cout<<"■";
else cout<<"□" ;
}
cout<<endl;
}
gotoxy(N+3,1);//显示信息
color(20);
cout<<"按 W S A D 移动方向"<<endl;
gotoxy(N+3,2);
color(20);
cout<<"按任意键暂停"<<endl;
gotoxy(N+3,3);
color(20);
cout<<"得分:"<<endl;
apple[0]=rand()%N+1;//苹果
apple[1]=rand()%N+1;
gotoxy(apple[0],apple[1]);
color(12);
cout<<"●"<<endl;
}
int main()
{
int i,j;
int** snake=NULL;
int apple[2];
int score=0;
int tail[2];
int len=3;
char ch='p';
srand((unsigned)time(NULL));
init(apple);
snake=(int**)realloc(snake,sizeof(int*)*len);
for(i=0;i<len;i++)
snake[i]=(int*)malloc(sizeof(int)*2);
for(i=0;i<len;i++)
{
snake[i][0]=N/2;
snake[i][1]=N/2+i;
gotoxy(snake[i][0],snake[i][1]);
color(14);
cout<<"★"<<endl;
}
while(1)//进入消息循环
{
tail[0]=snake[len-1][0];
tail[1]=snake[len-1][1];
gotoxy(tail[0],tail[1]);
color(11);
cout<<"■"<<endl;
for(i=len-1;i>0;i--)
{
snake[i][0]=snake[i-1][0];
snake[i][1]=snake[i-1][1];
gotoxy(snake[i][0],snake[i][1]);
color(14);
cout<<"★"<<endl;
}
if(kbhit())
{
gotoxy(0,N+2);
ch=getche();
}
switch(ch)
{
case 'w':snake[0][1]--;break;
case 's':snake[0][1]++;break;
case 'a':snake[0][0]--;break;
case 'd':snake[0][0]++;break;
default: break;
}
gotoxy(snake[0][0],snake[0][1]);
color(14);
cout<<"★"<<endl;
Sleep(abs(200-0.5*score));
if(snake[0][0]==apple[0]&&snake[0][1]==apple[1])//吃掉苹果后蛇分数加1,蛇长加1
{
score++;
len++;
snake=(int**)realloc(snake,sizeof(int*)*len);
snake[len-1]=(int*)malloc(sizeof(int)*2);
apple[0]=rand()%N+1;
apple[1]=rand()%N+1;
gotoxy(apple[0],apple[1]);
color(12);
cout<<"●"<<endl;
gotoxy(N+5,3);
color(20);
cout<<score<<endl;
}
if(snake[0][1]==0||snake[0][1]==N||snake[0][0]==0||snake[0][0]==N)//撞到围墙后失败
{
gotoxy(N/2,N/2);
color(30);
cout<<"Game over"<<endl;
for(i=0;i<len;i++)
free(snake[i]);
Sleep(INFINITE);
exit(0);
}
}
return 0;
}
2
|评论(3)

向TA求助
回答者: C加语言初学者 | 五级采纳率:42%
擅长领域: C/C++ 华语流行乐
参加的活动: 暂时没有参加的活动

热心网友 时间:2022-04-23 12:14

百度,看到一条蛇游戏
#包括ltiostream.h的>

BR p>定义N 21

位置

无效gotoxy(X,Y)/ /函数

COORD位置; BR p> pos.X = 2 * X;

pos.Y = Y;

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),POS)

}

无效的颜色(INT)/ /颜色功能

{

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE) ,A);

}

无效的init(苹果[2])/ /初始化函数(初始化长城显示器的信息,苹果)

{

我;/ /初始化墙

长城[N +2] [N + 2] = {{0}}(i = 1; <= N + + )

{

(J = 1; <= N; J + +)

墙[I] [J] = 1; BR p>}

颜色(11);

(i = 0; I <N +2,我+ +)

BR /> {

(J = 0,J <N +2 + +)

{

(墙[I] [J ])

*<<

</其他*<“”;

}

苑< <endl;

}

gotoxy(N +3,1);/ /显示信息

颜色(20);

*<<“<< endl WSAD方向的运动;

gotoxy(N +3,2);

颜色(20)

cout <<“请按任意键暂停<endl;

gotoxy(N +3,3);

颜色(20); BR p> COUT <评分:“<< endl;

>苹果[0] = RAND()的%N +1 ;/ /苹果

苹果1] = RAND()%N + 1;

gotoxy(苹果[0],苹果[1]);

颜色(12);

BR /> cout <<“请,OE”<< endl;

}

:()

{

INT I,J

**蛇= NULL;

解释苹果[2];

解释得分= 0;

时间

解释[2];

诠释莱恩? ? ;

字符路='P'

函数srand((无符号)时间(NULL));的init(苹果);

蛇(**)的realloc(蛇,sizeof(*)的* LEN);

为(i = 0; <LEN + +)

蛇[I] =( *)的malloc(sizeof(廉政公署)的* 2);

为(i = 0; <LEN,我+ +)

{

蛇[I] [0] = N / 2;

蛇[I] [1] = N / 2 + I

gotoxy(蛇[I] [ 0],蛇[I] [1]);(14);

*<<“面向对象”<< endl;

} BR p>(1)/ /进入消息循环

{

尾[0] =蛇[LEN-1] [0]; / >>尾[1] =蛇[LEN-1] [1];

gotoxy(尾[0],尾[1]);

颜色(11 );

*<<“,”<< endl;

(I = LEN-1> 0,I - )

{

蛇[I] [0] =蛇[I-1] [0;

蛇[I] [1] =蛇[I -1] [1];

gotoxy(蛇[I] [0],蛇[I] [1]); <BR /彩色(14)</*<<“面向对象”<< endl;

}

(kbhit())

{

</ gotoxy(0,N +2);

CH = getche();

}

开关(CH)

BR /> {

'W':[0] [1] - 的蛇;突破;

情况下,'S':蛇0 [1] + +;突破;

[0] [0] - 一个突破;

情况下,“E”:蛇[0] [0 + +;突破的情况下,“蛇; BR p>默认值:打破;

}

gotoxy(蛇[0] [0],蛇[0] [1]); ...... /

颜色(14);

*<<“OO”<< endl;

睡眠(ABS(200-0.5 *分数)); ==苹果,

(蛇[0] [0] ==苹果[0] &&蛇[1] [1] [1])/ /蛇的分数吃苹果加上长的蛇加1

{

得分+ +;

LEN + +;

蛇=(**)的realloc (蛇中,sizeof(*)* LEN);

蛇[LEN-1] =(*)的malloc(sizeof(廉政)* 2);

苹果[0 = RAND()%N +1;

苹果[1] = RAND()%N +1;

gotoxy(苹果[0],苹果[1] );

颜色(12);

*<<“,OE”<< endl;

gotoxy(N +5,3)

颜色(20);

*<<得分<< endl;

}

(蛇[ 1] [1] == 0 | |蛇[1] [1] == | |蛇[0] [0] == 0 | |蛇] [0] == N)/ /打围栏失败...... / a>

{

2,N / 2); p>颜色(30);

*<< “”<< endl;

(i = 0; <LEN,我+ +)

,免费比赛结束(蛇[]);

睡眠(无限);

出口(0);

}

}

回报; }

2

|评论(3)

C加语言初学者|五采纳率:42%的TA帮助

受访者:BR p>专业领域:C / C + +中国流行
参与活动:参与活动

热心网友 时间:2022-04-23 13:49

http://task.zhubajie.com/1871073/n15o1.html

热心网友 时间:2022-04-23 15:40

邮箱,我发给你追问654770660@qq.com

热心网友 时间:2022-04-23 17:48

最经典的 c/++下的游戏程序源码就是 圣剑传说,它的代码不仅是开源,而且很多人做了注释,在网上搜索就能搜索到的,没事来0x30百度贴吧耍耍,共同交流分享。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
在excel中输入产品序号如何直接引出相应的信息 excel表格输序号自动出现内容 戏剧教育主要学什么内容 戏剧教育专业就业前景和就业方向怎么样 戏剧教育专业学什么 2025就业前景怎么样 戏剧教育学什么 戏剧教育专业是本科还是专科 戏剧教育专业要读多少年 戏剧教育是什么专业 贵州省合医在浙江省能直接报销吗 如果自己的被盗了怎么办? 被盗了怎么办? 被盗了+怎么找回来? 不是自己实名的被盗了怎么找回 被盗怎么看他用我微信做了什么事? 被盗了怎么找回? 被盗了怎么找回? 朋友被盗了,想问下如何进行微信帐号安全检测? 被盗了登不上去怎么办怎么找回来? 怎么确定被盗了还是被冻结了 我的被盗,怎么查出盗号人? 被盗了怎么办怎么找回来? 怎么知道被盗 怎样知道你好友的有没有被盗 请教,如何定时自动执行SQL 如何在需要的时候自动启动SQLServer数据库服务 20元连号人民币值钱吗 1945年面值20元纸币值多少钱,中央银行发行,绿色 20元的纸币尾号1234值钱吗? 20纸币钱的尾数6666值钱吗 已注册的怎样更改 我今年8月要去看演唱会 然后今天大麦模拟网上抢票 那个座位图我看不懂 杨幂与男子亲密合照引猜疑,男女相处哪些界限要分清? INTO1被吐槽没团魂,对比历届创家族宿舍合照,他们被吐槽原因是什么? 冯绍峰前任现任同台,倪妮满脸笑容,有人留意赵丽颖吗? 为什么wps证件照还要收3元钱? 纸筋粉和白灰的区别 粘土筒瓦屋面纸筋粉筒瓦什么意思 澄城县建筑工程公司怎么样? 板下20mm厚纸筋粉底荷载标准值是多少 生石灰可以当建筑石灰用来刷墙吗 怎样粉纸筋灰粉才不裂开? 内粉刷:20厚1:3水泥砂浆找平拉毛(找平拉毛什么意思?) 请用通俗语言回答~具体做法~具体位置等! 干粉纸筋 是什么??? 免流搭建用什么云服务器啊 流量软件的服务器最好选哪种,宽带最便宜的服务器是哪个 求大家推荐一下可以做 免流 的服务器 云服务器除了免流,建站,还能做什么? 请问,哪个刀云或小枫免流服务器能达到qq免流,联通的,谁能告诉我 云流量是用什么服务器