JAVA课程设计贪吃蛇小程序 附代码(2)

JAVA课程设计贪吃蛇小程序 附代码(2)
JAVA课程设计贪吃蛇小程序 附代码(2)

枣庄学院

信息科学与工程学院

课程设计任务书

题目:贪吃蛇小程序的设计与开发

学号:

姓名:

专业:计算机科学与技术

课程:java程序设计

指导教师:刘职称:讲师完成时间:2012年5月----2012年6月枣庄学院信息科学与工程学院制

课程设计任务书及成绩评定

课程设计的任务和具体要求

1、课程设计的任务:利用所学知识开发一个java贪吃蛇小游戏;

2、课程设计的具体要求:

(1)界面美观大方,操作简单便捷,按键布局美观。

(2)实现贪吃蛇游戏的左右拐弯,增长等基本游戏功能。

(3)程序能正确运行,操作无错误。

(4)要求所撰写的课程设计任务书的内容和格式符合要求。

指导教师签字:日期:

指导教师评语

成绩:指导教师签字:日期:

课程设计所需软件、硬件等

硬件CPU:Intel T2080D-0内存:2G硬盘空间:320G 软件操作系统:Windows XP开发软件:jdk eclips

课程设计进度计划

起至日期工作内容备注

2012.5.1—5.15 2012.6.1—6.10 2012.6.11—6.15 2012.6.16—6.20

确定课题并收集资料

整体规划并进行初步定位

编写程序代码并进行试验

撰写课程设计任务书参考文献、资料索引

序号文献、资料名称编著者出版单位

[1]《Java语言程序设计》(第二版)李尊朝,苏军中国铁道出版社

[2]《java大学基础教程》(第六版)刘晓莉电子工业出版社

[3]《Java编程思想》(第四版)埃史尔(美),译者:陈昊鹏机械工业出

版社

目录

第1章引言 (1)

1.1研究的背景 (1)

1.2研究目的和意义 (1)

第2章设计方案论证 (2)

2.1设计思路 (2)

2.2概要设计 (2)

2.3详细设计 (3)

第3章设计结果与分析 (7)

第4章心得体会 (9)

附录试验代码 (10)

第1章引言

1.1研究的背景

《JAV A程序设计》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。实践教学环节是必不可少的一个重要环节。本课程的程序设计专题实际是计算机相关专业学生学习完《JAVA程序设计》课程后,进行的一次全面的综合训练,JAV A程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。

1.2研究目的和意义

这次课程设计是通过JAV A编程来实现计算器的功能。以前,人们用来计算的工具不管从方便的角度还是速度的角度来看都不及现代计算器,计算器的发明是人类进步的有力证明。电子技术的不断发展使得计算器的功能不断的完善。人们通过使用计算器来提高自己的工作效率,计算器是高科技的产物,是以往任何时代都无法比拟的。在二十一世纪的今天,计算器依然是人们重要的计算工具,所以,对计算器的研究的课程设计具有重大意义。

本次课程设计题目主要应用到JA V A面向对象程序设计语言中Swing组件和GUI(图形用户界面)当中的一些知识,当然也用到JAV A中大部分基础知识,如JAV A的基本控制结构、数组、输入与输出等等。

第2章设计方案论证

2.1设计思路

贪吃蛇游戏设计与实现,主要分为以下二个模块:游戏主界面模块和游戏控制模块。在此只实现游戏的游戏主界面模块、游戏控制模块。并且只是实现移动速度、暂停、重新开始等功能。

游戏主界面模块:

游戏的主界面是进入游戏后,能够给玩家第一感官的部分,主要包括游戏图形区域界面、游戏的速度选择更新界面、新生方块的预览、游戏速度控制按钮、暂停游戏按钮、重新开始游戏按钮以及游戏排行榜按钮。从很大程度上决定了玩家对游戏的兴趣问题,因此,游戏的主界面应该力求美观,爽心悦目。游戏控制模块:

这个模块是游戏的中心环节,主要完成控制游戏的速度、暂停、重新开始等功能。为了能够给玩家一个很好的游戏环境,这部分应该做到易懂、易操作。

本设计所开发的是基于Java的一个贪吃蛇游戏软件,主要实现游戏的速度控制、游戏的暂停、游戏的退出等功能,分为:游戏主界面模块、游戏控制模块以二个模块。

性能:

本软件在设计方面本着方便、实用及娱乐性高的宗旨,在对界面进行设计的过程中,始终坚持清晰明了,在性能方面能够实现效率高,不易出错等优点。

2.2概要设计

自定义类说明

类名:Exception

作用:用来处理当蛇撞到墙或自己的身体时程序的运行

继承的父类:GreedSnake类

2.方法

表2主要方法

方法名功能备注

Notepad4()描述记事本无Text.setBackground(Color.white)设置编辑区默

认背景色

Text.setForeground(Color.black)设置编辑区默

认前景色

第3章设计结果与分析

本程序在运行后,能够正常的相应按键事件。由于程序的主要部分已经集成为一个对象SnakeModel,所以利用键盘就可以实现操作。蛇前行的过程中,可以任意向其左或右方向改变方向,但按其前进方向和前进的反方向都没有反应。点击PageUp,PageDown键后,蛇的移动速度会根据点击的次数而改变。每点击一次,速度的改变频率为0.75。点击Space或P键后游戏就暂停了。点击Enter或R或S键后系统则重新载入,即游戏重新开始。运行结果如图3-1所示:

