• 自我审视

       最近自己学习java已经有了一个多月的时间,从一开始对变量常量的概念一无所知,到现在能勉强写几个小程序玩玩,已经有了长足的进步。今天没有去学习,学校里要进行毕业答辩和拍毕业照了,于是请了几天的假,自己也就有了一点空余的时间。回想这一个多月,自己做到好的地方是把大部分时间都用在了看书和码代码上,学习的重点放在了追求对知识的理解和内容的广度之上。书籍方面阅读了《java核心技术》和《java编程思想》,虽然说没有理解全部的内容,《编程思想》一书也只看了300多页,但面向对象部分、集合部分,书上的分析对自己进行理解带来了巨大的帮助。java之外学习了一点数据库和linux的知识,虽然极浅,但脑中对这两方面的知识还是有一些初步的印象了。当然,自己也有许多不足的地方,首先就是java一些技术的运用不够,也就是项目做的不多。经常会出现这么一种情况:自己能说出hashMap底层的运行状况,但码代码时老是想不到用它,结果导致大量的功夫堆砌了很多无用代码。这是自己很欠缺的一个方面,所以自己平常也要多花时间安排一下看书和练习的时间分配了。
  • 思想分析

       自己想做这个小游戏有几个原因,第一个是希望检视一下自己的学习水平,贪吃蛇虽然是很简单的游戏,但我想能帮自己更好的整理代码的逻辑以及各方面,能看看自己有什么不足的地方(至少现在我弥补了一些知识上的漏洞)。第二个原因嘛,其实是上课的时候有一个同学做了一个坦克大战的游戏,虽然极其简陋(逃,但其中的思想和他的学习精神也让我很佩服。所以我总归是不服,自己也尝试着去理解和copy。
    当然,我并没有坐在椅子上,什么也不做凭空想了一个游戏出来,自己水平和思想很有限,并没有达到随手撸代码的地步。自己做这个游戏参考了很多人的代码,其中很多人代码对我帮助很大。大家感兴趣的话可以去网上搜搜,会发现我的代码和某些人的相似程度很高,因为基本上我整个贪吃蛇的思路都是照着前辈的思想来写的,自己并没有什么独创性的地方。这样说其实很惭愧,但转念一想,自己0基础,刚学编程也没有多少时间,参考前人的思想(代码)来学习也没有什么不好意思的。借口一找,心理就平衡多了。
  • 你怎么废话这么多?

       说了这么多,其实也是想把一些心里的话都写出来,这样自己在思考的时候也会更有逻辑和效率。至于要写这几篇文章,是因为自己在学这个游戏的时候都是自己逐步理解和想的,我发现网上并没有详细的分析。当然这样一个简单的项目,没有用到什么复杂的技术,都是一些很基本、很简单的技术和思想啦。我之前也写过几篇微博,都是一些简单的数据结构和算法的代码。但我后来一想,自己只是简单地贴代码,没有更深入的讨论或者研究,那自己写的东西就没有多少意义。既然写的都是代码,那为什么不去看书呢?所以我想我可以把自己理解的过程都写下来,这样可以帮助和我一样的编程初学者去更快的理解和进步,实践是增强技术(还有信心)最快的方法了。除此之外也可以看看自己还有哪些部分是囫囵吞枣的,毕竟写出来让别人理解要比自己掌握难得多。接下来几篇自己就准备写下整个游戏的分析过程了,希望自己拙劣的表达能传达本意,也希望大神轻喷。



贪吃蛇的java代码分析(一)的更多相关文章

  1. 贪吃蛇的java代码分析(二)

    代码剖析 贪吃蛇是一款十分经典的小游戏,对初入coding的朋友来说,拿贪吃蛇这样一个案例来练手十分合适,并不高的难度和成功后的成就感都是学习所必须的.下面我将依照我当时的思路,来逐步分析实现的整个过 ...

  2. 贪吃蛇的java代码分析(三)

    代码剖析 在上一篇文章中,我们完成了贪吃蛇部分代码的构造.回头审视我们写的代码与思路,会发现我们遗漏了一个重要的地方,那就是:贪吃蛇的自身移动.想必大家都知道,贪吃蛇自身是会自己移动的,并且会跟随你的 ...

  3. java代码分析及分析工具

    一个项目从搭建开始,开发的初期往往思路比较清晰,代码也比较清晰.随着时间的推移,业务越来越复杂.代码也就面临着耦合,冗余,甚至杂乱,到最后谁都不敢碰. 作为一个互联网电子商务网站的业务支撑系统,业务复 ...

  4. Java实现贪吃蛇游戏【代码】

    花了两个下午写了一个贪吃蛇小游戏,本人想写这游戏很长时间了.作为以前诺基亚手机上的经典游戏,贪吃蛇和俄罗斯方块一样,都曾经在我们的童年给我们带来了很多乐趣.世间万物斗转星移,诺基亚曾经作为手机业的龙头 ...

  5. Python:游戏:贪吃蛇原理及代码实现

    一.游戏介绍 贪吃蛇是个非常简单的游戏,适合练手.先来看一下我的游戏截图: 玩法介绍:回车键:开始游戏空格键:暂停 / 继续↑↓←→方向键 或 WSAD 键:控制移动方向. 食物分红.绿.蓝三种,分别 ...

  6. 蓝桥杯 贪吃蛇长度java实现

    小明在爷爷的私人收藏馆里找到一台老式电脑.居然没有图形界面,只能用控制台编程. 如上图,是游戏时画面截图. 其中,H表示蛇头,T表示蛇尾.#表示蛇的身体,@表示身体交叉重叠的地方. 你能说出现在的贪吃 ...

  7. java 代码分析工具——JDepend

    最近学习Mybatis的官方文档,看到了[项目文档]一节有很多内容没有见过,做个笔记,理解一下. 百科上的介绍,我竟然都看懂了,那就不找其他地方的资料了. JDepend 一个开放源代码的可以用来评价 ...

  8. 贪吃蛇(Java实现)

    程序效果: 代码: //Snake.java 1 package snake; import javax.swing.*; import java.awt.*; import java.awt.eve ...

  9. 贪吃蛇Controller Java实现(二)

    package cn.tcc.snake.Controller; import java.awt.Point;import java.awt.event.KeyAdapter;import java. ...

随机推荐

  1. HTML5安全:CORS(跨域资源共享)简介。。。ie67不要想了。。。

    来源:http://blog.csdn.net/hfahe/article/details/7730944 前言:像CORS对于现代前端这么重要的技术在国内基本上居然很少有人使用和提及,在百度或者Go ...

  2. 我与A协

    大学毕业以后发现离曾经的圈子越来越远,非常怀念原来在A协和大家一起奋斗的日子,在这里写一篇文章,献给有很多美好回忆的A协,也献给渐渐远离A协的我. 首先,回顾一下我为什么会参与到A协的建设工作中来.我 ...

  3. java 处理XML(dom4j-1.6.1)

    java 处理XML(dom4j-1.6.1) Java 处理xml有很多框架,今天使用主流框架dom4j-1.6.1 下载地址:http://www.dom4j.org/dom4j-1.6.1/ D ...

  4. 在VS中建立.aspx,.cs,.designer.cs之间的级联关系

    <Compile Include="..\Admin\Actions.aspx.cs"> <DependentUpon>Actions.aspx</D ...

  5. linux 使用 nvidia 的 gpu

    第一种方法: [Wizard@Wizard ~]$ nvidia-detect kmod-nvidiaOptimus hardware detected: An Intel display contr ...

  6. Schwarz积分公式

    设$f\in H(B(0,R))\cap C(\overline{B(0,R)})$,且$f=u+iv$,则$f$可用其实部表示为 $$f(z)=\frac{1}{2\pi}\int_{0}^{2\p ...

  7. UE移植到SAE云平台

    应用架在新浪的SAE上,而同时功能中又需要用上编辑器,鉴于百度的UEditor功能强大,可定制,文档全,所以理所当然的用它.而新浪把本地文件的IO操作禁止了,使得UEdiotr的图片上传.附件和在线涂 ...

  8. js生成带参的二维码

    最近项目中有需求生成带参的二维码,考虑过用JAVA后台生成返回前端展示,后面了解到用jquery的qrcode.js插件可以很好现实 引入js: require.config({ baseUrl : ...

  9. C#回顾 –5.反射

      ]; //获取构造函数 var obj = ci.Invoke(null);//实例化构造函数 T1.InvokeMember(funName, BindingFlags.InvokeMethod ...

  10. C++静态库与动态库

    C++静态库与动态库 这次分享的宗旨是--让大家学会创建与使用静态库.动态库,知道静态库与动态库的区别,知道使用的时候如何选择.这里不深入介绍静态库.动态库的底层格式,内存布局等,有兴趣的同学,推荐一 ...