设为首页 加入收藏

TOP

大大维的游戏机计划1--贪吃蛇v1(一)
2017-10-13 10:23:24 】 浏览:1459
Tags:大维 游戏机 计划 1--

本文为大大维原创,最早于博客园发表,转载请注明出处!!!

 

虽然本人一直是个免费的游戏测试员(/手动滑稽),但一直有着一个游戏架构师的梦想。正如马爸爸所说,梦想还是要有的,万一实现了呢?

这些天放寒假,有些空闲时间,就想着做一个简单的游戏机。能达到小时候十几块钱买的那种小霸王的功能就差不多了(有贪吃蛇,赛车小游戏,俄罗斯方块,雷霆战机,坦克大战,2048,拼图等),好吧,原谅我有些浮夸风(/手动斜眼)。。。

这不,下面是我这两天抠出来的一个最简单的贪吃蛇小游戏,姑且叫它“大大维的贪吃蛇v1”吧!!!

游戏功能比较简单,后续还需要完善。先将代码在这保存一份,日后看看,也是一件挺有意思的事情吧!!!

  1 /**--------------------------------------------------**/
  2 /**名称:大大维的贪吃蛇v1             日期:2017/1/22**/
  3 /**描述:实现了贪吃蛇的基本功能,可以调节游戏难度,**/
  4 /**做了一个简单的用户界面                           **/
  5 /**存在的问题:由于使用了全局数组存贮,因此对Space **/
  6 /**类的封装有些欠缺;由于使用了全局刷新,游戏运行中**/
  7 /**会出现闪屏现象,游戏难度越高,闪动越严重;不能够**/
  8 /**存储玩家的游戏记录,由于不是图形化界面,用户界面**/
  9 /**较丑;不能改变游戏的地图大小                      **/
 10 /**笔者会在后续版本逐步完善这些问题!!!              **/
 11 /**--------------------------------------------------**/
 12 
 13 #include<iostream>
 14 #include<ctime>
 15 #include<cstdlib>
 16 #include<cstdio>
 17 #include<conio.h>
 18 #include<windows.h>
 19 using namespace std;
 20 const int SpaceLENG=20;
 21 const int SpaceHIGH=40;
 22 const int HARDSPEED=100;
 23 const int NOMALSPEED=400;
 24 const int EASYSPEED=700;
 25 int speed=NOMALSPEED;
 26 bool FLAG=true;
 27 enum dir {UP,DOWN,LEFT,RIGHT};///使用小写会引发歧义
 28 enum level {HARD,ESAY,NOMAL};
 29 ///----------------------------------------------------
 30 ///游戏空间定义
 31 class Space
 32 {
 33 public:
 34     void InitSpace();
 35     void DisplaySpace();
 36 public:
 37     char SpaceData[SpaceLENG+2][SpaceHIGH+2];
 38 };
 39 void Space::InitSpace()
 40 {
 41     for(int i=-1; i<SpaceLENG+1; i++)
 42         for(int j=-1; j<SpaceHIGH+1; j++)
 43         {
 44             if(i<0||i==SpaceLENG||j<0||j==SpaceHIGH)
 45                 SpaceData[i][j]='#';
 46             else
 47                 SpaceData[i][j]=' ';
 48         }
 49 }
 50 void Space::DisplaySpace()
 51 {
 52     for(int i=-1; i<SpaceLENG+1; i++)
 53     {
 54         for(int j=-1; j<SpaceHIGH+1; j++)
 55         {
 56             cout<<SpaceData[i][j];
 57         }
 58         cout<<endl;
 59     }
 60     cout<<endl<<endl;
 61 }
 62 Space *spa=new Space();
 63 ///----------------------------------------------------
 64 ///蛇节点定义
 65 class SnakeNode
 66 {
 67 public:
 68     void setXY(int m,int n)
 69     {
 70         x=m;
 71         y=n;
 72     }
 73     void setNext(SnakeNode *temp)
 74     {
 75         next=temp;
 76     }
 77     void setPrior(SnakeNode *temp)
 78     {
 79         prior=temp;
 80     }
 81     int getX()
 82     {
 83         return x;
 84     }
 85     int getY()
 86     {
 87         return y;
 88     }
 89     SnakeNode* getNext()
 90     {
 91         return next;
 92     }
 93     SnakeNode* getPrior()
 94     {
 95         return prior;
 96     }
 97 private:
 98     int x,y;
 99     SnakeNode *prior,*next;
100 };
101 ///----------------------------------------------------
102 ///食物定义
103 class Food
104 {
105 public:
106     void foodCreate()
107     {
108         bool flag=true;
109         while(flag)
110         {
111             srand((unsigned int)time(NULL));
112             fx=rand()%SpaceLENG;
113             fy=rand()%SpaceHIGH;
114             if(spa->SpaceData[fx][fy]!='*')
115                 flag=false;
116         }
117 
118         spa->SpaceData[fx][fy]='$';
119     }
120     int getFx()
121     {
122         return fx;
123     }
124     int getFy()
125     {
126         return fy;
127     }
128 private:
129     int fx;
130     int fy;
131 };
132 ///----------------------------------------------------
133 ///蛇定义
134 class Snake:public SnakeNode,public Food
135 {
136 public:
137     Snake()
138     {
139         addHead(SpaceLENG/2,SpaceHIGH/2);
140         addHead(SpaceLENG
首页 上一页 1 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇move_base的全局路径规划代码研究 下一篇C++与Java,C#的异同(一):值,..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目