ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:19.72KB ,
资源ID:3914089      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-3914089.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言简单可用的贪吃蛇游戏文档格式.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

C语言简单可用的贪吃蛇游戏文档格式.docx

1、image); DWORD* pMem=GetImageBuffer(& for(int i=0;i10*10;i+) pMemi=BGR(RGB(0,0,i*156/(10*10); SetWorkingImage(NULL); putimage(m_x,m_y,& short ReturnFull() /返回格子状态 return m_full; Cell() m_x=0,m_y=0,m_full=0; m_color=BLACK;/游戏区类class GameArea int m_random1,m_random2; Cell m_game6060; friend void Messag

2、eDispose(); bool CreatFood() /随机产生食物 srand(time(NULL); m_random1=rand()%58+1; m_random2=rand()%58+1; if(m_gamem_random1m_random2.m_full=0) /检查生成的食物坐标是否在障碍上 m_gamem_random1m_random2.display(GREEN); m_gamem_random1m_random2.m_full=2; return true; /如果随机的食物正好出现在蛇身上,则进入下面的循环寻找可以生成食物的地方 for(m_random1=1;m_

3、random159;m_random1+) for(m_random2=1;m_random2m_random2+) if(m_gamem_random2m_random2.m_full=0) m_gamem_random1m_random2.m_full=2; /如果没有找到可以生成食物的地方,则通关 return false; void DelFood() /删除食物 m_gamem_random1m_random2.m_full=0; void ChangeColor(int flag1,int flag2,COLORREF color)/设置指定格子的颜色 m_gameflag1fla

4、g2.display(color); void Init() int flag1,flag2; BeginBatchDraw(); setfillstyle(BLACK); bar(0,0,600,600); for(flag1=0;flag160;flag1+) for(flag2=0;flag2next;now-next != NULL;now = now-next) free(now-prior); head = (struct node*)malloc(sizeof(struct node); /为蛇头分配内存 head-prior = NULL;m_x = 300;m_y = 300

5、; now = (struct node*)malloc(sizeof(struct node);next = now; now-prior = head;next = NULL;m_y = 290; last = now; toward = DOWN; void SnakeAdd() now=head;prior=(struct node*)malloc(sizeof(struct node); now=now-prior;prior=NULL;next=head; switch(toward) case UP: now-m_x=head-m_x;m_y=head-m_y-10; break

6、; case DOWN:m_x = head-m_y = head-m_y + 10; case LEFT:m_x - 10;m_y; case RIGHT:m_x + 10; head=now; /设置当前结点为蛇头 void SnakeDel() /释放蛇尾结点(删除蛇尾) last=last- free(last-next); last-next=NULL; void SnakeMove() SnakeAdd(); /增加蛇头 SnakeDel(); /删除蛇尾/游戏类,用来初始化游戏的参数,及实现其他游戏操作class Game int d; Game() d=1; closegrap

7、h(); initgraph(800,600); setbkmode(TRANSPARENT); /使用透明的输出背景 LOGFONT f; getfont(&f); f.lfHeight=50; _tcscpy(f.lfFaceName,_T(黑体); f.lfQuality=ANTIALIASED_QUALITY; setfont(& void FailGame() /游戏失败显示的画面 setcolor(RED); setfont(70,0,_T(微软雅黑 outtextxy(150,265,_T(游 戏 失 败 setcolor(WHITE); setfont(40,0,_T( out

8、textxy(160,365,_T(退出按O,重玩按R void WinGame() /游戏胜利时显示的画面 setfont(70, 0, _T( outtextxy(150, 265, _T(胜 利! FlushBatchDraw(); Sleep(10000); exit(0); void ExitGame() /游戏中途退出 BeginBatchDraw(); if(d=1) setfont(25,0,_T( bar(15,200,500,450); setfont(45, 0, _T( outtextxy(130, 220, _T( EXIT THE GAME? setfont(40,

9、 0, _T( outtextxy(150, 300,_T(YES(Y) or NO(N) else if(d=2) setcolor(BLACK);EXIT THE GAME?/管理区类,定义管理区域的相关操作class ManageArea double m_time; short m_score; short m_leave; bool m_pause; TCHAR m_str_leave2, m_str_time33, m_str_score5; COLORREF m_bgcolor; void DisplayTime() /显示当前耗时 _stprintf(m_str_time, _

10、T(%.1lf), m_time); setfont(25, 0, _T( /设置字体(nHeight 指定高度 nWidth 字符的平均宽度(0为自适应) lpszFace 字体名称) setfillstyle(m_bgcolor); bar(680,430,800,455); /bar(int left,int top,int right,int bottom) 是画二维条形图的函数 outtextxy(680,430,m_str_time); void DisplayScore() /显示当前分数 _stprintf(m_str_score, _T(%d), m_score); bar(

11、680,460,800,485); outtextxy(680,460,m_str_score); void TimeAdd(double add) /增加时间(可在类外直接调用实现动态刷新时间) m_time += add; DisplayTime(); void ScoreAdd(short add) /增加分数(可在类外直接调用实现动态刷新分数) m_score += add; DisplayScore(); void DisplayPause() /显示暂停或者开始 /setfont(25, 0, _T( bar(625,200,800,300); setcolor(RGB(12,45

12、,19); if(!m_pause) outtextxy(630, 250, _T(进行中. else setcolor(RED); outtextxy(630, 250, _T(暂 停 EndBatchDraw(); void Init() /初始化管理界面 m_time = 0.0; m_score = 0; m_leave = 1; m_pause = false; /格式化转换类型,将m_score输出到m_str_score m_bgcolor = BLACK; bar(601,0,800,600); setfont(40, 0, _T( setcolor(YELLOW); outt

13、extxy(625, 30, _T(贪 吃 蛇 setfont(20, 0, _T( setfillstyle(BLUE); fillcircle(640,140,25); outtextxy(670, 140, _T(制作:软五 莫智豪 setcolor(WHITE); outtextxy(625, 340, _T(退出 (O键) line(620,330,780,330); line(620,490,780,490); outtextxy(625, 430, _T(时间: outtextxy(625, 460, _T(分数: outtextxy(625, 400, _T(暂停/开始(P键)

14、 outtextxy(625, 370, _T(重新游戏 (R键) outtextxy(720, 400, m_str_leave); outtextxy(680, 460, m_str_score); outtextxy(680, 430, m_str_time); DisplayPause(); /声明游戏需要的类Game game; /用于初始化游戏、设置游戏相关参数GameArea a; /用于初始化游戏区域,设置,改变游戏区域相关参数ManageArea manager; /用于初始化管理区域,设置管理区相关参数Snake s; /用于初始化蛇,数据化蛇,操作蛇/游戏的消息控制,流程

15、控制函数void MessageDispose() /消息处理函数 char c; /- char t= ; int d=0; /我添加的 int f=0; s.now = NULL; bool Keepdown = false; while(true) Keepdown = false; /是否持续按W A S D 中的一个按键 if(kbhit() switch(c = getch() /处理按键消息(W A S D) case o: f=1; break;wW if(s.toward = UP)Keepdown = true; else if(s.toward != DOWN&s.tow

16、ard != UP)s.toward = UP; break;sS if(s.toward = DOWN)Keepdown = true;= UP&= DOWN)s.toward = DOWN;aA if(s.toward = LEFT)Keepdown = true;= RIGHT&= LEFT)s.toward = LEFT;dD if(s.toward = RIGHT)Keepdown = true;= LEFT&= RIGHT)s.toward = RIGHT;pP manager.m_pause = !manager.m_pause; /设置暂停或开始 manager.DisplayPause(); /显示暂停或开始r ReInit(); /- if(f=1) game.d=1; f=0; game.ExitGame(); while(t!=y)&(t!Yn(N) t=getch(); if(t=)|(t= t= else if(t= game.d=2; game.ExitGame(); t= /-

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2