LinkedList的使用——控制台输出贪吃蛇游戏

来源:互联网 发布:不同列的数据求和公式 编辑:程序博客网 时间:2024/05/18 23:57

首先写一个节点类Node(),定义贪吃蛇的所有行走路线路过的点。
定义横竖坐标 ( i , j ), 生产get() 和 set() 方法,定义一个空的构造方法和一个带参构造方法,重写haseCode( ) 和 equals ( ) 方法,以确保两次输入相同的坐标是同一个。
这里写图片描述

然后写Wrom ( )类:
这里写图片描述
用LinkedList<>数组来保存Node对象,形成链式结构,写一个Wrom构造函数,利用五个node来初始化贪吃蛇的“身体”,contains ( )方法是判断蛇身节点的坐标,step ()方法是用来移动,利用LinkedList对头尾的操作来使蛇身移动,去掉最后一个节点增加一个新的头节点来移动。
下面来定义贪吃蛇游戏的游戏面板WromPanel类,对游戏界面进行输出:
这里写图片描述
输出一个长度为10高度为32的矩形,if(wrom.contains(i,j))逻辑判断蛇身的坐标位置,在蛇身的位置打印 * ,其他位置输出空格。
最后进行游戏测试:
这里写图片描述
获得WromPanel( )类 和 Wrom( )类,进行逻辑判断,根据输入的字符控制蛇身移动的方向。

总结:一共四个类:节点类Node( ),蛇身类 Wrom( ),面板类 WromPanel( ),测试类 WromTest( )
游戏设计之初就要抽象出各个类及其作用,首先抽象出面板类,对游戏的可视化,然后抽象出蛇身类,分成逻辑层和控制层两个部分,逻辑层进行判断控制层进行根据操作变化,然后可以抽象出节点类,蛇身上的每一个位置都是一个节点类,利用LinkedList<>将节点进行存储、操作。
本游戏是对LinkedList数组进行操作的实例,其优势在于对数组收尾的操作简易方便。

1 0