基于Java的动物换位游戏软件
动物换位游戏JAVA课设

6.1 总体流程图 .............................................7 6.2 程序代码...............................................8
2.设计要求
设计 GUI 界面的动物换位游戏,游戏的结果是让左右两组动物交换位置。具体内容如下: 程序分为 4 个级别,用户可以通过界面上提供的菜单选择“初级”、“中级”、“高级”、“自定义” 这 4 个级别。对于“初级”级别,在水平排列的 7 块石头上的左右各有 3 个类型相同的动物,中间 的石头上没有动物;对于“中级”级别,在水平排列的 9 块石头上的左右各有 4 个类型相同的动物, 中间的石头上没有动物;对于“高级”级别,在水平排列的 11 块石头上的左右各有 5 个类型相同的 动物,中间的石头上没有动物;对于“自定义”级别,用户可以输入自己想设置的一个动物数量(输 入的数必须是偶数),在水平排列的 N 块石头上的左右各有(N-1)/2 个类型相同的动物,中间的石头 上没有动物。
5.类详细设计(画 UML 图)
ChangeAnimalWindow 类是 javax.swing 包中的 JFrame 的一个子类,并实现了 ActionListener 接口,标明该类的主要成员变量和方法的 UML 图如图 5-1 所示。
以下是 UML 图中有关数据和方法的详细说明:
图 5-1 ChangeAnimaБайду номын сангаасWindow 类的 UML 图
工作计划与进度安排: 第 18 周:布置课程设计任务,查阅资料,分组设计,程序调试。 第 19 周:程序调试,编写课程设计报告,验收,答辩。
java课程设计斗兽棋

java课程设计斗兽棋一、教学目标本章节的教学目标是使学生掌握Java编程基础,能够运用Java编写简单的斗兽棋游戏。
具体目标如下:1.知识目标:–了解Java编程语言的基本语法和结构。
–掌握面向对象编程的基本概念,如类、对象、继承、多态等。
–学习Java标准库的相关知识,如集合框架、输入输出等。
2.技能目标:–能够使用Java开发工具,如Eclipse、IntelliJ IDEA等。
–能够编写Java程序,实现基本的输入输出、控制结构、函数调用等。
–能够运用面向对象编程思想,设计并实现具有继承、多态等特征的程序。
3.情感态度价值观目标:–培养学生对编程的兴趣和热情,提高学生的问题解决能力。
–培养学生团队合作精神,学会与他人交流和分享。
–培养学生良好的编程习惯,如代码规范、注释清晰等。
二、教学内容本章节的教学内容主要包括以下几个方面:1.Java编程语言基本语法和结构。
2.面向对象编程的基本概念,如类、对象、继承、多态等。
3.Java标准库的相关知识,如集合框架、输入输出等。
4.斗兽棋游戏的规则和逻辑实现。
具体的教学大纲如下:1.第1-2课时:Java编程语言基本语法和结构。
2.第3-4课时:面向对象编程的基本概念。
3.第5-6课时:Java标准库的相关知识。
4.第7-8课时:斗兽棋游戏的规则和逻辑实现。
三、教学方法本章节的教学方法采用讲授法、案例分析法和实验法相结合的方式。
1.讲授法:用于讲解Java编程语言基本语法和结构、面向对象编程的基本概念以及Java标准库的相关知识。
2.案例分析法:通过分析斗兽棋游戏的案例,使学生掌握游戏的规则和逻辑实现。
3.实验法:让学生动手编写Java程序,巩固所学知识,提高编程能力。
四、教学资源本章节的教学资源包括教材、参考书、多媒体资料和实验设备。
1.教材:选用《Java编程思想》作为主要教材,辅助以《Java核心技术》等参考书。
2.多媒体资料:提供Java编程语言基本语法和结构、面向对象编程的基本概念等视频教程。
JAVA代码 flappy Bird(飞翔的小鸟)附图

