Class+Diagram
2017-06-24 18:32:37 0 举报
贪吃蛇小游戏程序的类图,基于java继承机制编写。贪吃蛇小游戏程序的类图,基于java继承机制编写。
作者其他创作
大纲/内容
SnakeGame
+main(args:String[])void
JPanel
游戏中各类控件食物、宝物、蛇头(用于判断覆盖)地图各控件颜色蛇蛇长生命值设置颜色设置地图
自动演示类蛇类下一个蛇头位置记录不可取位置随机函数构造函数,获取Snake中数据获取地图获取蛇头移动更新hash蛇前进的处理改变方向是否已经死亡能否前进随机产生方向曼哈顿路径移动路径计算
蛇移动方向移动速度计时器随机方向是否自动演示窗口构造函数新游戏初始化新一条生命只对蛇身初始化随机生成食物(或宝物)改变蛇方向判断蛇是否死亡蛇前进一步获得蛇点用于绘制设置开始和暂停事件监听,蛇前进和是否死亡,改变参数
RecordsScrollPane
+getReadScrollPane(records:TopTen,recordFile:File):JScrollPane
TopTen
#records:Record[]-numberInRecord:intnamenum:int
TopTen()+sortRecords():void+addRecordToTopTen(record:Records):void+getNumberInRecord():int+setNumberInRecord(numberInRecord):void+getRecords():Records[]+delete():void
《Comparator》
Records
-player:String-score:int
Menu
game:Framebar:JmenuBarmenu:Jmenu[]item:JmenuItem[]
Menu(f:Frame)+init():void
IsACoverB
+isACoverB(pointA:Point[],pointB:Point[]):boolean+isACoverB(pointA:Point,pointB:Point[]):boolean+isACoverB(pointA:Point,pointB:Point):boolean+isACoverB(pointA:Point,pointB:LinkedList):boolean+isACoverB(pointA:Point[],pointB:LinkedList):boolean
《ActionListener》
RecordComparator
+compare(o1:Object,o2:Object):int+compareScore(o1:Records,o2:Records):int+compareName(o1:Records,o2:Records):int
菜单窗口菜单栏菜单项选项构造菜单,与窗口关联初始化菜单,设置响应函数
成绩玩家姓名玩家得分构造函数构造函数获得玩家姓名获得玩家成绩删除玩家姓名、成绩
排行榜排行榜记录记录数无玩家名记录数构造排行榜记录排序新纪录加入获得记录数量设置记录数量返回记录用于绘制删除记录
Snake
direction:int-delay:int#timer:Timer-rand:Random-ai:Snake_AIgame:Frame
Snake(gameMap:GameMap)+init():void+initSnake():void#randomAim(i:int):void+changeDirection(detiction:int):void#isDead():boolean-advance():void+getPoints():Point[]+setDelay(isAI:boolean,delay:int):void+actionPerformed(arg0:ActionEvent):void
记录比较比较记录比较成绩比较玩家名
Score
+score:intadd:intdead:int
+add():void+dead():void+setadd(a:int,b:int):void
Frame
+snake:Snale+f:Jframemenu:Menu+Snake_AI_bool:boolean
Frame()+setGameOver():void-writeScore():void+keyPressed(e:KeyEvent):void+KeyReleased(arg0:KeyEvent):void+KeyTyped(arg0:KeyEvent):void+getXY(coordinate:int):int+paintComponent(g:Graphics):void
建立游戏记录建立记录排名表
分数初始0分吃到食物加分死亡减分加分减分设置不同难度下计分标准
ThingsInGame
aim:Point[]map:Point[]color:Color[]list:LinkedListlength:inthp:int
+setcolor(color:Color,i:int):void+setmap(k:int)
文件处理读取数据存储数据
DealWithFile
+readRecordsFromFile(recordFile:File):TopTen+writeRecordToFile(r:TopTen,recordFile):void
《Serializable》
Snake_AI
Snake snake-nextHead:Point-amap:HashSetrand:Random
Snake_AI(snake:Snake)+getMap():Hash+getHead():Point+move(dir:int):void+updateMap(s:LinkedList,map:Point[]):void-robot_advance():void+changeDir(direction:int):void-isNextDead(nextHead:Point):boolean+canMove(dir:int):boolean+randomDir():int+Manhattan(snake:Snake,food:Point):int+BFS(snake:Snake,point:Point):int
判断是否覆盖点集与点集点与点集点与点点与表点集与表
游戏主类蛇窗口菜单是否自动演示构造界面游戏结束设置记录键盘事件把数组坐标转化成Swing的实际坐标绘制游戏控件
收藏
0 条评论
下一页