2) 蛇(Snake):在贪吃蛇游戏中,蛇由若干节组成,其中第
一节是蛇头,其余是蛇身。在游戏过程中,有且仅有一条
蛇,并且蛇在不停地移动。如果蛇吃了豆,则蛇生长一节。
如果蛇头碰到蛇身,则咬断蛇身,后半部分的蛇身消失。
如果蛇头离开草坪,则蛇死亡游戏结束。蛇具有长度、颜
色、运动方向、每一节的位置等属性。
3) 豆(Bean):在贪吃蛇游戏中,豆是蛇的食物。在游戏过程
中,有且仅有一颗豆。如果蛇吃了豆,则重新生成一颗豆。
豆具有位置、大小和颜色等属性。
根据需求分析可知,Snake的每一节都有位置和大小等属性。
而Bean也具有这两个属性。抽象出二者的共同特征,抽象出一般
类Block,用于描述一个块。Block派生出Bean和SnakeBlock两个
类,其中SnakeBlock类用于描述蛇的一节。
为了使游戏的运行更易于控制,定义Game类用于启动、暂停
和继续游戏。
根据需求分析可知,Lawn仅包含大小和颜色两个属性。为了
减少类的数量,可将其大小和颜色等属性添加到Game类中。