欢迎来到天天文库
浏览记录
ID:37791220
大小:20.35 KB
页数:12页
时间:2019-05-31
《贪吃蛇C语言图形化编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、//////////////////////////////////////////////程序名称:贪吃蛇//编译环境:VisualC++6.0/2010,EasyX_2011惊蛰版//程序编写:轻雨漫步<512655756@qq.com>//最后更新:2011-3-11////////////////////////////////////////////////开始编写游戏需要的类////////////////////////////////////////////#include2、ics.h>//EasyX_2011惊蛰版(绘图库)#include#include#include#defineUP1#defineDOWN2#defineLEFT3#defineRIGHT4//////////////////////////////////////////////格子类,定义一个格子的属性及行为////////////////////////////////////////////classCell{public:friendc3、lassGameArea;//设置友元函数voidsetxy(shortx,shorty)//设置格子左上角坐标{m_x=x,m_y=y;}voidsetfull(shortfull)//设置格子属性,0为空,1为障碍,2为食物{m_full=full;}voiddisplay(COLORREFcolor)//设置格子颜色并显示{m_color=color;setfillstyle(m_color);bar(m_x,m_y,m_x+7,m_y+7);}voidLaserDisplay()//显示镭射状4、态的格子{IMAGEimage(10,10);SetWorkingImage(&image);DWORD*pMem=GetImageBuffer(&image);for(inti=0;i<10*10;i++)pMem[i]=BGR(RGB(0,0,i*256/(10*10)));SetWorkingImage(NULL);putimage(m_x,m_y,&image);}shortReturnFull()//返回格子状态{returnm_full;}Cell()//构造函数{m_x=0,m_y=0,5、m_full=0;m_color=BLACK;}private:shortm_x;//格子的左上角X坐标shortm_y;//格子的左上角Y坐标shortm_full;//0为空,1为阻挡,2为食物COLORREFm_color;//格子颜色};//////////////////////////////////////////////游戏区类,编写有关游戏区的一些操作////////////////////////////////////////////classGameArea//游戏区域{pub6、lic:Cellm_game[60][60];//定义游戏区域(由360个格子组成)friendvoidMessageDispose();//设置友元函数boolCreatFood()//产生随机食物{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)//检查生成的食物坐7、标是否在障碍上{m_game[m_random1][m_random2].display(GREEN);m_game[m_random1][m_random2].m_full=2;returntrue;}//如果随机的食物正好出现在蛇身上,则进入下面的循环寻找可以生成食物的地方for(m_random1=1;m_random1<59;m_random1++){for(m_random2=1;m_random2<59;m_random2++){if(m_game[m_random2][m_random28、].m_full==0){m_game[m_random1][m_random2].display(GREEN);m_game[m_random1][m_random2].m_full=2;returntrue;}}}//如果没有找到可以生成食物的地方,则通关returnfalse;//返回false即表示通关}voidDelFood()//删除食物{m_game[m_random1][m_random2].m_full=0;//设置为0即代表格子属性为
2、ics.h>//EasyX_2011惊蛰版(绘图库)#include#include#include#defineUP1#defineDOWN2#defineLEFT3#defineRIGHT4//////////////////////////////////////////////格子类,定义一个格子的属性及行为////////////////////////////////////////////classCell{public:friendc
3、lassGameArea;//设置友元函数voidsetxy(shortx,shorty)//设置格子左上角坐标{m_x=x,m_y=y;}voidsetfull(shortfull)//设置格子属性,0为空,1为障碍,2为食物{m_full=full;}voiddisplay(COLORREFcolor)//设置格子颜色并显示{m_color=color;setfillstyle(m_color);bar(m_x,m_y,m_x+7,m_y+7);}voidLaserDisplay()//显示镭射状
4、态的格子{IMAGEimage(10,10);SetWorkingImage(&image);DWORD*pMem=GetImageBuffer(&image);for(inti=0;i<10*10;i++)pMem[i]=BGR(RGB(0,0,i*256/(10*10)));SetWorkingImage(NULL);putimage(m_x,m_y,&image);}shortReturnFull()//返回格子状态{returnm_full;}Cell()//构造函数{m_x=0,m_y=0,
5、m_full=0;m_color=BLACK;}private:shortm_x;//格子的左上角X坐标shortm_y;//格子的左上角Y坐标shortm_full;//0为空,1为阻挡,2为食物COLORREFm_color;//格子颜色};//////////////////////////////////////////////游戏区类,编写有关游戏区的一些操作////////////////////////////////////////////classGameArea//游戏区域{pub
6、lic:Cellm_game[60][60];//定义游戏区域(由360个格子组成)friendvoidMessageDispose();//设置友元函数boolCreatFood()//产生随机食物{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)//检查生成的食物坐
7、标是否在障碍上{m_game[m_random1][m_random2].display(GREEN);m_game[m_random1][m_random2].m_full=2;returntrue;}//如果随机的食物正好出现在蛇身上,则进入下面的循环寻找可以生成食物的地方for(m_random1=1;m_random1<59;m_random1++){for(m_random2=1;m_random2<59;m_random2++){if(m_game[m_random2][m_random2
8、].m_full==0){m_game[m_random1][m_random2].display(GREEN);m_game[m_random1][m_random2].m_full=2;returntrue;}}}//如果没有找到可以生成食物的地方,则通关returnfalse;//返回false即表示通关}voidDelFood()//删除食物{m_game[m_random1][m_random2].m_full=0;//设置为0即代表格子属性为
此文档下载收益归作者所有