石家庄学院计算机学院刘智国,java编写的贪吃蛇游戏源码.doc

石家庄学院

课程设计报告

课程名称:

数据结构

设计题目:

用Java语言设计“贪吃蛇”游戏

院 系:

石家庄学院计算机系

专 业:

计算机科学与技术

班 级:

08级2班

设 计 者:

扈海涛

学 号:

20081301061

指导教师:

刘智国

2010

1

7

类名函数程序结构图

类名

注释:

方法名

方法名

贪吃蛇

贪吃蛇

MapYardTextSnakePaintThreadNodeKey

Map

Yard

Text

Snake

PaintThread

Node

KeyMonitor

Food

Direction

DrawMian函数paintScoreCheck.stopgetscore

Draw

Mian

函数

paint

ScoreCheck

.stop

getscore

setscore

processKey

Deadif

Tailadd

Deltail

Headadd

Tailadd()

Deltail()

Headadd

draw

move

eat

keyPressed

Run

Pause

Restart

go_on

isPause

setPause

install

Draw

reAppear

getM

setM

getN

setN

Draw

Keypressed

定义

方向变量L,U,D,R

二、题目分析

通过分析该程序基本需要以下几个类:Text(Main方法)、Snake(蛇)、Food(食物)、Yard(窗口)、Map(地图)、Node(节点)、PaintThread(线程)、Dir(方向)、KeyMonitor(键盘监听)。主要实现蛇运动的基本操作和一些事件反应、游戏分数的记录、暂停、重新开始、更改蛇蛇颜色,蛇的移动速度,地图、死亡模式的改变等功能。

本程序运用Java语言知识,用面向对象的思维设计“贪吃蛇”游戏。

结果分析

运行程序出现游戏界面,蛇(Snake)头自动向前移动,用键盘的上(Up)下(Down)左(Left)右(Right)键控制蛇头的移动方向。游戏窗体中在随机位置出现紫色的食物(Food)。

1、每吃一个加5分

2、默认撞墙不死

3、默认速度3

4、默认地图1

5、默认普通蛇身

6、默认30分提升一个速度档次

7、默认每个速度都走完后更换地图并且速度恢复默认,积分归零

功能键:

1、按F1重新开始

2、按空格键暂停/继续

3、按1/2/3/4/5数字键设置蛇的移动速度(逐渐变快)

4、按F2更换地图(3种)

5、按F3普通蛇/彩蛇的切换

6、按F4更换游戏模式(蛇撞到最外围为死亡还是从另一端返回)

该程序初步完成了“贪吃蛇”的游戏雏形,但是缺乏完善。比如:界面效果十分粗糙、屏幕闪烁、缺少声音等。但是,我们通过编写贪吃蛇,能更好的运用面向对象的思维方式了,并学到了许多有用的经验。

附录(程序清单)

Snake.java

import java.awt.Color;

import java.awt.Graphics;

import java.awt.event.KeyEvent;

public class Snake {

Node head = null;

Node tail = null;

int size = 0;

Yard y;

Node n = new Node(1, 2, Dir.D);

public Snake(Yard y) {

head = n;

tail = n;

size = 1;

this.y = y;

for(int i=0;i<3;i++)

this.Headadd();

}

public void Tailadd() {

Node node = null;

switch (tail.dir) {

case L :

node = new Node(tail.m+1, tail.n, tail.dir);

break;

case U :

node = new Node(tail.m, tail.n+1, tail.dir);

break;

case R :

node = new Node(tail.m-1, tail.n, tail.dir);

break;

case D :

node = new Node(tail.m, tail.n+1, tail.dir);

break;

}

tail.next = node;

node.pre =

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值