基于JavaGUI的贪吃蛇游戏

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

开发背景

作为一个经典的游戏,贪吃蛇设计简单,实用和娱乐性高,是90后童年的美好回忆。对于贪吃蛇传统的玩法,大家众所周知,即:玩家通过控制游戏手柄上下左右四个方向控制蛇的前进方向,每当吃到一个东西就会增加相应的分数,蛇的身子会越吃越长,蛇身越长游戏的难度就越大,不能咬到自己的身体,也不能碰到墙壁,积累到一定分数就可以通过此关,进入到下一关。

需求分析

该次小游戏程序设计包含二维数组、方向键操作及图形化函数等方面知识。

具体需求概要如下:

1、游戏界面初始化,显示背景区域和活动区域

2、按方向键上下左右进行游戏的控制

3、当蛇头吃到食物时,蛇身长度加一,分数增加

4、当蛇头撞墙或者碰到自身时,游戏结束,显示“GAME OVER”和累加得分

里面存在的事物:地图、蛇、食物

游戏规则:

1.蛇初始化时是3个节点,一开始蛇是出现在地图中间位置的

2.蛇吃到食物会长一节

3.蛇咬到自己会死

4.蛇撞墙会死

5.食物随机生成的,食物不长在背景上,不长在蛇身上。

使用技术

本次课程使用JAVA来完成游戏的设计,使用二维数组存储背景信息,使用List存储蛇身信息,使用Swing完成图形界面化。

功能开发

概要设计

1、初始化模块:屏幕初始化,屏幕初始化用于显示游戏信息“贪吃蛇”。

2、游戏界面模块:设计边框和贪吃蛇活动区域

3、游戏运行模块:运用函数控制蛇长及吃食物关系,使用方向键控制方向。

4、判断模块:蛇头撞墙或者碰到自己身体,则游戏结束,显示分数

实现步骤

本节分为两个部分,一部分为核心逻辑,即算法处理逻辑;另一部分为界面搭建。游戏最核心的部分为算法逻辑部分。先讲算法逻辑,最后再进行界面的搭建。

第一部分分为几个小节

第二部分分为几个小节

创建工程

本次小游戏是一个单独的项目,所以需要创建单独的工程。

地图

首先定义地图的长宽,定义数组存放地图上的点

// 地图的宽(行)

public static final int width = 35;

// 地图的高(列)

public static final int heigth = 8;

//二维数组存放地图上的点

private char[][] background = new char[heigth][width];

我们需要的地图为:

所以需要初始化地图,四周为墙壁,中间为空白部分,供蛇移动。这里使用’*’代表墙壁,使用’ ’代表空白部分。边界值判定:二维数组的第一行和最后一行,其余行的第一列和最后一列均为墙壁。

初始化方法:

// 初始化地图

public void initBackground() {

for (int rows = 0; rows < background.length; rows++) {

for (int cols = 0; cols < background[rows].length; cols++) {

if (rows == 0 || rows == (heigth - 1) || cols == 0 || cols == (width - 1)) {

background[rows][cols] = '*';

} else {

background[rows][cols] = ' ';

}

}

}

}

展示,在控制台循环打印。showBackground方法:

public void showBackground() {

for (int rows = 0; rows < background.length; rows++) {

for (int cols = 0; cols < background[rows].length; cols++) {

System.out.print(background[rows][cols]);

}

System.out.println();

}

}

运行main方法,查看效果。

Main方法:

public static void main(String[] args) throws Exception {

SnakeGame snake = new SnakeGame();

snake.initBackground();

snake.showBackground();

}

控制台效果图:

前面已经初始化完成地图,然后进行蛇的初始化。

蛇的初始大小为3,一个蛇头两节身体。为位置位于屏幕的正中央。代码:// 集合保存节点信息

LinkedList snake = new LinkedList();

// 初始化蛇

public void initSnake() {

int x = width / 2;

int y = heigth / 2;

snake.add(new Point(x + 1, y));

snake.add(new Point(x, y));

snake.add(new Point(x - 1, y));

}

初始化蛇之后,要进行蛇的展示,蛇身用’#’,蛇头用’¥’表述。这里写showSnake方法。

相关文档
最新文档