图3-1程序运行图

当蛇没有吃到食物且碰到边界或碰撞到自己的身体时,游戏结束,此时得分为0。如果想重新开始即按ENTER或S键,运行结果如图3-2所示:

图3-2程序结束图

程序异常处理

在蛇的运行线程过程中,当蛇撞到墙或自己的身体时,将抛出一个Exception 类的异常对象,然后使用try-catch去捕捉这个异常,

异常的处理如下:

try{

Thread.sleep(timeInterval);}

catch(Exception e)

{

break;

}

第4章心得体会

通过这次课程设计,我对这学期所学的JAVA语言程序设计有一个更深刻的了解,将所学的知识应用于实践,由于所学知识有限,为了使游戏能够实现自己预先的构想,我通过上网和去图书馆找程序,比较好的流程图及功能模块,不断阅读修改代码使程序达到预期所要实现的目标,完成课程设计后,可以感觉到自己对Java程序的又有了新的认识。

在做Java设计之前也有做过其他的课程设计,大多规模很小。在数据库、各种应用软件和游戏中,我仍觉得对游戏的设计有极大的热情。因为其各个模块间的联系十分紧密,代码重复执行率高,当经过无数次的调试、修改后,能最终看到成品,有无比自豪的心情。大学期间做过图书馆管理程序等简单的数据库管理系统的课程设计,思想大致相似,变化范围有限,没有太多自己可发挥的余地。综合运用以前所学习的知识,设计一个JAVA手机游戏,并能实现以下的功能:游戏暂停、游戏重新开始、游戏的结束。总之,通过本次的课程设计,使我平时学到的理论知识得到了很好地升华,理论与实际得到一次很好的结合,为我今后参加工作打下了坚实的基础,使我受益匪浅。

附录试验代码import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

import java.util.*;

