论文无忧网提供:计算机毕业论文范文|计算机毕业设计|计算机毕业论文
栏目导航 ASP Java Web .NET VB6.0 JAVA VC VF DELPHI PB 计算机网络 计算机科学与技术 PHP 安卓APP 其他 C# 代写论文
当前位置: > 计算机 > JAVA >

手机吞吃蛇游戏的设计与开发(论文+程序)

3.2数据结构设计

节:一条蛇可以看成有许多正方形的“小格子”拼凑成,我把它称作节。节是蛇身上最小的单位。 内容来自www.paper51.com

段:当许多节连成一条直线,我称它为段。贪吃蛇只有一段,如果它拐弯就变成两段。

http://www.paper51.com

链表:用来保存每一段的状态,链表的元素单位是段。且链表的最后一个元素表示蛇的头部段。

copyright paper51.com

坐标系:MIDP中的坐标以左上角那点为(0,0),向右则x递增,向下则y递增。 内容来自www.paper51.com

这里讲解数据结构类中主要属性,其他方法将在后面讲解。 内容来自www.paper51.com

这里用一个SnakeLink类来表示一个蛇身体节点对象: 内容来自论文无忧网 www.paper51.com

public class SnakeLink { http://www.paper51.com

    private int x, y;//坐标

内容来自www.paper51.com

    private int len;//长度

内容来自www.paper51.com

    private byte dir;//方向 copyright paper51.com

    private SnakeLink() { http://www.paper51.com

    } 内容来自论文无忧网 www.paper51.com

    …… 内容来自www.paper51.com

}

内容来自论文无忧网 www.paper51.com

这里用SnakePit类来表示一个蛇对象的基本游戏属性: copyright paper51.com

public class SnakePit extends Canvasimplements Runnable { paper51.com

    //蛇的食物 内容来自论文无忧网 www.paper51.com

    private SnakeFood myFood; 内容来自www.paper51.com

    //当前蛇对象 paper51.com

    private Snake     mySnake; http://www.paper51.com

    //结束标志

http://www.paper51.com

    private boolean gameOver =false; 内容来自论文无忧网 www.paper51.com

    //暂停标志 内容来自论文无忧网 www.paper51.com

    private boolean gamePaused =false;

内容来自论文无忧网 www.paper51.com

    //重来标志 paper51.com

    private boolean gameRestart= false; 内容来自论文无忧网 www.paper51.com

    //重画标志

copyright paper51.com

    private boolean forceRedraw= true;

paper51.com

    //退出游戏标志

http://www.paper51.com

    private booleangameDestroyed = false; copyright paper51.com

    //当前得分 内容来自www.paper51.com

    private int score = 0;

http://www.paper51.com

    //当前等级

paper51.com

    private int level = 5;

内容来自www.paper51.com

    //吃到多少食物

http://www.paper51.com

    private int foodEaten = 0;

copyright paper51.com

    //当前屏幕象素宽

paper51.com

    private int width; 内容来自论文无忧网 www.paper51.com

    //当前屏幕象素高 内容来自www.paper51.com

    private int height; http://www.paper51.com

    //音效对象

paper51.com

    private Player audioPlayer;

http://www.paper51.com

    //音效对象

copyright paper51.com

    private Player tonePlayer; copyright paper51.com

    //一个屏幕单元格宽

http://www.paper51.com

    static int CellWidth; copyright paper51.com

    //一个屏幕单元格高

http://www.paper51.com

    static int CellHeight;

copyright paper51.com

    //初始蛇位置 paper51.com

    private static final intSTART_POS = 3;

内容来自论文无忧网 www.paper51.com

    //重画时间 copyright paper51.com

    private static final intDEFAULT_WAIT = 400;

内容来自论文无忧网 www.paper51.com

    //最高难度

copyright paper51.com

    static final byte MAX_LEVELS= 10;

copyright paper51.com

    //食物颜色 内容来自www.paper51.com

    static final intFOOD_COLOUR  = 0x0000ff00; paper51.com

    //文字颜色 copyright paper51.com

    static final intTEXT_COLOUR  = 0x00ff0000;

copyright paper51.com

    //擦除颜色 paper51.com

    static final intERASE_COLOUR = 0x00ffffff;

paper51.com

    //蛇节点颜色

内容来自www.paper51.com

    static final intDRAW_COLOUR  = 0x00000000; paper51.com

    //一个单元大小

内容来自www.paper51.com

    public  static final int CELL_SIZE = 5; copyright paper51.com

    ……

内容来自www.paper51.com

}

paper51.com

最后一条蛇对象由Snake类将以上两个类又机组织在一起在游戏中使用。

copyright paper51.com

public class Snake {

http://www.paper51.com

    //方向常量

内容来自论文无忧网 www.paper51.com

    public final static byteDOWN  = 2;

内容来自www.paper51.com

    public final static byteLEFT  = 4; paper51.com

    public final static byteRIGHT = 6; 内容来自www.paper51.com

    public final static byte UP    = 8;

copyright paper51.com

    // 蛇头当前方向 copyright paper51.com

    private bytecurrentDirection; paper51.com

    // 用一个链表来存储蛇节点 内容来自论文无忧网 www.paper51.com

    private Vector worm = newVector(5, 2); copyright paper51.com

    //是否需要更新 copyright paper51.com

    private boolean needUpdate;

http://www.paper51.com

    //是否移动后更新 paper51.com

    private booleanmoveOnNextUpdate; copyright paper51.com

    //是否已经吃到食物

copyright paper51.com

    private boolean hasEaten;

copyright paper51.com

    ……

copyright paper51.com

} paper51.com

同时蛇吃的食物对象数据结构用SnakeFood类来表示如下: 内容来自www.paper51.com

public class SnakeFood {

copyright paper51.com

    //当前食物所在的单元X坐标

http://www.paper51.com

    private int cellX; paper51.com

    //当前食物所在的单元Y坐标

http://www.paper51.com

    private int  cellY;           

内容来自www.paper51.com

    ......

内容来自www.paper51.com

}              paper51.com

------分隔线----------------------------
联系方式