文档章节

贪吃蛇游戏Java实现

叫我哀木涕
 叫我哀木涕
发布于 2017/09/11 12:46
字数 512
阅读 125
收藏 1

简介:

    周五在天码营看到一个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,但是已经可以正常玩了。

    还有就是看到的轻拍砖。

 

 

© 著作权归作者所有

共有 人打赏支持
叫我哀木涕
粉丝 2
博文 23
码字总数 11370
作品 0
海淀
程序员
私信 提问
完全用链表实现的贪吃蛇

1.链表设计 同事突然说想实现一个贪吃蛇,这使我想起了几年前实现的一个很糟糕的贪吃蛇程序,代码可以在《 一个java写的贪吃蛇程序》里面找到。如今,突然想再实现一个贪吃蛇,不过这次绝对不...

晨曦之光
2012/04/10
276
0
手机吞吃蛇游戏的设计与开发

 J2ME(Java 2 Micro Edition) 是近年来随着各种不同设备,尤其是移动通信设备的飞速发展而诞生的一项新的开发技术。它定位在消费性电子产品的应用上,对设备的智能化、www.21cnlunwen.com ...

hyh00001
2010/03/29
181
0
贪吃蛇系列之三——在窗口上绘制出简单的方形

有了游戏的窗口了,接下来我们就开始在游戏的窗口中绘制出一些图形,由于我们做的是贪吃蛇嘛,就画一个方形吧,下面还是直接看代码: /** 绘制界面的方法 */@Overridepublic void paint(Gra...

多利的猫粮
2012/12/19
0
4
Java实现贪吃蛇小游戏(附完整源码)

今天我就从零开始来完成这个小游戏,完成的方式也是一步一步的添加功能这样的方式来实现。 第一步完成的功能:写一个界面 大家见到的贪吃蛇小游戏,界面肯定是少不了的。因此,第一步就是写一...

Java团长
05/14
0
0
java写的贪吃蛇只能显示蛇的一个节点

本人作为一个java初学者写了一个贪吃蛇的小游戏,蛇只能显示一个节点,无论我如何改变蛇身的长度都是只能显示一个节点。貌似是所有的节点都重合在一起了,求大神帮忙解决。以下是部分代码截图...

上帝之泪
2013/08/31
117
2

没有更多内容

加载失败,请刷新页面

加载更多

EOS docker开发环境

使用eos docker镜像是部署本地EOS开发环境的最轻松愉快的方法。使用官方提供的eos docker镜像,你可以快速建立一个eos开发环境,可以迅速启动开发节点和钱包服务器、创建账户、编写智能合约....

汇智网教程
今天
10
0
《唐史原来超有趣》的读后感优秀范文3700字

《唐史原来超有趣》的读后感优秀范文3700字: 作者:花若离。我今天分享的内容《唐史原来超有趣》这本书的读后感,我将这本书看了一遍之后就束之高阁了,不过里面的内容一直在在脑海中回放,...

原创小博客
今天
16
0
IC-CAD Methodology知识图谱

CAD (Computer Aided Design),计算机辅助设计,指利用计算机及其图形设备帮助设计人员进行设计工作,这个定义同样可以用来近似描述IC公司CAD工程师这个岗位的工作。 早期IC公司的CAD岗位最初...

李艳青1987
今天
15
0
CompletableFuture get方法一直阻塞或抛出TimeoutException

问题描述 最近刚刚上线的服务突然抛出大量的TimeoutException,查询后发现是使用了CompletableFuture,并且在执行future.get(5, TimeUnit.SECONDS);时抛出了TimeoutException异常,导致接口响...

xiaolyuh
今天
8
0
dubbo 搭建与使用

官网:http://dubbo.apache.org/en-us/ 一,安装监控中心(可以不安装) admin管理控制台,monitor监控中心 下载 bubbo ops 这个是新版的,需要node.js环境,我没有就用老版的了...

小兵胖胖
今天
16
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部