- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
贪吃蛇C语言图形化编程
////////////////////////////////////////////
// 程序名称:贪吃蛇
// 编译环境:Visual C++ 6.0 / 2010,EasyX_2011惊蛰版
// 程序编写:轻雨漫步 512655756@
// 最后更新:2011-3-11
//
////////////////////////////////////////////
//开始编写游戏需要的类
////////////////////////////////////////////
#include graphics.h //EasyX_2011惊蛰版(绘图库)
#include stdio.h
#include conio.h
#include time.h
#define UP 1
#define DOWN 2
#define LEFT 3
#define RIGHT 4
////////////////////////////////////////////
//格子类,定义一个格子的属性及行为
////////////////////////////////////////////
class Cell
{
public:
friend class GameArea; //设置友元函数
void setxy(short x, short y) //设置格子左上角坐标
{
m_x = x, m_y = y;
}
void setfull(short full) //设置格子属性,0为空,1为障碍,2为食物
{
m_full = full;
}
void display(COLORREF color) //设置格子颜色并显示
{
m_color = color;
setfillstyle(m_color);
bar(m_x, m_y, m_x+7, m_y+7);
}
void LaserDisplay() //显示镭射状态的格子
{
IMAGE image(10,10);
SetWorkingImage(image);
DWORD* pMem = GetImageBuffer(image);
for(int i = 0; i 10 * 10; i++)
pMem[i] = BGR(RGB(0, 0, i * 256 / (10*10) ));
SetWorkingImage(NULL);
putimage(m_x,m_y,image);
}
short ReturnFull() //返回格子状态
{
return m_full;
}
Cell() //构造函数
{
m_x = 0,m_y = 0,m_full = 0;
m_color = BLACK;
}
private:
short m_x; //格子的左上角X坐标
short m_y; //格子的左上角Y坐标
short m_full; //0为空,1为阻挡,2为食物
COLORREF m_color; //格子颜色
};
////////////////////////////////////////////
//游戏区类,编写有关游戏区的一些操作
////////////////////////////////////////////
class GameArea //游戏区域
{
public:
Cell m_game[60][60]; //定义游戏区域(由360个格子组成)
friend void MessageDispose(); //设置友元函数
bool CreatFood() //产生随机食物
{
srand(time(NULL)); //初始化随机数种子
m_random1 = rand()%58+1; //随机生成一个0 - 58的整数
m_random2 = rand()%58+1; //随机一个0 - 58的整数
if(m_game[m_random2][m_random2].m_full == 0) //检查生成的食物坐标是否在障碍上
{
m_game[m_random1][m_random2].display(GREEN);
m_game[m_random1][m_random2].m_full = 2;
return true;
}
//如果随机的食物正好出现在蛇身上,则进入下面的循环寻找可以生成食物的地方
for(m_random1 = 1;m_random1 59;m_random1++)
{
for
您可能关注的文档
最近下载
- 股骨头缺血性坏死PPT课件.ppt VIP
- 《机动车驾驶人考试场地及其设施设置规范》GA10292022.docx
- (三起点)外研版四年级英语上册《Module4_Unit1_名师课件》.ppt
- 《义务教育语文课程标准解读与实施》-荣维东.pptx VIP
- 1《念奴娇.赤壁怀古》公开课一等奖创新教案.docx VIP
- 果汁饮料市场调查.ppt
- 院内血糖管理信息化系统建设.pptx VIP
- 一测量尺度(尺度)的类型.ppt VIP
- 国电宁夏方家庄电厂2x1000mw机组工程汽轮机旁路装置技术投标文件.doc
- 无损检测技术资格人员考试初、中级无损检测技术资格人员-渗透检测考题二试卷.doc VIP
文档评论(0)