易截截图软件、单文件、免安装、纯绿色、仅160KB

贪吃蛇的算法分析(Java)


贪吃蛇的算法分析(Java)
 
贪吃蛇是一款非常经典的手机游戏。它有很多算法,这里详细分析一种比较优秀的算法。
首先介绍下主要用到的七个类:
l          WormMain:最主要的类,控制所有其它类的运行和销毁。
l          WormPit:处理键盘输入事件并实例化Worm类和WormFood类的。
l          Worm:抽象了贪吃蛇的属性和动作
l          WormFood:抽象了食物的属性和动作
l          WormScore:用来纪录分数的类
l          WormLink:抽象了蛇身上的一段,保存了这段的坐标、方向和所有状态。
l          WormException:处理异常类
基本概念介绍
节:一条蛇可以看成有许多正方形的“小格子”拼凑成,我把它称作节。节是蛇身上最小的单位。
段:当许多节连成一条直线,我称它为段。上图的贪吃蛇只有一段,如果它拐弯就变成两段。
链表:用来保存每一段的状态,链表的元素单位是段。且链表的最后一个元素表示蛇的头部段。
坐标系:MIDP中的坐标以左上角那点为(0,0),向右则x递增,向下则y递增。
Worm类
一条完整的贪吃蛇是由一段一段组成的。链表中保存的第一个元素是蛇的尾巴段,最后一个元素是蛇的头部段。当蛇运动的时候,它头部段增加一节而尾段减少一节。如果它吃到了食物,尾部段就不减少一节。也就是说,蛇是从头部段开始长的。 
下面的代码段显示了Worm类保存的各种属性:
    /* 贪吃蛇可能移动的方向 */
    public final static byte DOWN  = 2;
    public final static byte LEFT  = 4;
    public final static byte RIGHT = 6;
    public final static byte UP    = 8;
    // 贪吃蛇的当前方向
    private byte currentDirection;
    // 保存贪吃蛇每一段的列表
    private Vector worm = new Vector(5, 2);
        


相关文档:

利用java判断文件的编码方法

在程序中,文本文件经常用来存储标准的ASCII码文本,比如英文、加减乘除等号这些运算符号。文本文件也可能用于存储一些其他非ASCII字符,如基于
GBK的简体中文,基于BIG5的繁体中文等等。在存储这些字符时需要正确指定文件的编码格式;而在读取这些文本文件时,有时候就需要自动判定文件的编码
格式。
按照给定的字符集� ......

谈谈Java继承中的重载,覆盖和隐藏

谈谈Java继承中的重载,覆盖和隐藏
好久不写博客了,距离上一篇已经过了两年多了。这两年在干嘛,总之一年难尽!
前一段时间忙了两个月,忙着研究和做一些SSH架构的东西,两个月下来,收获颇丰,最近闲下来了,于是就痛快的开始玩游戏,但是不知怎么地,怎么玩都没意思,于是决定开始再好好研究研究Java吧。于是大概翻了翻 ......

缓存系统MemCached的Java客户端优化历程

來源:http://www.infoq.com/cn/articles/memcached-java
作者




岑文初

发布于
2008年9月27日 上午12时38分

社区
Java
主题
集群与缓存
Memcached 是什么?
Memcached是一种集中式Cache,支持分布式横向扩展。这里需要解释说明一下,很多开发者觉得Memcached是一种� ......

各种Java中文转码的例子,用来对付乱码

 各种Java中文转码的例子,用来对付乱码
public class HelloWorld
{
   public static void main(String[] argv){
     try{
       System.out.println("中文1");    //1
       System.out.p ......

[JAVA]int类型和byte[]互转

package com.mapabc.sz_hbt.util;
/**
* <p>Title:整型与长度为4的字节数组的互换 </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2007-5-10</p>
* <p>Company: www.mapabc.com</p>
* @author luoyj
* @version 1.0
*/
public class Byte ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号