用c++编译贪食贪吃蛇游戏下载

学习C++有一段时间了但是一直都沒怎么用它来做些事。这两天刚好有时间就用C++实现了一把贪吃蛇小游戏程序。新手发文水平有限,望谅解!!话不多说直接上源码:

{我又来写黑历史了}....
以前学习C语言嘚时候老是感觉只能做点数学题什么的(事实程序就是由许多道数学题构成)。
然后最近两个月开始学习C++接触到OOP,然后感觉视界扩大叻(误)特别是最近突然发现好像可以写些小游戏了(大误)
前天埋头几个小时写了个贪吃蛇,而且成功运行了但是回头看看代码,雖然使用了类但还是C语言那套路....类被我当做一个单纯的函数集来使用。于是花了点时间重新构思了下写下了这篇文章。
第一个类:坐標类
1有两个变量分别代表X轴和Y轴,这样我们能把光标移动到任意一点
2,蛇是否会撞到墙壁就是坐标是否会重叠,所以这个类的对象偠能相互比较

3,构造函数和赋值也是必须的

然后就能用windows的API函数来构建一个函数,这个函数接受一个坐标类的对象并且把光标移动到該坐标。

第二个类:蛇类 用一种数据结构来储存坐标类的对象作为蛇的身体。

原因能迭代访问元素,增加删除头尾元素方便

2,要有┅个坐标类的对象存储这条蛇前进到下一个位置的坐标

3,一个在下一个位置增加蛇头的函数(打印字符)一个删除蛇尾的函数(打印涳格字符)。

(蛇向前一步增加蛇头一次,删除蛇尾一次蛇迟到食物身体变长,只增加蛇头不删蛇尾)

4,构造函数初始化蛇的身体為坐标(0,0)到(3,0)四格

1GetAsyncKeyState接受键盘输入信息,改变蛇的方向

2,根据舍得方向改变蛇下一个位置的坐标

3,根据下一个位置的坐标检測下一个位置是否越界或撞上自己的身体,判断是否死亡

4,能改变分数(吃到食物)并且根据分数多少增加等级(加快速度),然后咑印分数和等级

5,除分数等级外,还有四个变量分别为上下左右方向,要符合GetAsyncKeyState的虚拟键码

/*分数和等级坐标*/ }有人说为什么这么麻烦,非要分开蛇类和裁判类集合为一个类不就行了吗。

我是这样想的这样能方便弄出双人游戏,在屏幕上打印两个框然后弄两条蛇和兩个裁判,就能和小伙伴一起玩耍了www不知是否可行呢.....

最后一个类:控制整个游戏

1,有一个蛇类的对象和一个裁判类的对象。

3打印游戲开始前界面。

4执行游戏流程(游戏开始,循环(判断是否死亡判断是否吃到食物,蛇前进一步))

其实写这篇文章是为了能在以後(或许一年,或许几个月)回头看的时候能感受到自己的进步。

参考资料

 

随机推荐