贪吃蛇的java代码分析(一)
自我审视
最近自己学习java已经有了一个多月的时间,从一开始对变量常量的概念一无所知,到现在能勉强写几个小程序玩玩,已经有了长足的进步。今天没有去学习,学校里要进行毕业答辩和拍毕业照了,于是请了几天的假,自己也就有了一点空余的时间。回想这一个多月,自己做到好的地方是把大部分时间都用在了看书和码代码上,学习的重点放在了追求对知识的理解和内容的广度之上。书籍方面阅读了《java核心技术》和《java编程思想》,虽然说没有理解全部的内容,《编程思想》一书也只看了300多页,但面向对象部分、集合部分,书上的分析对自己进行理解带来了巨大的帮助。java之外学习了一点数据库和linux的知识,虽然极浅,但脑中对这两方面的知识还是有一些初步的印象了。当然,自己也有许多不足的地方,首先就是java一些技术的运用不够,也就是项目做的不多。经常会出现这么一种情况:自己能说出hashMap底层的运行状况,但码代码时老是想不到用它,结果导致大量的功夫堆砌了很多无用代码。这是自己很欠缺的一个方面,所以自己平常也要多花时间安排一下看书和练习的时间分配了。
思想分析
自己想做这个小游戏有几个原因,第一个是希望检视一下自己的学习水平,贪吃蛇虽然是很简单的游戏,但我想能帮自己更好的整理代码的逻辑以及各方面,能看看自己有什么不足的地方(至少现在我弥补了一些知识上的漏洞)。第二个原因嘛,其实是上课的时候有一个同学做了一个坦克大战的游戏,虽然极其简陋(逃,但其中的思想和他的学习精神也让我很佩服。所以我总归是不服,自己也尝试着去理解和copy。
当然,我并没有坐在椅子上,什么也不做凭空想了一个游戏出来,自己水平和思想很有限,并没有达到随手撸代码的地步。自己做这个游戏参考了很多人的代码,其中很多人代码对我帮助很大。大家感兴趣的话可以去网上搜搜,会发现我的代码和某些人的相似程度很高,因为基本上我整个贪吃蛇的思路都是照着前辈的思想来写的,自己并没有什么独创性的地方。这样说其实很惭愧,但转念一想,自己0基础,刚学编程也没有多少时间,参考前人的思想(代码)来学习也没有什么不好意思的。借口一找,心理就平衡多了。
你怎么废话这么多?
说了这么多,其实也是想把一些心里的话都写出来,这样自己在思考的时候也会更有逻辑和效率。至于要写这几篇文章,是因为自己在学这个游戏的时候都是自己逐步理解和想的,我发现网上并没有详细的分析。当然这样一个简单的项目,没有用到什么复杂的技术,都是一些很基本、很简单的技术和思想啦。我之前也写过几篇微博,都是一些简单的数据结构和算法的代码。但我后来一想,自己只是简单地贴代码,没有更深入的讨论或者研究,那自己写的东西就没有多少意义。既然写的都是代码,那为什么不去看书呢?所以我想我可以把自己理解的过程都写下来,这样可以帮助和我一样的编程初学者去更快的理解和进步,实践是增强技术(还有信心)最快的方法了。除此之外也可以看看自己还有哪些部分是囫囵吞枣的,毕竟写出来让别人理解要比自己掌握难得多。接下来几篇自己就准备写下整个游戏的分析过程了,希望自己拙劣的表达能传达本意,也希望大神轻喷。
贪吃蛇的java代码分析(一)的更多相关文章
- 贪吃蛇的java代码分析(二)
代码剖析 贪吃蛇是一款十分经典的小游戏,对初入coding的朋友来说,拿贪吃蛇这样一个案例来练手十分合适,并不高的难度和成功后的成就感都是学习所必须的.下面我将依照我当时的思路,来逐步分析实现的整个过 ...
- 贪吃蛇的java代码分析(三)
代码剖析 在上一篇文章中,我们完成了贪吃蛇部分代码的构造.回头审视我们写的代码与思路,会发现我们遗漏了一个重要的地方,那就是:贪吃蛇的自身移动.想必大家都知道,贪吃蛇自身是会自己移动的,并且会跟随你的 ...
- java代码分析及分析工具
一个项目从搭建开始,开发的初期往往思路比较清晰,代码也比较清晰.随着时间的推移,业务越来越复杂.代码也就面临着耦合,冗余,甚至杂乱,到最后谁都不敢碰. 作为一个互联网电子商务网站的业务支撑系统,业务复 ...
- Java实现贪吃蛇游戏【代码】
花了两个下午写了一个贪吃蛇小游戏,本人想写这游戏很长时间了.作为以前诺基亚手机上的经典游戏,贪吃蛇和俄罗斯方块一样,都曾经在我们的童年给我们带来了很多乐趣.世间万物斗转星移,诺基亚曾经作为手机业的龙头 ...
- Python:游戏:贪吃蛇原理及代码实现
一.游戏介绍 贪吃蛇是个非常简单的游戏,适合练手.先来看一下我的游戏截图: 玩法介绍:回车键:开始游戏空格键:暂停 / 继续↑↓←→方向键 或 WSAD 键:控制移动方向. 食物分红.绿.蓝三种,分别 ...
- 蓝桥杯 贪吃蛇长度java实现
小明在爷爷的私人收藏馆里找到一台老式电脑.居然没有图形界面,只能用控制台编程. 如上图,是游戏时画面截图. 其中,H表示蛇头,T表示蛇尾.#表示蛇的身体,@表示身体交叉重叠的地方. 你能说出现在的贪吃 ...
- java 代码分析工具——JDepend
最近学习Mybatis的官方文档,看到了[项目文档]一节有很多内容没有见过,做个笔记,理解一下. 百科上的介绍,我竟然都看懂了,那就不找其他地方的资料了. JDepend 一个开放源代码的可以用来评价 ...
- 贪吃蛇(Java实现)
程序效果: 代码: //Snake.java 1 package snake; import javax.swing.*; import java.awt.*; import java.awt.eve ...
- 贪吃蛇Controller Java实现(二)
package cn.tcc.snake.Controller; import java.awt.Point;import java.awt.event.KeyAdapter;import java. ...
随机推荐
- PHP 变量声明的意义
有人说,PHP是没有类型的语言,个人比较倾向于,PHP是弱类型的计算机脚本语言的说法. 计算机存储都是二进制的数据,要么是0,要么是1. 在抽象数据的过程中,是要有各种各样的标志位来识别数据. 虽然, ...
- iOS9 新功能:Support Universal Links
先看官方文档:https://developer.apple.com/library/ios/documentation/General/Conceptual/AppSearch/UniversalL ...
- 定时刷新之setTimeout(只一次)和setInterval(间隔相同时间)的使用
setTimeout和setInterval的使用 这两个方法都可以用来实现在一个固定时间段之后去执行JavaScript.不过两者各有各的应用场景. 方 法 实际上,setTimeout和setIn ...
- android 第三方登录---新浪微博
1.AndroidManiFest.xml设置,这里我只是简单的用授权,获取基本信息,所以只用了这一个 <!--微博--> <!-- 必须注册在微博授权,分享微博时候用到 --> ...
- margin-before: 1em; margin-after: 1em;margin-start:0px;margin-end: 0px;
总的来说:这是CSS3.0的对于文章段P容器的定义方法语句!display:block这个样式,只定义了P容器为一个块;后面四句是CSS3中的样式定义方法:-webkit-margin-before: ...
- MongoDB游标操作(4)
游标是什么? 通俗的说,游标不是查询结果,而是查询的返回资源,或者接口. 通过这个接口,你可以逐条读取. 声明游标: var cursor = db.collectioName.find(query ...
- win7修改护眼色
一. 手动修改 记得qq管家有一个功能就是护眼模式 那如何不通过第三方软件修复系统护眼色呢.百度后我在此记录下: 1.在桌面右键单击,选择“个性化”,在下面找到如图所示,点击进去 2.高级外观设置 3 ...
- RAM和ROM总结
RAM和ROM总结 一.在解释之前先备注一些缩写的全称便于记忆: 1.EPROM:(Electrically Programmable Read-Only-Memory)电可编程序只读存储器 2.EE ...
- 测试Oracle 11gr2 RAC 非归档模式下,offline drop数据文件后的数据库的停止与启动测试全过程
测试Oracle 11gr2 RAC 非归档模式下,offline drop数据文件后的数据库的停止与启动测试全过程 最近系统出现问题,由于数据库产生的日志量太大无法开启归档模式,导致offline的 ...
- Thinkphp5简单初体验
<?php namespace app\index\controller; use think\Controller; //引用think/Controller类 class Index ext ...