BufferedImage image;
int x, y;
int width, height;
int size;//鸟的大小。用于做碰撞检测。
//增加属性计算鸟的位置
double g;//重力加速度
double t;//两次位置的时间
double v0;//初始速度
//画笔再转回来
g2.rotate(bird.alpha, bird.x, bird.y);
Font f = new Font(Font.SANS_SERIF, Font.BOLD, 40);
g.setFont(f);
g.drawString("" + score, 43, 63);
g.setColor(new Color(255, 255, 255));
alpha = -Math.PI / 2;
}
return hit;
}
public boolean hit(Column c) {
//鸟飞进柱子范围
if (x > c.x - size / 2 - c.width / 2
&& x < c.x + size / 2 + c.width / 2) {
//是否在间隙内
boolean hit = y-size / 2 < 0 ;
return hit;
}
public boolean hit(Ground ground) {
boolean hit = y + size / 2 > ground.y;
if (hit) {
//把鸟放在地上
java宠物管理系统代码

Java宠物管理系统代码简介Java宠物管理系统是一款基于Java开发的宠物管理软件。
该系统旨在帮助用户方便地管理和记录宠物信息,包括宠物的基本信息、健康状态以及日常需求等。
用户可以通过该系统进行宠物信息的增删改查,同时还可以添加日程提醒和设置健康检查等功能,以方便管理自己的宠物。
功能特点1.宠物信息管理:用户可以添加宠物的基本信息,包括宠物的名称、品种、年龄等。
同时,用户可以修改和删除已有的宠物信息。
2.喂食管理:用户可以记录每天喂食的情况,包括喂食的时间、食物种类和食量等,以便掌握宠物的饮食情况。
3.运动管理:用户可以记录宠物的运动情况,包括每天运动的时间和方式等,以帮助宠物保持健康的身体状况。
4.日程提醒:用户可以设置宠物的日常提醒事项,如定时喂食、定时遛狗等,系统将会在设定的时间提醒用户。
5.健康检查:用户可以记录宠物的健康检查情况,包括宠物的体温、体重、疫苗注射情况等,以便及时发现宠物的健康问题。
6.数据备份与恢复:系统支持用户将宠物信息进行备份,并且可以在需要的时候恢复已备份的数据。
系统架构Java宠物管理系统采用三层架构设计,分为表示层、业务逻辑层和数据访问层。
表示层(Presentation Layer)表示层负责与用户进行交互,接收用户输入的指令和数据,并显示处理结果。
在本系统中,表示层主要由交互界面和用户输入输出模块构成。
业务逻辑层(Business Logic Layer)业务逻辑层是系统的核心部分,负责处理用户指令和数据,进行逻辑判断和业务处理。
在本系统中,业务逻辑层主要包括宠物信息管理模块、喂食管理模块、运动管理模块、日程提醒模块和健康检查模块。
数据访问层(Data Access Layer)数据访问层负责与数据库进行交互,实现数据的增删改查操作。
在本系统中,数据访问层主要由数据库管理模块和数据操作模块构成。
使用说明1.安装环境:确保已经安装Java运行环境(JRE)。
换位消除小游戏编程实现

换位消除小游戏编程实现在这篇文章中,我们将介绍如何使用编程来实现一款名为“换位消除”的小游戏。
游戏的目标是消除所有相同颜色的方块,通过不断交换它们的位置来完成。
1. 游戏规则在“换位消除”游戏中,你将面对一个方块矩阵,每个方块上都有不同的颜色。
你的目标是通过交换两个相邻方块的位置,以消除所有相同颜色的方块。
当你成功消除一组相同颜色的方块时,它们将从屏幕上消失,并且上方的方块将填充空缺位置。
你需要通过合理的移动来消除所有方块,同时尽可能地获得高分。
2. 编程实现为了实现这个游戏,我们将使用Python编程语言。
首先,我们需要创建一个游戏矩阵,其中包含不同的颜色方块。
我们可以使用二维数组来表示矩阵,例如:```pythongame_matrix = [['R', 'B', 'G'],['R', 'G', 'B'],['B', 'R', 'G']]```在这个例子中,‘R’代表红色,‘B’代表蓝色,‘G’代表绿色。
你可以根据自己的喜好定义其他的颜色。
3. 交换方块接下来,我们需要编写一个函数来交换两个方块的位置。
此函数将接受两个方块的坐标作为参数,并将它们在游戏矩阵中的位置进行交换。
下面是一个示例实现:```pythondef swap_blocks(x1, y1, x2, y2):temp = game_matrix[x1][y1]game_matrix[x1][y1] = game_matrix[x2][y2]game_matrix[x2][y2] = temp```4. 消除方块当两个相邻方块的颜色相同时,我们可以将它们从游戏矩阵中移除。
为了实现这个功能,我们可以编写一个函数来检查游戏矩阵中的相同颜色方块,并将它们标记为待删除。
下面是一个示例实现:```pythondef remove_blocks():rows = len(game_matrix)cols = len(game_matrix[0])marked_for_removal = [[False] * cols for _ in range(rows)]for i in range(rows):for j in range(cols):if i < rows - 1 and game_matrix[i][j] == game_matrix[i + 1][j]: marked_for_removal[i][j] = Truemarked_for_removal[i + 1][j] = Trueif j < cols - 1 and game_matrix[i][j] == game_matrix[i][j + 1]: marked_for_removal[i][j] = Truemarked_for_removal[i][j + 1] = Truefor i in range(rows):for j in range(cols):if marked_for_removal[i][j]:game_matrix[i][j] = ' '```在上面的代码中,我们使用一个二维布尔数组来记录需要删除的方块位置。
java偏牧极限生存同款整合包分享

java偏牧极限生存同款整合包分享java偏牧极限生存(Java Mansuetude Survival)是一款备受玩家喜爱的游戏模式,它要求玩家在一个极端条件下生存并取得胜利。
为了方便玩家获得更好的游戏体验,许多开发者和玩家都创造了各种各样的整合包,为玩家提供更多的资源和玩法。
本文将分享一款优秀的Java偏牧极限生存整合包,并对整合包的内容和特点进行深入评估。
【1】介绍与理解Java偏牧极限生存是一种特殊的游戏模式,它虽然不是游戏的官方设定,但却深受玩家喜爱。
玩家需要在一个资源稀缺、生存环境恶劣的世界中尽可能长时间地生存下去。
这需要玩家具备良好的战略思维、忍耐力和对环境的敏锐感知力。
而整合包则是为了方便玩家在游戏中加入更多的资源、方块和功能,提供更多样化的游戏体验。
这些整合包通常由开发者根据玩家的需求和喜好来定制,包含了各种各样的模组(mod)和插件 (plugin)。
这些模组和插件能够扩展游戏的内容,提供更多的挑战和机会,使游戏更富有深度和广度。
【2】整合包介绍在Java偏牧极限生存同款整合包中,我们可以发现许多有趣和创新的模组和插件。
整合包中包含了丰富的资源包,可以美化游戏的画面和音效,提升玩家的沉浸感。
整合包还加入了更多的地形生成模组,使玩家能够探索到更加多样化和刺激的地形,例如山脉、丛林和沙漠。
再次,整合包中加入了更多的生物模组,增加了游戏中各种各样的生物,有些甚至是稀有的或具有特殊能力的生物,让玩家在生存的同时还能感受到更多的乐趣和挑战。
整合包还增加了一些新的物品和工具,给玩家提供更多的选择和策略性。
新增的物品可以帮助玩家更容易地获取食物、水源和建筑材料,以应对极端环境。
新增的工具可以提高玩家的采集和战斗效率,让他们能够更好地应对各种挑战和敌人。
【3】个人观点与理解对于我个人而言,Java偏牧极限生存同款整合包能够为游戏带来更丰富的体验。
通过加入更多的资源和功能,整合包不仅为玩家提供了更多的游戏内容,也带来了更多的挑战和乐趣。
跳一跳游戏(Android应用使用Java开发)

跳一跳游戏(Android应用使用Java开发)跳一跳游戏是一款简单而又富有挑战性的休闲游戏,经常出现在我们的手机屏幕上。
本文将介绍跳一跳游戏的开发过程,使用Java语言在Android平台上实现。
1. 游戏概述跳一跳是一款基于物理引擎的游戏,玩家通过点击屏幕来控制角色跳跃,目的是在不碰到障碍物的情况下尽可能远地跳跃。
游戏界面简洁明了,操作简单直观,非常受欢迎。
2. 技术要求为了实现跳一跳游戏,我们需要使用Java语言进行Android应用开发。
除此之外,还需要掌握Android开发框架和物理引擎的使用,以及基本的游戏逻辑设计。
3. 开发环境搭建首先,我们需要安装Android Studio,这是一款专门用于Android应用开发的集成开发环境(IDE)。
然后,我们需要下载并配置Java Development Kit(JDK),确保Android Studio可以正常编译和运行我们的代码。
4. 项目创建在Android Studio中,我们可以通过创建一个新项目来开始跳一跳游戏的开发。
在创建项目的过程中,我们可以选择一些基本的配置,例如应用名称、包名、最低支持的Android版本等。
5. 游戏界面设计跳一跳游戏的界面主要由两个部分组成:游戏区域和角色。
游戏区域通常是一个类似于方块的地图,上面有随机生成的障碍物。
角色则是一个小球,玩家通过点击屏幕来控制角色的跳跃。
6. 游戏逻辑设计在跳一跳游戏中,玩家通过点击屏幕控制角色的跳跃力度。
跳跃的力度决定了角色跳跃的高度和距离。
玩家需要在不碰到障碍物的情况下跳跃到另一个平台上,每次跳跃成功都会获得一定的分数。
7. 物理引擎应用为了实现跳一跳游戏中的物理效果,我们可以使用一些开源的物理引擎库,例如Box2D。
物理引擎可以模拟真实世界中的物理效果,使得角色的跳跃和碰撞更加逼真。
8. 分数统计与排名为了增加游戏的竞争性和挑战性,我们可以在跳一跳游戏中添加分数统计和排名功能。
使用Java制作贪吃蛇游戏

近年来,Java作为一种新的编程语言,以其简单性、可移植性和平台无关性等优点,得到了广泛地应用,特别是Java与万维网的完美结合,使其成为网络编程和嵌入式编程领域的首选编程语言。
Eclipse是一个开放源代码的、基于Java的可扩展开发平台,同时它也是是著名的跨平台的自由集成开发环境,它以其友好的开发界面、强大的组件支持等优点,得到广大程序员的接受和认可。
贪吃蛇是人们手机中是一个很常见的一个经典小游戏,人们对它并不陌生,在紧张的现实生活中给人们带来了不少的乐趣,编写这个贪吃蛇小游戏能让人们在业余时间里适当的放松,保持好的心态。
在这个程序中我采用了Java中的图形用户界面技术,同时引入了线程来编写。
本次设计主要是对我之前所学Java知识的一个巩固,不仅提高了我综合运用以前所学知识的能力,同时也锻炼了我的实际动手能力。
整个游戏代码简单易懂,用户在娱乐的同时也可以简单的看一下代码,有助于初涉Java者语言水平的提高。
贪吃蛇的核心算法是如何实现移动和吃掉食物,在当前运动方向上头指针所指的位置之前添加一个节点,然后删除尾节点,最后把链表中的所有节点依次画出来,这样就可以达到移动的效果。
对是否吃到食物,需要对蛇和食物进行碰撞检测,检测未碰撞在一起则只需要执行移动操作,碰撞在一起时表示吃到食物,则只需把食物入队即可,即在蛇的节点链表上再添加一个节点,从而达到身体增长的效果。
本次设计的重点之处在于编程思想的形成,设计图像界面,产生随机食物及其位置。
难点在于程序编写中,整个程序框架的架构。
这就要求我们不仅要对这个游戏的玩法特别熟悉,而且还要熟练掌握Java 语言。
实现贪吃蛇的四个类模块,分别为游戏界面、蛇、食物和方向。
其具体设计如下:1产生游戏界面Yard.java包括界面的位置、大小的设定,绘制游戏界面,启动键盘监听器。
1)在launch()中添加代码:this.setBounds(200,200,COLS*BLOCK_SIZE,ROWS*BLOCK _SIZE);设定界面的位置、大小。
奔跑吧小恐龙java项目说明书

奔跑吧小恐龙java项目说明书一、项目概述《奔跑吧,小恐龙》是一款基于Java语言开发的小游戏项目。
游戏的目标是控制小恐龙不断跳跃、奔跑,躲避障碍物,获取高分。
该项目主要实现了游戏的界面搭建、角色控制、障碍物生成、碰撞检测和分数统计等功能。
通过该项目可以学习到Java游戏开发的基本知识和技巧。
二、开发环境1. 开发平台:Java SE Development Kit 8(JDK 8)2. 开发工具:Eclipse IDE for Java Developers3. 图形库:JavaFX三、需求分析1.游戏界面游戏界面分为主界面、游戏界面和游戏结束界面。
主界面负责展示游戏标题和开始按钮;游戏界面负责展示背景、小恐龙、障碍物和当前分数;游戏结束界面负责展示最终得分和重新开始按钮。
2.角色控制玩家通过按下或释放空格键来控制小恐龙的跳跃。
按下空格键小恐龙向上跳跃,松开空格键小恐龙向下落地。
3.障碍物生成游戏中会不断生成障碍物,并向左方移动。
障碍物包括不同高度的障碍物和地面。
障碍物和地面的位置和高度是随机生成的。
4.碰撞检测玩家需要控制小恐龙躲避障碍物。
当小恐龙与障碍物或地面发生碰撞时,游戏结束。
5.分数统计小恐龙每成功躲过一个障碍物,得1分。
分数会在游戏界面上实时显示。
四、设计与实现1.主界面设计主界面由一个标题和一个开始按钮组成。
标题使用JavaFX的Label 组件,开始按钮使用Button组件。
点击开始按钮进入游戏界面。
2.游戏界面设计游戏界面分为背景、小恐龙、障碍物和分数四个部分。
背景使用ImageView组件展示游戏背景图;小恐龙使用ImageView组件展示小恐龙的动画效果;障碍物使用Rectangle组件展示,可以根据障碍物的高度和位置进行碰撞检测;分数使用Label组件展示,每成功躲过一个障碍物,分数会自动加13.碰撞检测设计碰撞检测通过不断比较小恐龙和障碍物的位置和高度来实现。
当小恐龙的X轴坐标与障碍物重合,并且小恐龙的Y轴坐标加上小恐龙的高度大于障碍物的Y轴坐标时,即发生碰撞。
java课程设计实验报告动物换位

实验主题:动物换位1. 实验目的1.1 掌握Java面向对象程序设计的基本思想和方法;1.2 学习使用Java语言编写程序并进行调试;1.3 加深对继承、多态等概念的理解。
2. 实验内容2.1 设计一个动物类Animal,包括属性:尊称、芳龄、性莂等,并包括方法:eat()、run()等;2.2 在Animal类的基础上,设计其他动物类,例如猫类Cat、狗类Dog,并且实现相关的方法;2.3 设计一个动物换位的场景类,对不同种类的动物进行换位操作,观察调用不同对象的同一方法时的效果。
3. 实验原理3.1 面向对象程序设计:将问题进行对象抽象,建立对象与对象之间的关系;3.2 继承关系:利用继承关系实现不同类之间的共性和特性;3.3 多态性:通过调用父类的引用指向子类对象,实现方法的动态绑定和多态的效果。
4. 实验步骤4.1 设计动物类Animal,包括属性和方法的声明;4.2 设计猫类Cat和狗类Dog,继承Animal类,并重写eat()和run()方法;4.3 设计动物换位的场景类AnimalSwap,创建不同种类的动物对象,并进行方法的调用。
5. 实验代码Animal类:```javaclass Animal {String name;int age;char sex;public Animal(String name, int age, char sex) { = name;this.age = age;this.sex = sex;}public void eat() {System.out.println(name + " is eating.");}public void run() {System.out.println(name + " is running."); }}```Cat类:```javaclass Cat extends Animal {public Cat(String name, int age, char sex) {super(name, age, sex);}Overridepublic void eat() {System.out.println(name + " is eating fish."); }Overridepublic void run() {System.out.println(name + " is jumping."); }}```Dog类:```javaclass Dog extends Animal {public Dog(String name, int age, char sex) {super(name, age, sex);}Overridepublic void eat() {System.out.println(name + " is eating bone."); }Overridepublic void run() {System.out.println(name + " is barking.");}}```AnimalSwap类:```javapublic class AnimalSwap {public static void m本人n(String[] args) { Animal cat = new Cat("Tom", 3, 'M'); Animal dog = new Dog("Mike", 5, 'F');cat.eat();dog.eat();cat.run();dog.run();}}```6. 实验结果运行AnimalSwap类,输出结果:```Tom is eating fish.Mike is eating bone.Tom is jumping.Mike is barking.```7. 实验分析通过实验可知,通过调用不同对象的eat()和run()方法时,虽然调用的是同一个方法,但实际执行的是不同类中重写的方法,表现出多态的效果。
Java语言程序设计的课程设计项目——利用Java实现吞(贪)食蛇游戏项目完整实现实例(第3部分)

1.1利用Java实现吞(贪)食蛇游戏项目完整实现实例(第3部分)1.1.1扩展主窗口的GUI及交换功能7.添加GreedSnakeMainToolBar工具条类(1)添加GreedSnakeMainToolBar工具条类,包名称为com.px1987.greedsnake.mainframe.toolbar,继承javax.swing.JToolBar类(2)编程该GreedSnakeMainToolBar工具条类package com.px1987.greedsnake.mainframe.toolbar;import javax.swing.JLabel;import javax.swing.JToolBar;import com.px1987.greedsnake.util.GreedSnakeAppVO;import com.px1987.greedsnake.thread.*;public class GreedSnakeMainToolBar extends JToolBar { private static final long serialVersionUID = 1L;private JLabel gameResultScoreLabel=null;private JLabel snakeMovingStepCounterLabel=null;public JLabel getSnakeMovingStepCounterLabel() {return snakeMovingStepCounterLabel;}public JLabel getGameResultScoreLabel() {return gameResultScoreLabel;}public GreedSnakeMainToolBar() {}public GreedSnakeMainToolBar(String toolBarWindowTitle){ super(toolBarWindowTitle);this.setFloatable(false); //设置该工具条不可拖动createAllButtonsInMainToolBar();}public void createAllButtonsInMainToolBar(){for(int index=0; index <5; index++){this.addSeparator();}gameResultScoreLabel = new JLabel("本次游戏结果: 0 分");this.add(gameResultScoreLabel);for(int index=0; index <30; index++){this.addSeparator();}snakeMovingStepCounterLabel = new JLabel("步数:");this.add(snakeMovingStepCounterLabel);}public void updateThisGameScoreResult(SnakeMoveThread oneSnakeMoveThread){ String scoreResultTextInfo = "本次游戏结果: " +GreedSnakeAppVO.getGreedSnakeAppVO().getGameScoreResult()+" 分";gameResultScoreLabel.setText(scoreResultTextInfo);}}8、扩展GreedSnakeMainFrame类以包含工具条(1)添加如下的成员属性private GreedSnakeMainToolBar oneGreedSnakeMainToolBar=null;public GreedSnakeMainToolBar getOneGreedSnakeMainToolBar() {return oneGreedSnakeMainToolBar;}private SnakeMoveThread oneSnakeMoveThread = null;public SnakeMoveThread getOneSnakeMoveThread() {return oneSnakeMoveThread;}(2)添加下面的成员方法public void createMainToolBarPanel(JPanel contentPanel){oneGreedSnakeMainToolBar=new GreedSnakeMainToolBar("主工具条");contentPanel.add(oneGreedSnakeMainToolBar, BorderLayout.NORTH);}(3)GreedSnakeMainFrame类最终的代码如下package com.px1987.greedsnake.mainframe;import java.awt.BorderLayout;import java.awt.Image;import java.awt.MediaTracker;import java.awt.Toolkit;import javax.swing.JFrame;import javax.swing.JPanel;import com.px1987.greedsnake.mainframe.toolbar.GreedSnakeMainToolBar; import com.px1987.greedsnake.util.GreedSnakeAppVO;public class GreedSnakeMainFrame extends JFrame {private static final long serialVersionUID = 1L;private JPanel contentPanel=null;private GreedSnakeMainToolBar oneGreedSnakeMainToolBar=null;public GreedSnakeMainToolBar getOneGreedSnakeMainToolBar() { return oneGreedSnakeMainToolBar;}private SnakeMoveThread oneSnakeMoveThread = null;public SnakeMoveThread getOneSnakeMoveThread() {return oneSnakeMoveThread;}public GreedSnakeMainFrame(){super();loadGreenGrassBackgroundImage();initThisMainFrame();contentPanel=new JPanel();contentPanel.setLayout(new BorderLayout());this.setContentPane(contentPanel);this.setSize(AllGreedSnakeGameAppConstant.greedSnakePanelWidth+5,AllGreedSnakeGameAppConstant.greedSnakePanelHeight+5);createMainToolBarPanel(contentPanel);this.setLocationRelativeTo(null); //将窗口居中显示}public void initThisMainFrame(){this.setTitle("吞(贪)食蛇游戏");Image oneIconImage=Toolkit.getDefaultToolkit().getImage(getClass().getResource("/images/mainframeIconImage.jpg"));this.setIconImage(oneIconImage);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setAlwaysOnTop(true);}public void createMainToolBarPanel(JPanel contentPanel){oneGreedSnakeMainToolBar=new GreedSnakeMainToolBar("主工具条");contentPanel.add(oneGreedSnakeMainToolBar, BorderLayout.NORTH); }private Image greenGrassBackGroundImage=null;public Image getGreenSnakeGrassBackGroundImage() {return greenGrassBackGroundImage;}private void loadGreenGrassBackgroundImage(){ //由于背景图片比较大,需要进行跟踪greenGrassBackGroundImage=Toolkit.getDefaultToolkit().getImage(this.getClass().getResource("/images/greengrass.jpg"));MediaTracker oneMediaTracker=new MediaTracker(this);int trackedImageID=0;oneMediaTracker.addImage(greenGrassBackGroundImage,trackedImageID);try{oneMediaTracker.waitForID(trackedImageID);// oneMediaTracker.waitForAll();}catch(Exception e){e.printStackTrace();}}}9.再添加CenterGreedSnakePanel面板类(1)添加CenterGreedSnakePanel面板类,继承于javax.swing.JPanel,包名称为com.px1987.greedsnake.mainframe.panel(2)编程CenterGreedSnakePanel面板类package com.px1987.greedsnake.mainframe.panel; import java.awt.Graphics;import java.awt.Image;import java.awt.Toolkit;import java.util.Iterator;import java.util.LinkedList;import javax.swing.JPanel;import com.px1987.greedsnake.mainframe.GreedSnakeMainFrame;import com.px1987.greedsnake.util.AllGreedSnakeGameAppConstant;import com.px1987.greedsnake.util.GreedSnakeAppVO;import com.px1987.greedsnake.util.NodeEntity;public class CenterGreedSnakePanel extends JPanel {private static final long serialVersionUID = 1L;private Image littelMouseImage=null;private GreedSnakeMainFrame oneGreedSnakeMainFrame=null;public CenterGreedSnakePanel() {}public CenterGreedSnakePanel(GreedSnakeMainFrame oneGreedSnakeMainFrame) { this.oneGreedSnakeMainFrame=oneGreedSnakeMainFrame;littelMouseImage=Toolkit.getDefaultToolkit().getImage(this.getClass().getResource("/images/mouse.jpg"));initThisSnakePanel();}public void initThisSnakePanel(){}public void repaintSnakePanel(){Graphics currentGraphics = this.getGraphics();/** 画背景草地*/if(oneGreedSnakeMainFrame.getGreenSnakeGrassBackGroundImage()!=null){currentGraphics.drawImage(oneGreedSnakeMainFrame.getGreenSnakeGrassBackGroundImag e(),0,0,this);}/** 画出贪食蛇身*/currentGraphics.setColor(GreedSnakeAppVO.getGreedSnakeAppVO().getSnakeBodyColor());LinkedList<NodeEntity> snakeBodyNodeLinkedList =oneGreedSnakeMainFrame.getOneSnakeMoveThread().getOneSnakeBodyAllNodeVO().getSn akeBodyNodeLinkedList();Iterator<NodeEntity> someOneNodeInSnakeBody = snakeBodyNodeLinkedList.iterator();while(someOneNodeInSnakeBody.hasNext()){NodeEntity someOneNode = (NodeEntity)someOneNodeInSnakeBody.next();drawSomeOneNode(currentGraphics,someOneNode);}/** 首先画出老鼠*/NodeEntity foodNode = oneGreedSnakeMainFrame.getOneSnakeMoveThread().getOneSnakeBodyAllNodeVO().getSnake FoodTargetNode();intcurrentFoodNodePosX=foodNode.getNodeColNo()*AllGreedSnakeGameAppConstant.someOneN odeWidth;intcurrentFoodNodePosY=foodNode.getNodeRowNo()*AllGreedSnakeGameAppConstant.someOne NodeHeight;currentGraphics.drawImage(littelMouseImage,currentFoodNodePosX,currentFoodNodePosY,t his);/** 然后再画目标点*/currentGraphics.setColor(GreedSnakeAppVO.getGreedSnakeAppVO().getMouseTargetPointC olor());drawSomeOneNode(currentGraphics,foodNode);oneGreedSnakeMainFrame.getOneGreedSnakeMainToolBar().updateThisGameScoreResult(on eGreedSnakeMainFrame.getOneSnakeMoveThread());}private void drawSomeOneNode(Graphics oneGraphics, NodeEntity someOneNode){ intcurrentNodePosX=someOneNode.getNodeColNo()*AllGreedSnakeGameAppConstant.someOneN odeWidth;intcurrentNodePosY=someOneNode.getNodeRowNo()*AllGreedSnakeGameAppConstant.someOne NodeHeight;if(currentNodePosX>=AllGreedSnakeGameAppConstant.greedSnakePanelWidth){ currentNodePosX=AllGreedSnakeGameAppConstant.greedSnakePanelWidth-AllGreedSnakeG ameAppConstant.someOneNodeWidth;}if(currentNodePosX <=0 ){currentNodePosX=AllGreedSnakeGameAppConstant.someOneNodeWidth;}if(currentNodePosY>=AllGreedSnakeGameAppConstant.greedSnakePanelHeight){ currentNodePosY=AllGreedSnakeGameAppConstant.greedSnakePanelHeight-AllGreedSnake GameAppConstant.someOneNodeHeight;}if(currentNodePosY <= 0){currentNodePosY=AllGreedSnakeGameAppConstant.someOneNodeHeight;}oneGraphics.fillOval(currentNodePosX,currentNodePosY,AllGreedSnakeGameAppConstant.someOneNodeWidth-1,AllGreedSnakeGameAppConstant.someOneNodeHeight-1);}}10、添加GreedSnakeStatusPanel状态条面板(1)添加GreedSnakeStatusPanel状态条面板类,继承于javax.swing.JPanel类,包名称为com.px1987.greedsnake.mainframe.panel(2)编程GreedSnakeStatusPanel类package com.px1987.greedsnake.mainframe.panel;import java.awt.BorderLayout;import javax.swing.JLabel;import javax.swing.JPanel;public class GreedSnakeStatusPanel extends JPanel {private static final long serialVersionUID = 1L;public GreedSnakeStatusPanel() {this.createStatusBarLabelInThisPanel();}public void createStatusBarLabelInThisPanel(){this.setLayout(new BorderLayout());JLabel labelHelp = new JLabel("按PageUp或PageDown键可以加、减速;按回车键开始游戏;按空格键可以暂停", JLabel.CENTER);this.add(labelHelp, BorderLayout.CENTER);}}11、修改GreedSnakeMainFrame主窗口类(1)添加下面的属性private CenterGreedSnakePanel oneGreedSnakePanel;public CenterGreedSnakePanel getOneGreedSnakePanel() {return oneGreedSnakePanel;}(2)添加下面的方法public void createCenterGreedSnakePanel(JPanel contentPanel){oneGreedSnakePanel = new CenterGreedSnakePanel(this);oneGreedSnakePanel.setSize(AllGreedSnakeGameAppConstant.greedSnakePanelWidth, AllGreedSnakeGameAppConstant.greedSnakePanelHeight);contentPanel.add(oneGreedSnakePanel, BorderLayout.CENTER);}public void createBottomStatusPanel(JPanel contentPanel){GreedSnakeStatusPanel oneGreedSnakeStatusPanel = new GreedSnakeStatusPanel();contentPanel.add(oneGreedSnakeStatusPanel,BorderLayout.SOUTH);}(3)修改GreedSnakeMainFrame构造方法public GreedSnakeMainFrame() throws HeadlessException {super();loadGreenGrassBackgroundImage();initThisMainFrame();contentPanel=new JPanel();contentPanel.setLayout(new BorderLayout());this.setContentPane(contentPanel);this.setSize(AllGreedSnakeGameAppConstant.greedSnakePanelWidth+5,AllGreedSnakeGameAppConstant.greedSnakePanelHeight+5);createMainToolBarPanel(contentPanel);createCenterGreedSnakePanel(contentPanel);createBottomStatusPanel(contentPanel);this.setLocationRelativeTo(null); //将窗口居中显示}(4)GreedSnakeMainFrame窗口类的代码如下package com.px1987.greedsnake.mainframe;import java.awt.BorderLayout;import java.awt.HeadlessException;import java.awt.Image;import java.awt.MediaTracker;import java.awt.Toolkit;import javax.swing.JFrame;import javax.swing.JPanel;import com.px1987.greedsnake.mainframe.panel.CenterGreedSnakePanel; import com.px1987.greedsnake.mainframe.panel.GreedSnakeStatusPanel; import com.px1987.greedsnake.mainframe.toolbar.GreedSnakeMainToolBar; import com.px1987.greedsnake.util.GreedSnakeAppVO;public class GreedSnakeMainFrame extends JFrame {private static final long serialVersionUID = 1L;private JPanel contentPanel=null;private CenterGreedSnakePanel oneGreedSnakePanel;public CenterGreedSnakePanel getOneGreedSnakePanel() { return oneGreedSnakePanel;}private GreedSnakeMainToolBar oneGreedSnakeMainToolBar=null;public GreedSnakeMainToolBar getOneGreedSnakeMainToolBar() { return oneGreedSnakeMainToolBar;}public GreedSnakeMainFrame() throws HeadlessException {super();loadGreenGrassBackgroundImage();initThisMainFrame();contentPanel=new JPanel();contentPanel.setLayout(new BorderLayout());this.setContentPane(contentPanel);this.setSize(AllGreedSnakeGameAppConstant.greedSnakePanelWidth+5,AllGreedSnakeGameAppConstant.greedSnakePanelHeight+5);createMainToolBarPanel(contentPanel);createCenterGreedSnakePanel(contentPanel);createBottomStatusPanel(contentPanel);this.setLocationRelativeTo(null); //将窗口居中显示}public void initThisMainFrame(){this.setTitle("吞(贪)食蛇游戏");this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setAlwaysOnTop(true);}public void createMainToolBarPanel(JPanel contentPanel){oneGreedSnakeMainToolBar=new GreedSnakeMainToolBar("主工具条");contentPanel.add(oneGreedSnakeMainToolBar, BorderLayout.NORTH);}public void createCenterGreedSnakePanel(JPanel contentPanel){oneGreedSnakePanel = new CenterGreedSnakePanel(this);oneGreedSnakePanel.setSize(AllGreedSnakeGameAppConstant.greedSnakePanelWidth, AllGreedSnakeGameAppConstant.greedSnakePanelHeight);contentPanel.add(oneGreedSnakePanel, BorderLayout.CENTER);}public void createBottomStatusPanel(JPanel contentPanel){GreedSnakeStatusPanel oneGreedSnakeStatusPanel = new GreedSnakeStatusPanel();contentPanel.add(oneGreedSnakeStatusPanel,BorderLayout.SOUTH);}private Image greenGrassBackGroundImage=null;public Image getGreenSnakeGrassBackGroundImage() {return greenGrassBackGroundImage;}private void loadGreenGrassBackgroundImage(){ //由于背景图片比较大,需要进行跟踪greenGrassBackGroundImage=Toolkit.getDefaultToolkit().getImage(this.getClass().getResource("/images/greengrass.jpg"));MediaTracker oneMediaTracker=new MediaTracker(this);int trackedImageID=0;oneMediaTracker.addImage(greenGrassBackGroundImage,trackedImageID);try{oneMediaTracker.waitForID(trackedImageID);// oneMediaTracker.waitForAll();}catch(Exception e){e.printStackTrace();}}}。
基于Java的动物换位游戏软件设计课程设计报告

课程设计任务书沈阳理工大学课程设计报告目录1 课设软件主要功能 (1)2 类总体设计 (2)2.1 类组合关系图 (2)2.2 主类 (2)2.3 其他类 (2)3 类详细设计 (3)3.1 CHANGEANIMALWINDOW类 (3)3.2 ANIMAL类 (5)3.3 POINT类 (7)3.4 STONE类 (8)3.5 HANDLEMOUSE类 (9)3.6 AUTOMOVEANIMAL类 (10)4 关键类成员函数流程图及代码 (13)5 软件运行结果 (35)结论 (37)参考文献 (37)动物换位系统的设计1 课设软件主要功能程序分为不同的级别,左右各有动物,中间石头没有动物,将左右动物交换,不可后退。
用鼠标单击一个动物,如果该动物前方的石头上没有动物,该动物就跳跃到该石头上,如果该动物前方的石头上有动物,但隔位上的石头没有动物,该动物就越过自己前面的动物跃到石头上,其他情形时,该动物不能跳跃。
不能持续玩的可以点自动演示,将自动完成游戏,可以帮助游戏者更好的了解系统的主体功能。
设计GUI界面的动物换位游戏,游戏的结果是让左右两组动物交换位置。
具体内容如下:1) 程序分为4个级别,用户可以通过界面上提供的菜单选择“初级”、“中级”、“高级”、“自定义”这4个级别。
对于“初级”级别,在水平排列的7块石头上的左右各有3个类型相同的动物,中间的石头上没有动物;对于“中级”级别,在水平排列的9块石头上的左右各有4个类型相同的动物,中间的石头上没有动物;对于“高级”级别,在水平排列的11块石头上的左右各有5个类型相同的动物,中间的石头上没有动物;对于“自定义”级别,用户可以输入自己想设置的一个动物数量(输入的数必须是偶数),在水平排列的N块石头上的左右各有(N-1)2个类型相同的动物,中间的石头上没有动物。
2)用鼠标单击一个的动物,如果该动物前方的石头上没有动物,该动物就跳跃到该石头上,如果该动物前方的石头上有动物,但隔位上的石头没有动物,该动物就越过自己前面的动物跃到石头上,其他情形时,该动物不能跳跃(跳跃时不能超过2块石头)。
用Java编写动物迷宫游戏

用Java编写动物迷宫游戏分第一部分:游戏简介邮递员小白兔需要走迷宫送四封信选一幅迷宫图在这幅迷宫上有五个小房子,小兔子要把信送到五个小房子中另外还需要一个控制小兔子方向的遥控器,小兔子可以向东西南北四个方向移动算法:1、首先在迷宫上画出方格,在游戏中用变量fangge表示用方向箭头控制小白兔从一个方格移动到另一个方格上,一直到送完信为止其中每个方格可在游戏中画一个矩形框,可显示小白兔的位置,移动位置后先擦去原来画的矩形,然后画一个新的矩形,在每个方格上可显示出可以移动的方向,点示图中的方向键,可以移动到下一个方格的位置,现在我们要在每个方格里放一种动物,而且我们还要把这个迷宫的图片去掉,注意:我们用Java编写游戏,不是用VB编写游戏,我们这个游戏中没有任何图片,这是一个文字游戏。
方格编号动物名称可以移动的方向1 小熊猫1号向东走可到2号方格2 大象2号向东=7;向西=1;向南=33 鳄鱼东南西北4 大熊猫西南北5 梅花鹿南第一个送信的房子6 黑熊西北7 老虎东西8 狮子东9 花豹东西南10 骆驼东西南看到这么多的动物,很容易让人联想到动物园里的动物吧!游戏要求走完所有的方格,看完所有的动物就算打完这个游戏了!第二部分:编写动物迷宫游戏游戏变量(一共有三个全局变量):fangge设为整数值,代表以上表格中的方格编号还有四个枚举量,为东西南北,在代码中用NORTH SOUTH EAST WEST 表示Direction设为字符串,代表东西南北四个方向Exits(3) 代表一个数组,初始化为0,如果移动到一个新的方格,则Exits(Direction)的值为新的方格编号,如果值为零,则表示不可以朝这个方向移动这个游戏的名称为Migong,出现在代码public class中。
第三部分:游戏代码import java.util.Scanner;public class Migong {public static void main(String[] args) {Scanner in=new Scanner(System.in);System.out.println("-------动物迷宫游戏--------");System.out.println("请按方向行走 (1.东 2.西 3.南 4.北)");int person=in.nextInt();Int fangge=1int[] exits;exits=new int[4];exits[0]=0;exits[1]=0;exits[2]=0;exits[3]=0;int i;i=person-1;boolean a=exits[i]==0;boolean b=exits[i]!=0;if (a){System.out.println("你不能往这个方向走");}else{fangge=exits[i];}switch(fangge){case 1:exits[0]=2;exits[1]=0;exits[2]=0;exits[3]=0;System.out.println("你看到的是小熊猫,可以向东走");break;case 2:exits[0]=7;exits[1]=1;exits[2]=3;exits[3]=0;System.out.println("你看到的是大象,可以向东、向南、向西走"); break;case 3:exits[0]=4;exits[1]=8;exits[2]=2;exits[3]=10;System.out.println("你看到的是鳄鱼,可以向东、向西、向南、向北走");break;case 4:exits[0]=0;exits[1]=3;exits[2]=6;exits[3]=5;System.out.println("你看到的是大熊猫,可以向西、向南、向北走");break;case 5:exits[0]=0;exits[1]=0;exits[2]=4;exits[3]=0;System.out.println("你看到的是梅花鹿,可以向南走");break;case 6:exits[0]=0;exits[1]=9;exits[2]=0;exits[3]=4;System.out.println("你看到的是黑熊,可以向西、向北走");break;}}}注:本游戏代码只编写了前6个方格,为了简单一些,更容易看懂。
JAVA游戏软件修改大全

JAVA游戏软件修改大全自己修改一般JAVA的文件,其实很简单,并不需要多少的专业知识就可以做到了。
最重的是你有心机和耐心从头到尾把本文看完,并动手自己实践就可以了。
一。
基础准备。
1。
JAVA游戏当然是需要在JAVA模拟器上运行的。
到现在为止,SMARTPHONE上能用的模拟器无非只有DM2和JMM3这两个模拟器。
对这两个模拟器,我们可以说是又爱又恨,各有缺失,又各有优点。
大家想必都很清楚,我也不再多说。
只是我不象大多数人那样,只用其中一个,我是两者兼顾。
因为各有优点,两个一起用当然能弥补对方的不足。
而且两个装在机器里并不怎么占地方,除非还有人在用十六M的卡或者是还没有买卡。
然后都在开始里建立快捷方式就可以用得很方便了。
我是这样用的[下载的游戏两个模拟器都装,然后试运行,那个运行的完美就留住,再把另一个模拟器里的删掉。
]2。
现在还没有专门为SP手机量身定做的JAVA游戏,而网上所有的JAVA游戏都不是只为同一部机器所定制的,各款手机屏幕的尺寸都不尽相同,所以当你搬过来自己的机器上可能不能全屏运行,因为是以128x128,128X160等的分辨率为标准设计的,这样可能因为游戏没有以全屏方式运行,会有画面一部分被按键提示栏之类的物体遮挡,玩起来当然不爽。
所以JAVA全屏补丁自然就要先有准备了。
3。
我们知道Nokia的游戏占了所有游戏的大部分,而且许多好玩的游戏都只开发了Nokia 的平台,所以目前很多游戏都是只有Nokia的版本,而要玩Nokia的游戏并不容易,Nokia 的游戏都使用了Nokia专用的API,因此不能直接放在我的手机上运行,以前我们只能望着流口水,但现在不同了,可喜可贺,我们有了Nokia API的模拟包!就是“com文件夹”,但是这个模拟包还不够完善,加入后JMM3运行时很容易造成死机现象。
所以我们还是要小心点,或者等更完善的COM包。
4。
还有痛苦的事情是,游戏明明可以运行,没有声音不止,连按键控制都失效。
神经猫游戏使用Java开发Android应用

神经猫游戏使用Java开发Android应用神经猫(Neuro Cat)是一款受欢迎的益智游戏,它将挑战你的注意力和反应能力。
本游戏采用Java语言开发,适用于Android应用程序平台。
本文将介绍神经猫游戏以及使用Java开发Android应用的相关技术。
一、神经猫游戏简介神经猫是一款简单而有趣的游戏,玩家需要通过触摸屏幕的方式帮助猫咪躲避障碍物。
游戏的目标是尽可能多地躲避障碍物,使猫咪走得更远。
随着游戏的进行,障碍物会越来越多,速度也会逐渐加快,考验玩家的反应速度和手眼协调能力。
二、Java开发Android应用Java是一种强大且常用的编程语言,而Android应用开发通常使用Java语言作为开发工具。
以下是使用Java开发Android应用的基本步骤:1. 环境搭建:首先,开发者需要下载并安装Java开发工具包(JDK)和Android开发工具包(ADK),以便在计算机上编写和测试应用程序。
2. 创建项目:使用Android Studio(一种集成开发环境)创建一个新项目。
在项目创建过程中,用户可以选择应用程序的名称、图标等。
3. 设计界面:Android应用程序的界面通常使用XML文件进行设计。
开发者可以使用Android Studio的可视化编辑器来创建和布局界面。
4. 编写代码:使用Java语言编写应用程序的逻辑部分,包括处理用户输入、显示界面、处理游戏逻辑等。
5. 测试应用程序:使用Android模拟器或物理设备测试应用程序,确保其正常运行和响应。
6. 发布应用程序:完成开发并通过一系列的测试后,开发者可以将应用程序上传到应用市场(如Google Play)或其他渠道进行发布。
三、神经猫游戏开发过程神经猫游戏是使用Java语言开发的,下面是其主要开发过程:1. 游戏逻辑设计:首先,开发者需要设计游戏的逻辑,包括猫咪的移动方式、障碍物的生成规则等。
这些规则将在后续的代码编写中得到实现。
java贪吃蛇游戏说明

1 功能说明此程序是基于JFrame,结合JPanel和Component的监听器来实现的贪吃蛇小游戏。
主要实现功能如下:1)利用方向键来改变蛇的运行方向。
2)在随机的地方产生食物,吃到食物就变成新的蛇体,碰到壁或自身则游戏结束,否则正常运行。
3)空格键暂停或继续游戏。
4)通过菜单选项可选择三种刷新速度。
2 类说明1.类之间的关系如图1所示。
SnakeGameSnakeFrameSnake Node SnakePanel StatusRunnable SnakeRunnable图1类之间的关系2. java 源文件及其功能如表所示。
3 主要算法(附代码)1. 吃食物的判断——isEaten()序号文件名 主要功能 1SnakeGame 该文件为程序入口,含有main 方法。
2 SnakeFrame 实现菜单控制运行等总体要求,实现方向键控制蛇的方向,空格键控制游戏暂停或继续,还有分数等。
3 Snake 该文件实现蛇的结构和具体运动,如判断食物是否和怎样被吃掉及判断后的动作。
4 Node 该文件实现组成蛇身的单位-食物。
5 SnakePanel 该文件实现画板功能,用两色间隔画蛇身。
6 StatusRunnable 该文件为记录状态的线程。
7SnakeRunnable该文件为蛇运动以及记录分数的线程。
private boolean isEaten () {Node head = body .get (0);//取得蛇头部的坐标 if (derection == Snake.RIGHT && (head .x + Node.W ) == food .x && head .y == food .y )return true ; if (derection == Snake.LEFT && (head .x - Node.W ) == food .x && head .y == food .y ) return true ;if (derection == Snake.UP && head .x == food .x&& (head .y - Node.H ) == food .y ) return true ;if (derection == Snake.DOWN && head .x == food .x&& (head .y + Node.H ) == food .y )return true ;else return false ;}2.碰撞判断——isCollsion()private boolean isCollsion() {Node node = body.get(0);// 获取下标为0的元素,即蛇头// 碰壁。
基于Java的动物_换位游戏软件设_计

毕业论文声明本人郑重声明:1.此毕业论文是本人在指导教师指导下独立进行研究取得的成果。
除了特别加以标注地方外,本文不包含他人或其它机构已经发表或撰写过的研究成果。
对本文研究做出重要贡献的个人与集体均已在文中作了明确标明。
本人完全意识到本声明的法律结果由本人承担。
2.本人完全了解学校、学院有关保留、使用学位论文的规定,同意学校与学院保留并向国家有关部门或机构送交此论文的复印件和电子版,允许此文被查阅和借阅。
本人授权大学学院可以将此文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本文。
3.若在大学学院毕业论文审查小组复审中,发现本文有抄袭,一切后果均由本人承担,与毕业论文指导老师无关。
4.本人所呈交的毕业论文,是在指导老师的指导下独立进行研究所取得的成果。
论文中凡引用他人已经发布或未发表的成果、数据、观点等,均已明确注明出处。
论文中已经注明引用的内容外,不包含任何其他个人或集体已经发表或撰写过的研究成果。
对本文的研究成果做出重要贡献的个人和集体,均已在论文中已明确的方式标明。
学位论文作者(签名):年月关于毕业论文使用授权的声明本人在指导老师的指导下所完成的论文及相关的资料(包括图纸、实验记录、原始数据、实物照片、图片、录音带、设计手稿等),知识产权归属华北电力大学。
本人完全了解大学有关保存,使用毕业论文的规定。
同意学校保存或向国家有关部门或机构送交论文的纸质版或电子版,允许论文被查阅或借阅。
本人授权大学可以将本毕业论文的全部或部分内容编入有关数据库进行检索,可以采用任何复制手段保存或编汇本毕业论文。
如果发表相关成果,一定征得指导教师同意,且第一署名单位为大学。
本人毕业后使用毕业论文或与该论文直接相关的学术论文或成果时,第一署名单位仍然为大学。
本人完全了解大学关于收集、保存、使用学位论文的规定,同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、扫描、数字化或其它手段保存或汇编本学位论文;学校有权提供目录检索以及提供本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有关部门或者机构送交论文的复印件和电子版,允许论文被查阅和借阅。
java偏牧极限生存同款整合包分享

java偏牧极限生存同款整合包分享Java偏牧极限生存(Java Rangers Extreme Survival)是一个著名的Minecraft模组整合包,它通过添加大量的模组来扩展和改进游戏的体验。
这个整合包旨在带给玩家更加困难和挑战的生存环境,同时也增加了更多的内容和新的游戏机制。
在Java偏牧极限生存中,许多模组被用来增强游戏的难度。
例如,在生物方面,模组“Hunger Overhaul”改变了玩家的饥饿和营养需求,使其更加重要和现实。
模组“Tough As Nails”引入了环境温度和水分等因素,并要求玩家注意和适应。
这些改变使得玩家在寻求食物和水源时面临更大的挑战,增加了生存的难度。
此外,Java偏牧极限生存增加了一些技术和农业方面的模组,以丰富游戏内容和扩展玩家的选择。
比如,“IndustrialCraft 2”和“BuildCraft”这两个模组增加了各种新的机器和设备,使玩家能够更有效地收集和利用资源。
模组“Pam's HarvestCraft”则添加了大量的新鲜食材和农作物,让玩家能够以更多样化的方式满足营养需求。
除了这些改进游戏体验的模组,Java偏牧极限生存还包括了一些主题和探险方面的内容。
例如,模组“Twilight Forest”添加了一个全新的维度,玩家可以在其中进行冒险和探索。
模组“Roguelike Dungeons”则生成了随机的地牢,充满了敌人和宝藏,给玩家带来更多的挑战和发现。
对于喜欢挑战的玩家来说,Java偏牧极限生存提供了一个完美的选择。
其困难的生存环境,以及丰富的内容和新的游戏机制,使得游戏更加耐玩和有趣。
与此同时,整合包的模组选择也很合理,让玩家可以根据自己的喜好和风格来进行自定义和调整。
总的来说,Java偏牧极限生存是一个优秀的整合包,它通过模组的增加和改变,给玩家带来了一个更加困难和有挑战性的生存环境。
同时,它丰富了游戏的内容和体验,使得玩家可以体验到更多的新鲜和有趣的东西。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录1. 软件主要功能 (2)2. 类总体设计 (2)2.1 类组合关系图 (2)2.2 系统流程图 (3)2.3 主类 (4)2.4 其他类 (4)2.4.1 Animal.java (4)2.4.2 Point.java (4)2.4.3 Stone.java (4)2.4.4 HandleMouse.java (4)2.4.5 AutoMoveAnimal.java (4)2.4.6 Customdlg.java (4)2.4.7 People.java (4)2.4.8 Record.java (4)2.4.9 ShowRecordDialog.java (4)3. 类详细设计 (4)3.1 主类 (4)3.2 其他类 (6)4. 关键成员函数代码 (7)5. 软件运行结果 (15)结论 (16)参考文献 (16)1. 软件主要功能采用java技术设计动物换位游戏软件,设计要求如下:(1)程序分为3个级别,用户可以通过界面上提供的菜单来选择“初级”、“中级”和“高级”这三个级别。
对于“初级”级别,在水平排列的7块石头上的左右各有3个类型相同的动物,中间的石头上没有动物;对于“中级”级别,在水平排列的9块石头上的左右各有4个类型相同的动物,中间的石头上没有动物;对于“高级”级别,在水平排列的11块石头上的左右各有5个类型相同的动物,中间的石头上没有动物。
(2)用鼠标单击一个动物,如果该动物的前方的石头上没有动物,该动物就跳跃到该石头上,如果该动物前方的石头上有其他的动物,但隔位上的石头没有动物,该动物就越过自己前面的动物跳跃到石头上,其他情形时,该动物不跳跃(跳跃时不能超过2块石头)。
(3)左面的动物只能向右方跳跃,右面的动物只能向左方跳跃。
(4)用户可以通过单击界面上提供的按钮,让程序自动完成动物换位。
(5)可以随时单击界面上提供的按钮,重新开始当前的级别。
(6)用户通过菜单选项,可以选择左、右动物的图像。
2. 类总体设计2.1 类组合关系图在设计动物换位时需要编写10个Java源文件:ChangeAnimalWindow.java、Animal.java、Point.java、Stone.java、HandleMouse.java、AutoMoveAnimal.java、Customdlg.java、People.java、Record.java和ShowRecordDialog.java。
动物换位除了需要编写上述10个Java源文件所给出的类外,还需要Java系统提供的一些重要的类,如:JmenuItem、File和Jbutton类等。
动物换位所用到的一些重要的类以及之间组合关系如图2.1所示。
图2.1 类之间的组合关系2.2 系统流程图图2.2 系统流程图2.3 主类ChangeAnimalWindow类负责创建动物换位的主窗口,该类含有main方法,程序从该类开始执行。
2.4 其他类2.4.1 Animal.javaAnimal类是JPanel的一个子类,创建的对象是ChangeAnimalWindow类的重要成员之一,用来表示“动物”。
2.4.2 Point.javaPoint类负责创建确定位置的对象,使用Point对象,可以确定Animal以及Stone对象在窗体中的位置。
2.4.3 Stone.javaStone类是JButton的一个子类,创建的对象表示“石头”。
2.4.4 HandleMouse.javaHandleMouse类所创建的对象负责处理鼠标事件。
2.4.5 AutoMoveAnimal.javaAutoMoveAnimal类所创建的对象使用算法完成动物的自动换位。
2.4.6 Customdlg.javaCustomdlg类所创建的对象用来设置“自定义”级别的动物数量。
2.4.7 People.javaPeople对象封装用户的名字和成绩,以便ShowRecordDialog对象可以排序。
2.4.8 Record.javaRecord类是javax.swing包中JDialog对话框的子类,当用户成功完成相应级别的游戏时,Record创建的对象负责保存用户的名字和成绩到相应的级别文件中。
2.4.9 ShowRecordDialog.javaShowRecordDialog类是javax.swing包中JDialog对话框的子类,当用户单击查看相应的级别排行榜时,ShowRecordDialog创建的对象负责显示用户的成绩。
3. 类详细设计3.1 主类图3.1 ChangeAnimalWindow类的UML图(1)成员变量●amoutOfAnimal是int型数据,默认值是6。
amoutOfAnimal的值用来确定ChangeAnimalWindow窗体中“动物”的数目,即Animal对象的数目。
●distance是int型数据,默认值是80。
distance的值用来确定Point对象之间的距离,进而可以确定Animal之间,Stone之间的距离以及Animal和Stone对象外观的大小。
●animal是Animal型数组,其长度为amoutOfAnimal。
●point是Point型数组,其长度为amoutOfAnimal+1。
●stone是Stone型数组,其长度为amoutOfAnimal+1。
●handleMouse是HandleMouse类创建的鼠标事件监视器,用来监视animal数组中Animal对象触发的鼠标事件。
●autoMoveAnimal是AutoMoveAnimal类创建的对话框。
通过该对话框可以实现程序自动将左右动物交换位置。
●bar是JMenuBar创建的菜单条,用来添加菜单。
bar被放置在窗口的顶部。
●menuGrade是JMenu创建的菜单,其名字为“选择级别”。
menuImage也是JMenu创建的菜单,其名字为“选择动物图像(JPG,GIF)”。
menuHelp也是JMenu创建的菜单,其名字为“帮助”。
menuHero也是JMenu创建的菜单,其名字为“英雄榜”。
menuGrade、menuImage、menuHero和menuHelp被添加到菜单条bar中。
●oneGradeItem、twoGradeItem、threeGradeItem和custom是JMenuItem创建的菜单项,它们的名字依次为“初级”、“中级”、“高级”和“自定义”,这四个菜单项被添加到菜单项menuGrade中。
leftImage、rightImage和defaultImage也是JMenuItem创建的菜单项,其名字依次为“左面动物的图像”、“右面动物的图像”和“左右面动物的默认图像”,这三个菜单项被添加到菜单项menuImage中。
oneGradeResult、twoGradeResult、threeGradeResult、customGradeResult和limitTime也是JMenuItem创建的菜单项,其名字依次为“初级英雄榜”、“中级英雄榜”、“高级英雄榜”、“自定义英雄榜”、“我超时了吗”,这五个菜单项被添加到菜单项menuHero中。
helpcontent和aboutUs是JMenuItem 创建的菜单项,它们的名字依次为“游戏规则”、和“关于我们”,这两个菜单项被添加到菜单项menuHelp中。
oneGradeItem、twoGradeItem、threeGradeItem和custom以及leftImage、rightImage和defaultImage等菜单项都将当前窗口注册为自己的ActionEvent 事件监视器。
renew、quit和autoButton是JButton创建的按钮对象,名字依次为“重新开始”、“撤销”和“自动演示”。
renew、quit和autoButton都将当前窗口注册为自己的ActionEvent事件监视器。
(2)方法●ChangeAnimalWindow()是构造方法,负责完成窗口的初始化。
●init()方法负责完成Animal、Stone和Point对象的创建。
●setAmoutOfAnimal(int)方法负责设置动物的个数,即amountOfAnimal的值。
●removeAnimalAndStone()方法负责从窗体中移掉动物和石头,即移掉Animal对象和Stone对象。
●needDoing()方法负责执行一些经常需要重复执行的代码。
●actionPerformed(ActionEvent)方法是ChangeAnimalWindow类实现的ActionListener接口中的方法。
ChangeAnimalWindow创建的窗口是oneGradeItem、twoGradeItem、threeGradeItem、custom、leftImage、rightImage、defaultImage等菜单项和renew、quit、autoButton按钮的ActionEvent事件监视器。
当用户选中某个菜单项或单击按钮时,窗口将执行actionPerformed(ActionEvent)方法进行相应的操作。
如果用户选中oneGradeItem、twoGradeItem、threeGradeItem和custom四个菜单项的某一项时,actionPerformed(ActionEvent)方法所执行的操作就是改变amountOfAnimal的值,并执行needDoing()方法,完成必要的初始化。
如果用户选中leftImage和rightImage菜单项的某一个时,actionPerformed(ActionEvent)方法所执行的操作就是改变leftImageFile和rightImageFile的引用。
当用户单击renew按钮时,actionPerformed(ActionEvent)方法所进行的操作是保持当前的amountOfAnimal的值,并执行needDoing()方法,完成必要的初始化,当用户单击quit按钮时,actionPerformed(ActionEvent)方法所进行的操作是撤销当前“动物”的前一次跳跃。
当用户单击autoButton按钮时,actionPerformed(ActionEvent)方法所进行的操作是弹出autoMoveAnimal对话框,用户可以通过该对话框让程序显示动物换位过程。
main(String)方法是程序运行的入口方法。
3.2 其他类图3.2 Animal类的UML图图3.3 Point类的UML图图3.4 Stone类的UML图图3.5 HandleMouse类的UML图图3.6 AutoMoveAnimal类的UML图4. 关键成员函数代码ChangeAnimalWindow.java(主类)import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.util.ArrayList;import java.io.*;import javax.swing.filechooser.*;public class ChangeAnimalWindow extends JFrame implements ActionListener{int amountOfAnimal=6;int distance=80;Animal [] animal;Point [] point;Stone [] stone;HandleMouse handleMouse;AutoMoveAnimal autoMoveAnimal;File leftImageFile,rightImageFile;File fileOneGrade,fileTwoGrade,fileThreeGrade,filecustomGrade;JButton renew,quit,autoButton=null;JMenuBar bar;JMenu menuGrade,menuImage,menuHelp,menuHero;JMenuItem oneGradeResult,twoGradeResult,threeGradeResult,customGradeResult; JMenuItem oneGradeItem,twoGradeItem,threeGradeItem,limitTime;JMenuItem custom;JMenuItem helpcontent,aboutUs;JMenuItem leftIamge,rightIamge,defaultImage;JPanel pCenter;ShowRecordDialog showDiolag=null;ChangeAnimalWindow(){fileOneGrade=new File("初级英雄排行榜.txt");fileTwoGrade=new File("中级英雄排行榜.txt");fileThreeGrade=new File("高级英雄排行榜.txt");filecustomGrade=new File("自定义英雄排行榜.txt"); pCenter=new JPanel();pCenter.setBackground(Color.pink);pCenter.setLayout(null);handleMouse=new HandleMouse();autoMoveAnimal=new AutoMoveAnimal();leftImageFile=new File("dog.jpg");rightImageFile=new File("cat.jpg");init();bar=new JMenuBar();menuGrade=new JMenu("选择级别");menuImage=new JMenu("选择动物图像(JPG,GIF)");menuHero=new JMenu("英雄榜");menuHelp=new JMenu("帮助");oneGradeItem=new JMenuItem("初级");twoGradeItem=new JMenuItem("中级");threeGradeItem=new JMenuItem("高级");custom=new JMenuItem("自定义");leftIamge=new JMenuItem("左面动物的图像");rightIamge=new JMenuItem("右面动物的图像");defaultImage=new JMenuItem("左右面动物的默认图像"); oneGradeResult=new JMenuItem("初级英雄榜");twoGradeResult=new JMenuItem("中级英雄榜");threeGradeResult=new JMenuItem("高级英雄榜");customGradeResult=new JMenuItem("自定义英雄榜");limitTime=new JMenuItem("我超时了吗");helpcontent=new JMenuItem("游戏规则");aboutUs=new JMenuItem("关于我们");menuGrade.add(oneGradeItem);menuGrade.add(twoGradeItem);menuGrade.add(threeGradeItem);menuGrade.add(custom);menuImage.add(leftIamge);menuImage.add(rightIamge);menuImage.add(defaultImage);menuHero.add(oneGradeResult);menuHero.add(twoGradeResult);menuHero.add(threeGradeResult);menuHero.add(customGradeResult);menuHero.add(limitTime);menuHelp.add(helpcontent);menuHelp.add(aboutUs);bar.add(menuGrade);bar.add(menuImage);bar.add(menuHero);bar.add(menuHelp);setJMenuBar(bar);oneGradeItem.addActionListener(this);twoGradeItem.addActionListener(this);threeGradeItem.addActionListener(this);custom.addActionListener(this);leftIamge.addActionListener(this);rightIamge.addActionListener(this);defaultImage.addActionListener(this);oneGradeResult.addActionListener(this);twoGradeResult.addActionListener(this);threeGradeResult.addActionListener(this);customGradeResult.addActionListener(this);limitTime.addActionListener(this);helpcontent.addActionListener(this);aboutUs.addActionListener(this);renew=new JButton("重新开始");renew.addActionListener(this);autoButton=new JButton("自动演示");autoButton.addActionListener(this);quit=new JButton("撤消");quit.addActionListener(this);JPanel north=new JPanel();north.add(renew);north.add(quit);north.add(autoButton);String mess="互换左右动物位置";JLabel hintMess=new JLabel(mess,JLabel.CENTER);north.add(hintMess);add(north,BorderLayout.NORTH);add(pCenter,BorderLayout.CENTER);JPanel south=new JPanel();south.add(handleMouse);add(south,BorderLayout.SOUTH);setVisible(true);setBounds(60,60,710,300);validate();setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);if(!fileOneGrade.exists()){try { fileOneGrade.createNewFile();}catch(IOException exp){}}if(!fileTwoGrade.exists()){try { fileTwoGrade.createNewFile();}catch(IOException exp){}}if(!fileThreeGrade.exists()){ try { fileThreeGrade.createNewFile();}catch(IOException exp){}}if(!filecustomGrade.exists()){ try { filecustomGrade.createNewFile();}catch(IOException exp){}}handleMouse.gradeFile=fileOneGrade;showDiolag=new ShowRecordDialog();}public void init(){animal=new Animal[amountOfAnimal];point=new Point[amountOfAnimal+1];stone=new Stone[amountOfAnimal+1];int space=distance;for(int i=0;i<point.length;i++){point[i]=new Point(space,100);space=space+distance;}for(int i=0;i<animal.length;i++){animal[i]=new Animal();animal[i].addMouseListener(handleMouse);if(i<animal.length/2){animal[i].setIsLeft(true);}else //if(i>animal.length/2){animal[i].setIsLeft(false);}//else if(i==animal.length/2+1)//{//if(animal[i].equals(animal[i]))//animal[i].setIsLeft(true);//else// animal[i].setIsLeft(false);//}}for(int i=0;i<stone.length;i++){stone[i]=new Stone();pCenter.add(stone[i]);stone[i].setSize(distance*8/9,18);int w=stone[i].getBounds().width;int h=stone[i].getBounds().height;stone[i].setLocation(point[i].getX()-w/2,point[i].getY());point[i].setThisStone(stone[i]);}for(int i=0;i<animal.length;i++){animal[i].setSize(distance*6/7,distance*3/4);int w=animal[i].getBounds().width;int h=animal[i].getBounds().height;pCenter.add(animal[i]);if(i<animal.length/2){animal[i].setIsLeft(true);animal[i].setLeftImage(leftImageFile);animal[i].repaint();animal[i].setLocation(point[i].getX()-w/2,point[i].getY()-h); animal[i].setAtPoint(point[i]);point[i].setThisAnimal(animal[i]);point[i].setIsHaveAnimal(true);}else{animal[i].setIsLeft(false);animal[i].setRightImage(rightImageFile);animal[i].repaint();animal[i].setLocation(point[i+1].getX()-w/2,point[i+1].getY()-h);animal[i].setAtPoint(point[i+1]);point[i+1].setThisAnimal(animal[i]);point[i+1].setIsHaveAnimal(true);}}handleMouse.setPoint(point);handleMouse.setCountTime(true);autoMoveAnimal.setPoint(point);autoMoveAnimal.setStep();}public void setAmountOfAnimal(int m){if(m>=2&&m%2==0)amountOfAnimal=m;}public void removeAnimalAndStone(){for(int i=0;i<point.length;i++){if(point[i].getThisAnimal()!=null)pCenter.remove(point[i].getThisAnimal());}for(int i=0;i<stone.length;i++){if(point[i].getThisStone()!=null)pCenter.remove(point[i].getThisStone());}pCenter.validate();pCenter.repaint();}public void needDoing(){init();handleMouse.initStep();handleMouse.initSpendTime();handleMouse.setCountTime(true);autoMoveAnimal.setPoint(point);}public void actionPerformed(ActionEvent e){if(e.getSource()==oneGradeItem){handleMouse.gradeFile=fileOneGrade;//good.getname("初级英雄排行榜.txt");distance=80;removeAnimalAndStone();setAmountOfAnimal(6);needDoing();}else if(e.getSource()==twoGradeItem){handleMouse.gradeFile=fileTwoGrade;//good.getname("中级英雄排行榜.txt");distance=70;removeAnimalAndStone();setAmountOfAnimal(8);needDoing();}else if(e.getSource()==threeGradeItem){handleMouse.gradeFile=fileThreeGrade;//good.getname("高级英雄排行榜.txt");distance=60;removeAnimalAndStone();setAmountOfAnimal(10);needDoing();}else if(e.getSource()==custom){handleMouse.gradeFile=filecustomGrade;//good.getname("自定义英雄排行榜.txt");Customdlg dialog=new Customdlg(this,"自定义",true);dialog.setVisible(true);amountOfAnimal=dialog.getAmountOfAnimal();distance=560/amountOfAnimal;removeAnimalAndStone();setAmountOfAnimal(amountOfAnimal);needDoing();}else if(e.getSource()==helpcontent){JOptionPane pane=new JOptionPane(String.format("第%1$3d条规则%2$20s\n第%3$3d条规则%4$20s\n第%5$3d条规则%6$20s",1,"左右边的动物分别移动到另一边",2,"左只能向右方跳,右只能向左跳",3,"跳跃最多不能越过2块石头"));JButton btnOk;btnOk=new JButton("确定");pane.setOptions(new JButton[]{btnOk});final JDialog dlghelpList=pane.createDialog(null,"游戏规则");btnOk.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){dlghelpList.dispose();}});dlghelpList.setVisible(true);}else if(e.getSource()==aboutUs){JOptionPane.showMessageDialog(this, "姓名:翟向晨"+'\n'+"学号:1203030322"+'\n'+"班级:12级电信三班 ");}else if(e.getSource()==renew){removeAnimalAndStone();needDoing();}else if(e.getSource()==autoButton){removeAnimalAndStone();needDoing();handleMouse.setCountTime(false);autoMoveAnimal.setStep();int x=this.getBounds().x+this.getBounds().width/2;int y=this.getBounds().y+this.getBounds().height;autoMoveAnimal.setLocation(x,y);autoMoveAnimal.setSize(this.getBounds().width/2,120);autoMoveAnimal.setVisible(true);}else if(e.getSource()==quit){ArrayList<Integer>step=handleMouse.getStep();int length=step.size();int start=-1,end=-1;if(length>=2){end=step.get(length-1);start=step.get(length-2);step.remove(length-1);step.remove(length-2);Animal ani=point[end].getThisAnimal();int w=ani.getBounds().width;int h=ani.getBounds().height;ani.setLocation(point[start].getX()-w/2,point[start].getY()-h); ani.setAtPoint(point[start]);point[start].setThisAnimal(ani);point[start].setIsHaveAnimal(true);point[end].setIsHaveAnimal(false);}}else if(e.getSource()==leftIamge){JFileChooser chooser=new JFileChooser();FileNameExtensionFilter filter = new FileNameExtensionFilter( "JPG & GIF Images", "jpg", "gif");chooser.setFileFilter(filter);int state=chooser.showOpenDialog(null);File file=chooser.getSelectedFile();if(file!=null&&state==JFileChooser.APPROVE_OPTION){leftImageFile=file;for(int i=0;i<animal.length;i++){if(animal[i].getIsLeft()==true){animal[i].setLeftImage(leftImageFile);animal[i].repaint();}}}}else if(e.getSource()==rightIamge){JFileChooser chooser=new JFileChooser();FileNameExtensionFilter filter = new FileNameExtensionFilter( "JPG & GIF Images", "jpg", "gif");chooser.setFileFilter(filter);int state=chooser.showOpenDialog(null);File file=chooser.getSelectedFile();if(file!=null&&state==JFileChooser.APPROVE_OPTION){rightImageFile=file;for(int i=0;i<animal.length;i++){if(animal[i].getIsLeft()==false){animal[i].setRightImage(rightImageFile);animal[i].repaint();}}}}else if(e.getSource()==defaultImage){leftImageFile=new File("dog.jpg");rightImageFile=new File("cat.jpg");for(int i=0;i<animal.length;i++){if(animal[i].getIsLeft()==true)animal[i].setLeftImage(leftImageFile);elseanimal[i].setRightImage(rightImageFile);animal[i].repaint();}}else if(e.getSource()==oneGradeResult){showDiolag.setGradeFile(fileOneGrade);showDiolag.showRecord();showDiolag.setVisible(true);}else if(e.getSource()==twoGradeResult){showDiolag.setGradeFile(fileTwoGrade);showDiolag.showRecord();showDiolag.setVisible(true);}else if(e.getSource()==threeGradeResult){showDiolag.setGradeFile(fileThreeGrade);showDiolag.showRecord();showDiolag.setVisible(true);}else if(e.getSource()==customGradeResult){showDiolag.setGradeFile(filecustomGrade);showDiolag.showRecord();showDiolag.setVisible(true);}else if(e.getSource()==limitTime){if(handleMouse.spendTime>=(5*amountOfAnimal)){JOptionPane.showMessageDialog(this,"在"+(5*amountOfAnimal)+"s里你还没完成!\r\n"+"你太慢了!好逊啊!!!");leftImageFile=new File("pigone.jpg");rightImageFile=new File("pigtwo.jpg");for(int i=0;i<animal.length;i++){if(animal[i].getIsLeft()==true)animal[i].setLeftImage(leftImageFile);elseanimal[i].setRightImage(rightImageFile);animal[i].repaint();}}}validate();}public static void main(String args[]){new ChangeAnimalWindow();}}5. 软件运行结果图5.1 主系统窗体图5.2 游戏演示调试图图5.3 游戏运行调试图图5.4,图5.5 游戏排行榜调试图图5.6 游戏帮助关于我们调试图结论这此课程设计我们做的是“动物换位”游戏,主要是让左右两边相同数量的动物通过中间一个空的石头,左边的动物要全部跳到右边的石头上,右边的动物要全部跳到左边的石头上。