public class SnakeGame extends JFrame implements KeyListener{ private int stat=1,direction=0,bodylen=6,headx=7,heady=8,

tailx=1,taily=8,tail,foodx,foody,food;//初始化定义变量

public final int EAST=1,WEST=2,SOUTH=3,NORTH=4;//方向常量int[][]fillblock=new int[20][20];//定义蛇身所占位置

public SnakeGame(){//构造函数

super("贪吃蛇");

setSize(510,510);

setVisible(true);//设定窗口属性

addKeyListener(this);//添加监听

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

for(int i=1;i<=7;i++)fillblock[i][8]=EAST;//初始化蛇身属性

direction=EAST;//方向初始化的设置

FoodLocate();//定位食物

while(stat==1){

fillblock[headx][heady]=direction;

switch(direction){case1:headx++;break;

case2:headx--;break;

case3:heady++;break;

case4:heady--;break;}//蛇头的前进

if(heady>19||headx>19||tailx>19||taily>19||heady<0||headx<0||tailx<0||taily<0||fillblock[headx][he ady]!=0){

stat=0;

break;

}//判断游戏是否结束

try{

Thread.sleep(150);}

catch(InterruptedException e){}//延迟

fillblock[headx][heady]=direction;

if(headx==foodx&&heady==foody){//吃到食物

FoodLocate();

food=2;

try{

Thread.sleep(100);}

catch(InterruptedException e){}//延迟

}

if(food!=0)food--;

else{tail=fillblock[tailx][taily];

fillblock[tailx][taily]=0;//蛇尾的消除

switch(tail){

case1:tailx++;break;

case2:tailx--;break;

case3:taily++;break;

case4:taily--;break;

}//蛇尾的前进

}

repaint();

}

if(stat==0)

JOptionPane.showMessageDialog(null,"GAME OVER","Game Over",https://www.360docs.net/doc/ae5998282.html,RMATION_MESSAGE);

}

public void keyPressed(KeyEvent e){//按键响应

int keyCode=e.getKeyCode();

if(stat==1)switch(keyCode){

case KeyEvent.VK_UP:if(direction!=SOUTH)direction=NORTH;break;

case KeyEvent.VK_DOWN:if(direction!=NORTH)direction=SOUTH;break;

case KeyEvent.VK_LEFT:if(direction!=EAST)direction=WEST;break;

case KeyEvent.VK_RIGHT:if(direction!=WEST)direction=EAST;break;

}}

public void keyReleased(KeyEvent e){}//空函数

public void keyTyped(KeyEvent e){}//空函数

public void FoodLocate(){//定位食物坐标

do{Random r=new Random();

foodx=r.nextInt(20);

foody=r.nextInt(20);

}while(fillblock[foodx][foody]!=0);

}

public void paint(Graphics g){//画图

super.paint(g);

g.setColor(Color.BLUE);

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

for(int j=0;j<20;j++)

if(fillblock[i][j]!=0)

g.fillRect(25*i+5,25*j+5,24,24);

g.setColor(Color.RED);

g.fillRect(foodx*25+5,foody*25+5,24,24);}

public static void main(String[]args){//主程序

SnakeGame application=new SnakeGame();

}

}

java课程设计之贪吃蛇

系统描述 (1) 1.1本设计的目的和意义 (1) 1.2设计的主要内容 (1) 1.3设计要达到的目标 (2) 1.4设计需要实现的功能和目标 (2) 1.5游戏设计环境 (2) 二分析与设计 (3) 2.1 游戏处理流程 (3) 2.2需求分析 (4) 2.3功能模块设计 (4) 2.4详细设计 (8) 三系统测试 (19) 四心得体会 (21) 五参考文献 (22) 六附录 (24)

基于Java的游戏“贪吃蛇”的设计和实现 内容提要: “贪吃蛇”游戏是一个经典的游戏,它因操作简单、娱乐性强而广受欢迎。本文基于Java技术和JBuilder开发环境,开发了一个操作简单、界面美观、功能较齐全的“贪吃蛇”游戏。整个游戏程序分为二个功能模块,六个类模块,实现了游戏的开始、暂停、结束。通过本游戏的开发,达到学习Java技术和熟悉软 件开发流程的目的。 一系统描述 1.1本设计的目的和意义 贪吃蛇游戏一款非常经典的手机游戏,因为它比较简单有趣,无论老少都比较适合。贪吃蛇的设计对每一个Java语言设计者进行语言提高和进阶都是一个很好的锻炼机会。 贪吃蛇游戏的设计比较复杂,它涉及面广、牵涉方面多,如果不好好考虑和设计,将难以成功开发出这个游戏。在这个游戏的设计中,牵涉到图形界面的显示与更新、数据的收集与更新,并且在这个游戏的开发中,还要应用类的继承机制以及一些设计模式。因此,如何设计和开发好这个贪吃蛇游戏,对于提高Java开发水平和系统的设计能力有极大的帮助。在设计开发过程中,需要处理好各个类之间的继承关系,还要处理各个类相应的封装,并且还要协调好各个模块之间的逻辑依赖关系和数据通信关系。 正是因为如此,本次毕业设计的目的在于学习Java程序设计基本技术,学习用JBuilder开发Java程序的相关技术,熟悉游戏“贪吃蛇”的需求,熟悉项目开发的完整过程。学会怎样进行一个项目的需求分析、概要设计、详细设计等软件开发过程,熟练地掌握Java程序设计的基本技术和方法,熟练地掌握JBuilder环境的使用方法,培养起初步的项目分析能力和程序设计能力。 1.2设计的主要内容 贪吃蛇游戏设计与实现,主要分为以下二个模块:游戏主界面模块游戏控制模块。在此只实现游戏的游戏主界面模块、游戏控制模块。并且只是实现开始、暂停、退出等功能。

用java编写的贪吃蛇游戏代码

用Java编写的贪吃蛇代码 下面是我用java编写的一个贪吃蛇游戏源代码.我个人是比较喜欢玩游戏的,所以学习编程二年多了,很想做个游戏程序,由于能力有限,一直没能做好,后来突然看同学在手机上玩“贪吃蛇”,故想做出来,其一是因为此游戏界面容易设计,算法也比较简单,今天我就把我程序的代码和算法介绍一下,顺便把程序界面皮肤设计说一下...... 程序中一个关于游戏信息的类如下,由于类的说明在程序中写的很清楚了,就不再多解释了:#include "time.h" //方向定义 const CPoint UP(CPoint(0,-1)); const CPoint DOWN(CPoint(0,1)); const CPoint LEFT(CPoint(-1,0)); const CPoint RIGHT(CPoint(1,0)); //速度快慢定义 const int HIGH = 75; const int NORMAL = 180; const int SLOW = 300; const int MAX = 80; //表示转向数 const int LENGTH = 10; class GameMsg { public: GameMsg(void) : m_icon(0)

{ InitGame(); } void InitGame(int up = VK_UP, int down = VK_DOWN, int left = VK_LEFT, int right = VK_RIGHT) { srand((unsigned)time(NULL)); m_gameSpeed = NORMAL; m_speedNum = 2; m_snakeNum = 4; for(int i=0; i

Java贪吃蛇报告

J a v a贪吃蛇报告 Revised final draft November 26, 2020

《Java高级编程》课程报告 第xx小组:贪吃蛇游戏项目 小组成员及分工 一、实验环境 操作系统:Windows 7 编程环境:Eclipse、JDK 二、实验内容与完成情况 (主要介绍项目总体功能分析与说明。) 贪吃蛇小游戏的JAVA程序是利用上↑、下↓、左←、右→方向键来改变蛇的运动方向,按空键暂停游戏,按enter键重新开始。长按某个方向键后,蛇的运动速度会加快,在随机的地方产生食物,吃到食物就变成新的蛇体,碰到壁或自身则游戏结束,否则正常进行游戏。以不同的速度和不同方向吃到食物所获得的分数也不相同。 窗口功能说明:设计了三个窗口,分别是游戏主窗口,主菜单窗口,模式选择窗口。菜单栏分别为:游戏菜单(重新开始)和帮助菜单以及返回(返回主菜单)。其中,按返回菜单按钮后会显示主菜单,其包括游戏开始、设置、退出游戏三项按钮选择;如果按

“设置”按钮会进入“模式选择”窗口。而模式选择窗口菜单包括了初级、中级、高级、返回按钮。 1、功能1(主菜单窗口) (1)主菜单窗口主要是提供“游戏开始”、“设置”和“退出”按钮。“游戏开始”按钮按下后会进入“游戏主窗口”开始游戏;“设置”按钮是调用 “模式选择”窗口对游戏贪吃蛇的速度进行设置;“退出”按钮按下则会 直接退出游戏。 (2)功能1实现的流程图 实现的效果图如下: (3)功能1(主菜单窗口)代码: package Swing; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; public class setMenu extends JFrame { private int speed1 = 200; public static int speed = 200; // static int speed = 20; private JPanel contentPane; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { setMenu frame = new setMenu(speed); frame.SsetMenu(frame); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); }

java课程设计贪吃蛇游戏设计

前言 Java最初被命名为Oak,目标设定在家用电器等小型系统的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景。于是改造了Oak,以“Java”的名称正式发布。 Java 编程语言的风格十分接近C、C++语言。Java是一个纯的面向对象的程序设计语言,它继承了 C++ 语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java SE 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。 Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。不过,每次的编译执行需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。但在J2SE 1.4.2 发布后,Java 的执行速度有了大幅提升。 与传统程序不同,Sun 公司在推出 Java 之际就将其作为一种开放的技术。全球数以万计的 Java 开发公司被要求所设计的 Java 软件必须相互兼容。“Java 语言靠群体的力量而非公司的力量”是 Sun 公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同。 Sun 公司对 Java 编程语言的解释是:Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。

java版贪吃蛇小游戏

辅助类 Coordinate.java 复制代码 package com.nn.util; /** *坐标点 */ public class Coordinate { public int x; public int y; public Coordinate(int newX, int newY) { x = newX; y = newY; } public boolean equals(Coordinate other) { if (x == other.x && y == other.y) { return true; }

return false; } @Override public String toString() { return "Coordinate: [" + x + "," + y + "]"; } } 复制代码 接口Direction 复制代码 package com.nn.entity; public interface Direction { public class Dir{ public static final int UP = 1; public static final int DOWN = 2; public static final int LEFT = 3;

public static final int RIGHT = 4; } } 复制代码 实体类Snake.java 复制代码 package com.nn.entity; import java.util.ArrayList; import com.nn.entity.Direction.Dir; import com.nn.util.Coordinate; public class Snake{ //小方块x坐标 private int x; //小方块y坐标

Java课程设计之贪吃蛇

Java课程设计之贪吃蛇 安阳工学院计算机学院 JAVA课程设计报告 专业班级: 学生姓名: 学生学号: 小组成员: 指导教师姓名: 宋强 目录 一选题目的与系统概述 (1) 1.1选题目的 (1) 1.2系统概述.................................................................................1 二系统可行性分析与相关技术背景分析 (2) 2.1系统可行性分析 (2) 2.2相关技术背景分析.....................................................................2 三系统设计与关键技术 (3) 3.1系统设计 (3) 3.2关键技术.................................................................................5 四系统测试与操作实施方法.........................................................9 五系统设计总结与回顾 (11) 六参考文献 (12) 一、选题目的与系统概述 1.1 选题目的 贪吃蛇游戏是一款非常经典的游戏,因为它比较简单有趣,无论老少都比较适合。贪吃蛇的设计对每一个Java语言设计者进行语言提高和进阶都是一个很好的锻炼机会。

在这个游戏的设计中,牵涉到图形界面的显示与更新、数据的收集与更新,并且在这个游戏的开发中,还要应用类的继承机制以及一些设计模式。因此,如何设计和开发好这个贪吃蛇游戏,对于提高Java开发水平和系统的设计能力有极大的帮助。在设计开发过程中,需要处理好各个类之间的继承关系,还要处理各个类相应的封装,并且还要协调好各个模块之间的逻辑依赖关系和数据通信关系。 正是因为如此,本次设计的目的在于学习Java程序设计基本技术,学习用Netbeans开发Java程序的相关技术,熟悉游戏“贪吃蛇”的需求,熟悉项目开发的完整过程。学会怎样进行一个项目的需求分析、概要设计、详细设计等软件开发过程,熟练地掌握Java程序设计的基本技术和方法,熟练地掌握Netbeans环境的使用方法,培养起初步的项目分析能力和程序设计能力。 1.2 系统概述 1.2.1 设计的主要内容 贪吃蛇游戏设计与实现,主要分为以下二个模块:游戏主界面模块和游戏控制模块。在此只实现游戏的游戏主界面模块、游戏控制模块。可实现开始、暂停、改变速度,更换颜色等功能。 1.2.2 设计要达到的目标 本次设计要达到的目标分别从以下模块进行阐述: 游戏主界面模块: 游戏的主界面是进入游戏后,能够给玩家第一感官的部分,主要包括游戏场景、状态栏、颜色设置、网格模式、及相关提示信息等。从很大程度上决定了玩家对游戏的兴趣问题,因此,游戏的主界面应该力求美观,爽心悦目。 游戏控制模块: 这个模块是游戏的中心环节,主要完成控制游戏的开始、暂停等功能。为了能

java贪吃蛇设计文档

姓名:XXXXXX 学号:XXXXXX

目录 1 引言 (5) 1.1 编写目的 (5) 1.2 项目背景 (5) 1.3 开发工具和语言 (6) 1.4 术语说明 (6) 1.4.1 数据结构 (6) 1.4.2 类 (6) 2 概要设计 (7) 2.1 目标 (7) 2.2 运行环境 (8) 2.3 总体设计 (8) 2.3.1 游戏设计思路 (8) 2.3.2 算法中的基本概念 (9) 2.3.3 游戏结构 (9) 2.3.4 游戏整体流程 (9) 3 数据结构设计 (10) 3.1 蛇、石头、食物的表示 (10) 3.2 蛇的移动 (10) 3.3 存储蛇身的数据结构 (11)

3.5 如何显示蛇身 (11) 3.6 蛇身的移动方向 (12) 3.7 吃到食物判定 (12) 4 类的设计 (12) 4.1 设计 (12) 4.1.1 GamePanel类 (12) 4.1.2 Snake类 (13) 4.1.3 Food类 (13) 4.1.4 Ground类 (13) 4.1.5 Controller类 (13) 4.1.6 Mouse类 (13) 4.2 通过事件监听建立联系 (13) 5 详细设计 (13) 5.1 controller包 (14) 5.1.1 Controller类 (14) 5.2 mouse包 (14) 5.2.1 Mouse类 (14) 5.3 entities包 (15)

5.3.2 Ground类 (15) 5.3.3 Snake类 (16) 5.4 game包 (17) 5.4.1 Game类 (17) 5.5 listener包 (17) 5.5.1 Snakelistener类 (17) 5.6 util包 (17) 5.6.1 Global类 (17) 5.7 view包 (17) 5.7.1 GamePanel类 (17) 5.8 sound包 (18) 5.8.1 Sound类 (18) 6 UI设计 (18)

java贪吃蛇课程设计

1设计目的 1.1背景 近年来,Java作为一种新的编程语言,以其简单性、可移植性和平台无关性等优点,得到了广泛地应用,特别是Java与万维网的完美结合,使其成为网络编程和嵌入式编程领域的首选编程语言。JBuilder是Borland公司用于快速开发Java应用的一款优秀的集成开发环境,它以其友好的开发界面、强大的组件支持等优点,得到广大程序员的接受和认可。 “贪吃蛇”游戏是一个经典的游戏,它因操作简单、娱乐性强而广受欢迎。本文基于Java技术和JBuilder开发环境,开发了一个操作简单、界面美观、功能较齐全的“贪吃蛇”游戏。整个游戏程序分为二个功能模块,六个类模块,实现了游戏的开始、暂停、结束。通过本游戏的开发,达到学习Java技术和熟悉软件开发流程的目的。 本文在介绍Java相关技术和国内外发展现状的基础上,对“贪吃蛇”游戏的整个生命周期的各个开发阶段进行了详细地介绍。首先,分析了开发本游戏软件的可行性,重点分析本设计所采用的技术的可行性。其次,从游戏主界面等几方面,分析了本游戏的功能需求;从可使用性和安全性方面分析了属性需求。然后,进行了游戏的概要设计和详细设计,这也是本文的重点。概要设计给出二个功能模块的主框架以及六个类模块的函数调用关系;详细设计介绍了Java2标准运行环境的配置,重点给出各个类模块的程序流程图以及UML图,列表介绍了各个类包含的变量、使用的方法,展示了游戏的界面。为了保证程序代码的正确性和功能实现的可靠性,本文还介绍了游戏软件的程序调试过程和功能测试结果。 1.2目标 本软件是针对贪吃蛇小游戏的JAVA程序,利用方向键来改变蛇的运行方向,空格键暂停或继续游戏,并在随机的地方产生食物,吃到食物就变成新的蛇体,碰到壁或自身则游戏结束,否则正常运行。 2 总体设计 2.1 设计思路 本系统主要是完成贪吃蛇游戏的基本操作。用户可以自己练习和娱乐。本系统需要满足以下几点要求: (1) 利用方向键来改变蛇的运行方向。 (2) 空格键暂停或继续游戏,并在随机的地方产生食物。 (3) 吃到食物就变成新的蛇体,碰到壁或自身则游戏结束,否则正常运行。 2.2 设计说明 本系统共包括1个java源文件和7个类文件。

java课程设计贪吃蛇大学论文

课程设计说明书 课程名称:Java语言程序设计 设计题目:学生成绩管理系统 院系:计算机科学与信息工程学院 学生姓名:肖文 学号:14031010141 专业班级:计算机科学与技术(14嵌入) 指导教师:张阳 2015 年12月27 日

课程设计任务书 设计题目贪吃蛇小游戏程序 学生姓名肖文所在院系计科专业、年级、班14计科嵌入 设计要求: 1. 贪吃蛇游戏是大家很常见的小游戏,在生活工作之余大家可以玩它,已达到放松 各种压力的目的。 2. 游戏可以进行升级,也就是增加吃食物的难度,以便使大家更有挑战性,不觉得 太无趣。 3. 游戏界面大小可以任意指定,数据从文件读入。 4. 利用swing实现良好的GUI界面。 学生应完成的工作: 1. 贪食蛇的前移算法主要是蛇身结点前移,后面的覆盖前面的蛇身结点。依靠的调 用编写的成员方法实现。 2. 在贪吃蛇中蛇头来控制蛇的移动方向,依靠的调用编写的成员方法实现。 3. 要求用户界面采用图形用户界面,影响方向键的控制。 4. 重复的调用paint()函数来实现对界面的重绘和食物的重置。 5. 源程序中要有充分的注释,报告中要有详细的流程图。 6. 运行的结果以及图形用户界面要进行屏幕拷贝,插入报告中。 幕拷贝,插入报告中。 参考文献阅读: 1. 《Java语言程序设计》(美)Y·Daniel Liang 机械工业出版社 2. 赵毅主编.跨平台程序设计语言——Java.西安:西安电子科技大学出版社,2006 3. 王路群.Java高级程序设计.北京:中国水利水电出版社,2006 工作计划: 1,12月21日,选择该课题,然后分析结构。 2,12月21日至25日开始编写各个模块。 3,12月28日至29日,对设计的系统进行测试以及进行修改。 4,12月30日,贪吃蛇完成。 任务下达日期:2015 年12月10 日 任务完成日期:2015 年12月24 日 指导教师(签名):学生(签名):

Java实现贪吃蛇

项目效果图: 源代码: import java.awt.Color; import java.awt.Container; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Point; import https://www.360docs.net/doc/ae5998282.html,ponentAdapter; import https://www.360docs.net/doc/ae5998282.html,ponentEvent; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionAdapter; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.awt.geom.Rectangle2D; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import java.util.*; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; /* author: 蒋冰*/

Java贪吃蛇游戏源代码

import java.awt.Color; import java.awt.Graphics; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.InputEvent; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.JCheckBoxMenuItem; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.KeyStroke; public class 贪吃蛇extends JFrame implements ActionListener, KeyListener,Runnable { /** * */ private static final long serialVersionUID = 1L; private JMenuBar menuBar; private JMenu youXiMenu,nanDuMenu,fenShuMenu,guanYuMenu; private JMenuItem kaiShiYouXi,exitItem,zuoZheItem,fenShuItem; private JCheckBoxMenuItem cJianDan,cPuTong,cKunNan; private int length = 6; private Toolkit toolkit; private int i,x,y,z,objectX,objectY,object=0,growth=0,time;//bojectX,Y private int m[]=new int[50]; private int n[]=new int[50]; private Thread she = null; private int life=0; private int foods = 0; private int fenshu=0;

java课程设计贪吃蛇

JAVA设计贪吃蛇游戏 1.课程设计目的 《JA V A程序设计》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。实践教学环节是必不可少的一个重要环节。本课程的程序设计专题实际是计算机相关专业学生学习完《JAVA程序设计》课程后,进行的一次全面的综合训练,JA V A程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。 2.设计方案论证 2.1设计思路 贪吃蛇游戏设计与实现,主要分为以下二个模块:游戏主界面模块和游戏控制模块。在此只实现游戏的游戏主界面模块、游戏控制模块。并且只是实现移动速度、暂停、重新开始等功能。 游戏主界面模块: 游戏的主界面是进入游戏后,能够给玩家第一感官的部分,主要包括游戏图形区域界面、游戏的速度选择更新界面、新生方块的预览、游戏速度控制按钮、暂停游戏按钮、重新开始游戏按钮以及游戏排行榜按钮。从很大程度上决定了玩家对游戏的兴趣问题,因此,游戏的主界面应该力求美观,爽心悦目。 游戏控制模块: 这个模块是游戏的中心环节,主要完成控制游戏的速度、暂停、重新开始等功能。为了能够给玩家一个很好的游戏环境,这部分应该做到易懂、易操作。 本设计所开发的是基于Java的一个贪吃蛇游戏软件,主要实现游戏的速度控制、游戏的暂停、游戏的退出等功能,分为: 游戏主界面模块、游戏控制模块以二个模块。 性能: 本软件在设计方面本着方便、实用及娱乐性高的宗旨,在对界面进行设计的过程中,始终坚持清晰明了,在性能方面能够实现效率高,不易出错等优点。

用java实现简单贪食蛇游戏

一、功能简介 可以通过面板上的按钮和键盘上的“+”,“-”实现加速,减速。 可以通过面板上的按钮和键盘上的“r“来实现重新开始游戏。 可以在面板上通过复选框选择游戏模式(挑战模式,普通模式)。 二、运行结果截图

二、代码 1、地图 package snake; importjava.io.BufferedReader; importjava.io.File; importjava.io.FileNotFoundException; import java.io.FileReader;//读取字符文件类FileReader importjava.io.IOException; public class map {

int[][] map=new int[20][20]; intsnakeX,snakeY; intfoodX,foodY; public map(int level){ String filepath="mapc/"+level+".txt"; File file = new File(filepath); FileReaderfr = null;//利用FileReader流来读取一个文件中的数据 BufferedReaderbr = null;//字符读到缓存里 try { fr = new FileReader(file); br = new BufferedReader(fr); for (inti = 0; i< 20; i++){ String line = br.readLine();//以行为单位,一次读一行利用BufferedReader的readLine,读取分行文本 byte[] point = line.getBytes();//将字符串转换为字节数组 for (int j = 0; j < 20; j++) { map[i][j] = point[j] - 48;// 根据ASCall码表要减掉30H(十进制的48) if(map[i][j]==3){ snakeX=i; snakeY=j; } if(map[i][j]==5){ foodX=i; foodY=j; } } } } catch (FileNotFoundException e){ e.printStackTrace();//深层次的输出异常调用的流程 } catch (IOException e){ e.printStackTrace();//深层次的输出异常调用的流程 } catch(NullPointerException e){ e.printStackTrace();//深层次的输出异常调用的流程 } finally { if (br == null){ try{

JAVA贪吃蛇游戏设计文档

《JA V A贪吃蛇游戏设计》 目录 《JA V A贪吃蛇游戏设计》 (1) 目录 (1) 摘要 (2) 一.系统开发环境 (2) 1.1 开发工具 (2) 1.2 应用环境 (3) 二.java介绍 (3) 2.1java语言的特点 (3) 2.2JA V A的主要特性 (4) 2.3选题的意义 (5) 2.4研究现状 (5) 2.5研究目的 (6) 三.系统需求分析 (6) 3.1 需求分析 (6) 3.2 可行性分析 (6) 四.设计方案论证 (7) 4.1设计思路 (7) 4.2设计方法 (7) 五.系统概要设计 (11) 5.1 设计目标 (11) 5.2 系统功能模块 (11) 六.系统详细设计 (12) 6.1 程序设计 (12) 6.2 各功能界面截图 (15) 七.系统测试 (20) 7.1 测试的意义 (20) 7.2 测试过程 (21) 7.3 测试结果 (21) 7.4设计体会 (21) 7.5设计总结 (21) 八.参考文献 (22) 九.附录 (22)

摘要 近年来,Java作为一种新的编程语言,以其简单性、可移植性和平台无关性等优点,得到了广泛地应用,特别是Java与万维网的完美结合,使其成为网络编程和嵌入式编程领域的首选编程语言。JBuilder是Borland公司用于快速开发Java应用的一款优秀的集成开发环境,它以其友好的开发界面、强大的组件支持等优点,得到广大程序员的接受和认可。 “贪吃蛇”游戏是一个经典的游戏,它因操作简单、娱乐性强而广受欢迎。本文基于Java技术和JBuilder开发环境,开发了一个操作简单、界面美观、功能较齐全的“贪吃蛇”游戏。整个游戏程序分为二个功能模块,六个类模块,实现了游戏的开始、暂停、结束。通过本游戏的开发,达到学习Java技术和熟悉软件开发流程的目的。 本文在介绍Java相关技术和国内外发展现状的基础上,对“贪吃蛇”游戏的整个生命周期的各个开发阶段进行了详细地介绍。首先,分析了开发本游戏软件的可行性,重点分析本设计所采用的技术的可行性。其次,从游戏主界面等几方面,分析了本游戏的功能需求;从可使用性和安全性方面分析了属性需求。然后,进行了游戏的概要设计和详细设计,这也是本文的重点。概要设计给出二个功能模块的主框架以及六个类模块的函数调用关系;详细设计介绍了Java2标准运行环境的配置,重点给出各个类模块的程序流程图以及UML图,列表介绍了各个类包含的变量、使用的方法,展示了游戏的界面。为了保证程序代码的正确性和功能实现的可靠性,本文还介绍了游戏软件的程序调试过程和功能测试结果。 关键词:java;jdk;“贪吃蛇”游戏 一.系统开发环境 1.1 开发工具 Sun Microsystems公司在推出Java语言的同时,推出了一套开发工具JDK。Sun提供的基于字符模式的Java开发工具包JDK: Java开发工具(JDK)是许多Java专家最初使用的开发环境。Java是平台无关的语言是指用Java写的应用程序不用修改就可在不同的软硬件平台上运行。 Java源程序编写借助于记事本,Editpuls,UltraEdit等第三方编辑工具。 所有的Java文件编辑、编译、调试、解释运行都是通过使用字符命令来执行操作。JDK

JAVA程序源代码(贪吃蛇)

贪吃蛇源代码 将Location、LocationRO、SnakeFrame、SnakeModel、SnakePanel放到命名为snake的文件夹里,主函数MainApp放到外面运行主函数即可实现。 主函数 package snake; import javax.swing.*; import snake.*; public class MainApp { public static void main(String[] args) { JFrame.setDefaultLookAndFeelDecorated(true); SnakeFrame frame=new SnakeFrame(); frame.setSize(350,350); frame.setResizable(false); frame.setLocation(330,220); frame.setTitle("贪吃蛇"); frame.setVisible(true); } } package snake; public class Location { private int x; private int y; Location(int x,int y){ this.x=x; this.y=y; } int getX(){ return x; } int getY(){ return y; } void setX(int x){ this.x=x; }

void setY(int y){ this.y=y; } public boolean equalOrRev(Location e){ return ((e.getX()==getX())&&(e.getY()==getY())) ||((e.getX()==getX())&&(e.getY()==-1*getY())) ||((e.getX()==-1*getX())&&(e.getY()==getY())); } public boolean equals(Location e){ return(e.getX()==getX())&&(e.getY()==getY()); } public boolean reverse(Location e){ return ((e.getX()==getX())&&(e.getY()==-1*getY())) ||((e.getX()==-1*getX())&&(e.getY()==getY())); } } package snake; public class LocationRO{ private int x; private int y; LocationRO(int x,int y){ this.x=x; this.y=y; } int getX(){ return x; } int getY(){ return y; } public boolean equalOrRev(LocationRO e){ return ((e.getX()==getX())&&(e.getY()==getY())) ||((e.getX()==getX())&&(e.getY()==-1*getY())) ||((e.getX()==-1*getX())&&(e.getY()==getY())); } public boolean equals(LocationRO e){ return(e.getX()==getX())&&(e.getY()==getY()); }

最新java简单贪吃蛇代码

/* * 贪吃蛇 */ import java.awt.*; //包含文件 import javax.swing.*; import java.awt.event.*; public class GreedSnack extends JFrame{ int i,j; WH_panel panel; //定义WH_panel的实例JMenuBar wh_bar; //定义菜单实例 public GreedSnack() //构造函数 { super("贪吃蛇--game--"); //框架名称 Container c=getContentPane(); //获得框架容器 setBounds(200, 200, 620, 465); //设置frame的大小 c.setLayout(null); //设置框架布局 wh_bar=new JMenuBar(); //定义菜单实例 setJMenuBar(wh_bar); //设置菜单 JMenu[]m={new JMenu("文件"),new JMenu("编辑")}; //主菜单 JMenuItem[][]mi={ //下拉菜单项 {new JMenuItem("开始"),new JMenuItem("退出")}, //设计菜单的内容 {new JMenuItem("分数"),new JMenuItem("记录分")} }; for(i=0;i

java贪吃蛇课程设计

学院: 计算机工程学院班级: 11级计算机科学与技术1班 设计人员: 设计地点(单位): A5-103 设计题目: 贪吃蛇游戏 完成日期:年月日 指导教师评语: ___________________________________________________________ ____________________ 成绩(五级记分制):_________________ 教师签名:_________________________

摘要 近年来,java作为一种新的编程语言,以其简单性、可移植性和平台无关性等优点,得到了各个国家广泛地认可。本文基于java技术和Eclipse开发环境,设计并实现了一个操作简单、界面美观的“贪吃蛇”游戏。“贪吃蛇”游戏是一个经典的游戏,它因操作简单、娱乐性强而广受欢迎。就整个游戏来说,目的是通过本游戏的设计与实现,达到学习java技术和熟悉软件开发流程的目的。 关键词:java , 贪吃蛇, eclipse 目录

绪论 (1) 1 Java的概述 (2) 1.1 java的简介 (2) 1.2 环境配置 (2) 1.2.1 JDK安装 (2) 1.2.2 系统工具的选择安装 (3) 2 系统介绍 (3) 2.1 系统的介绍 (3) 2.2 设计目的 (4) 2.3 需求分析 (4) 2.3.1 游戏形状需求 (4) 2.3.2 键盘事件处理 (4) 2.3.3 显示需求 (4) 2.3.4 接口控制 (4) 3 系统设计 (5) 3.1 系统所需定义的类 (5) 3.2 功能设计 (6) 4 系统实现 (6) 4.1 界面初始化 (6) 4.2 蛇体实现 (8) 4.2.1 蛇体坐标类 (8) 4.2.2 初始化蛇体 (9) 4.2.3 蛇体变化 (9) 4.3 食物实现 (12) 4.4 障碍物实现 (12) 4.5 游戏控制实现 (12) 4.6 排行榜实现 (12) 5 游戏的测试 (13) 6 总结 (14) 致谢 (14) 参考文献 (15)

贪吃蛇课程设计

《面向对象程序设计》 课程设计报告 题目:贪吃蛇游戏设计与实现 院(系):信息科学与工程学院 专业班级:计科1302班 学生姓名:毛慧剑 学号:20131101057 指导教师:苏莹 2015年8月31日至2015年9月25日华中科技大学武昌分校制

面向对象程序设计课程设计任务书

目录 1需求与总体设计 (1) 1.1总体设计思路 (1)

1.2系统主要功能图 (1) 1.3系统主要类图 (2) 2详细设计............................................... 错误!未定义书签。 2.1 Login类............................................. 错误!未定义书签。 2.2 SnakeFrame类........................................ 错误!未定义书签。 2.3 SnakeModel类........................................ 错误!未定义书签。 2.4SnakePanel类 (3) 2. 5 LocationRO类... ......................................................错误!未定义书签。 2.6 Location类.............................................................错误!未定义书签。 3.编码实现 (4) 3.1 Login类的详细代码 (4) 3.2 SnakeFrame类的详细代码 (7) 3.3 SnakeModel类的详细代码 (12) 3.4 SnakePanel类的详细代码 (17) 3.5 LocationRO类的详细代码 (22) 3.6 Location类的详细代码 (23) 4系统运行与测试 (25) 4.1程序主界面 (25) 4.2游戏开始界面 (25) 4.3游戏操作界面 (25) 4.4游戏难度设置界面 (26) 4.5游戏窗口大小设置 (27) 4.6游戏软件开发人员介绍 (27) 5系统使用步骤 (28) 总结 (29)

相关文档
最新文档