贪吃蛇游戏Java实现
贪吃蛇游戏Java实现
叫我哀木涕 发表于2个月前
贪吃蛇游戏Java实现
  • 发表于 2个月前
  • 阅读 33
  • 收藏 1
  • 点赞 0
  • 评论 0

简介:

    周五在天码营看到一个java-snake的学习任务,地址https://course.tianmaying.com/java-snake。看了挺有意思,然后就花了几个小时按照其描述给实现了,因很多地方都是伪码,或者中文描述。所以 写起来也挺有意思,会让你自己去考虑细节代码实现。

 

项目:

    相信大家好多人都玩过这个游戏,在看到怎么实现的逻辑,自己在之前还从未去考虑。写完了小游戏,把几个游戏的小细节给大家描述下。蛇的身体结构是个LinkedList<Node>,其中Node是棋盘Grid上面的点,非像素点;

    1,蛇的移动:首先根据移动方向和Snake的head生成一个新的Node,然后把node添加到头部,最后把尾部给删除。就完成了snake的一次移动;

    2,吃到食物:上一步生成的新头部节点和当前棋盘上的一个food节点比较,如果是同一个节点。则再把刚才干掉的尾部给添加上去即可;

    3,边界检查:碰到边界,也就是Direction方向上的0或者width-1。如果当前head是这个,next时候就失败了。游戏game over;还有一种是碰撞自身,其实拿到新生成的node遍历对比Snake的body即可。也可以维护一个表格覆盖情况,其实觉得还是对比body比较简单些;

    4,分层设计:任务的分层还是很好的,Grid,Snake,Node,Direction的基础类,其中Snake的移动,食物生成都是在Grid处理。GameView负责具体Grid里面对象的打印。蛇就是遍历body然后画N个矩形;KeyListener就是监听键盘事件,然后改Grid里面的Direction即可。

    5,贪吃蛇详细代码地址见:https://github.com/iruimeng/gluttonous-snake,碰撞自身没写;可能有未测得到的bug,但是已经可以正常玩了。

    还有就是看到的轻拍砖。

 

 

标签: Java Snake
共有 人打赏支持
粉丝 3
博文 15
码字总数 5582
×
叫我哀木涕
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: