Java学习总结之贪吃蛇项目程序分析

分析设计:通过学习聊天室项目和坦克大战项目,我感觉已经初步掌握了一些面向对象的程序设计方法,所以在看这个项目的视频之前,我自己先进行了一些设计。

大家应该都玩过贪吃蛇这个小游戏,暂时呢,我觉得至少应该有三个类,一个是界面类,一个是蛇,还有一个是豆。

界面类:跟之前的坦克大战等项目一样,界面类都是必不可少的。首先考虑界面类的成员属性,界面应该有大小,也就是宽和高,界面中应该有蛇和豆,也就是一个蛇类对象和一个豆类对象。然后是成员方法,有构造方法,有界面各参数的初始化方法launch,初始化过程中需要添加窗口监听器WindowListener和键盘监听器KeyListener。初始化之后要显示图形有paint方法,显示之后还要不断刷新要有PaintThread类,刷新最好将刷新频率设置为一个常量。综上,

SnakeFrame

-WINDOW_H

-WINDOW_W

-SPEED

-Snake

-Bean

+launch()

+paint()

话说像KeyListener这种内部类还有线程该怎么表示?博主不会的说。。。

蛇:蛇应该是由一个个节点组成,所以应该有个内部类Node,然后有个盛放节点的容器LinkedList    nodeList,其中有两个特殊的节点头结点和尾节点(也有可能用不到,LinkedList类中应该有相关方法),蛇头的方向direction  ,蛇身长度length。然后是成员方法,自身的绘制方法draw,移动方法move,判断是否吃到豆的eat方法,吃到豆后增加长度的addNode方法,还有对按键的响应keyPressed方法。

在内部类Node中,应该有表示自身位置的坐标x,y,图形大小SIZE,自身绘制方法draw,还有用于碰撞检测的getRectangle方法。

Snake

-head

-tail

-length

-direction

-nodeList

+draw()

+move()

+eat()

+addNode()

+keyPressed()

Node

-x

-y

-SIZE

+draw()

+getRectangle()

 

豆类:这个比较简单,表示位置的坐标x,y,豆的直径SIZE,自身绘制方法draw,碰撞检测的getRectangle,被吃掉以后新增一个豆的方法newBean

-x

-y

-SIZE

+draw()

+getRectangle()

+newBean()

 

程序分析就到这里,接下来是程序的编写过程和源代码。

你可能感兴趣的:(Java学习总结,java,贪吃蛇,程序分析)