龟兔赛跑程序设计报告
Java实现多线程模拟龟兔赛跑

Java实现多线程模拟龟兔赛跑Java多线程模拟龟兔赛跑,供⼤家参考,具体内容如下笔者利⽤Java多线程技术,将兔⼦和乌龟的跑步以两个线程的⽅式模拟出来,以达到⼀个初步的效果。
题⽬如下:路程总距离为35⽶兔⼦:每秒跑5⽶,每跑10⽶,休息2秒;乌龟:每秒跑3⽶,不休息。
所⽤⼯具JDK1.8+IntelliJ IDEA 2020.1代码Race.java:(线程类,通过new出来的对象的不同线程名,然后分别模拟兔⼦和乌龟的跑步)package task;import org.omg.Messaging.SYNC_WITH_TRANSPORT;public class Race extends Thread {private int mile=35;//剩下的路程public int getMile() {return mile;}public void setMile(int mile) {e = mile;}public void run(){long time1=System.currentTimeMillis();//记录开始跑的时间if(getName().equals("兔⼦")){while(mile>0) {if ((int)(System.currentTimeMillis()-time1) % 2000 == 0 && (int)(System.currentTimeMillis()-time1) != 0) {//每跑10⽶即每过2秒休息2秒 try {System.out.println("兔⼦正在休息2秒");Thread.sleep(2000);} catch (InterruptedException e) {e.printStackTrace();}}if((int)(System.currentTimeMillis()-time1)%1000==0&& (int)(System.currentTimeMillis()-time1) != 0) {try {Thread.sleep(1000);mile -= 5;System.out.println("兔⼦跑了"+(35-mile)+"⽶");//35-mile即为跑过的距离}catch(InterruptedException e){e.printStackTrace();}}}System.out.println("兔⼦到达终点");}else if(getName().equals("乌龟")){while(mile>0){if((int)(System.currentTimeMillis()-time1)%1000==0&& (int)(System.currentTimeMillis()-time1) != 0) {try {Thread.sleep(1000);mile -= 3;if(mile<0){mile=0;}System.out.println("乌龟跑了"+(35-mile)+"⽶");//35-mile即为跑过的距离}catch(InterruptedException e){e.printStackTrace();}}}System.out.println("乌龟到达终点");}else{}}}测试类demoo.java:(通过设置线程优先级来实现乌龟先跑,否则线程执⾏顺序不可控)package task;public class demoo {public static void main(String[] args) {Thread rabbit=new Race();rabbit.setName("兔⼦");Thread turtle=new Race();turtle.setName("乌龟");turtle.setPriority(Thread.MAX_PRIORITY);rabbit.setPriority(Thread.MIN_PRIORITY);turtle.start();rabbit.start();}}测试结果:以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
python乌龟赛跑代码

python乌龟赛跑代码乌龟赛跑是一个有趣的游戏,可以通过编写Python代码来模拟这个游戏。
这个游戏的规则是,有几只乌龟在指定的距离上进行比赛,第一只到达终点的乌龟获胜。
首先,我们需要创建一个乌龟类。
每只乌龟都有一个名字和速度属性,可以通过调整速度来模拟不同乌龟的速度差异。
```pythonimport randomclass Turtle:def __init__(self, name, speed): = nameself.speed = speed```接下来,我们需要创建一个比赛函数。
在比赛函数中,我们会生成一些乌龟对象,并模拟它们的移动,直到有一只乌龟到达终点。
```pythondef race(distance):turtles = [Turtle('乌龟1', random.randint(1, 10)),Turtle('乌龟2', random.randint(1, 10)),Turtle('乌龟3', random.randint(1, 10))]winner = Nonewhile True:for turtle in turtles:turtle.speed += random.randint(-1, 1) # 模拟乌龟的速度变化turtle.speed = max(1, turtle.speed) # 限制乌龟的最小速度为1turtle.distance += turtle.speed # 乌龟移动的距离if turtle.distance >= distance:winner = turtlebreakif winner:breakprint('获胜的乌龟是:', )```最后,我们可以调用比赛函数,并传入指定的距离来开始比赛。
```pythonrace(100) # 指定比赛的距离为100```运行代码后,你会看到输出结果中会显示获胜的乌龟的名字。
龟兔赛跑java代码 -回复

龟兔赛跑java代码-回复“龟兔赛跑”是一则经典的寓言故事,它讲述了一只乌龟和一只兔子之间的竞争。
这个故事中,乌龟和兔子各自代表着不同的特点和策略。
在这篇文章中,我们将一步一步地解析“龟兔赛跑”的Java代码,帮助读者了解这个故事并学习如何使用Java语言来实现它。
首先,我们需要定义两个类:乌龟类(Turtle)和兔子类(Rabbit)。
乌龟类和兔子类分别代表了乌龟和兔子的特点和行为。
javapublic class Turtle {private int position;private int speed;public Turtle(int speed) {this.position = 0;this.speed = speed;}public void move() {this.position += this.speed;}public int getPosition() {return this.position;}}public class Rabbit {private int position;private int speed;public Rabbit(int speed) {this.position = 0;this.speed = speed;}public void move() {this.position += this.speed;}public int getPosition() {return this.position;}在代码中,乌龟类和兔子类都有一个私有的属性position表示它们的位置,以及一个私有的属性speed表示它们的速度。
构造方法用于初始化乌龟和兔子的速度。
move()方法被定义在乌龟类和兔子类中,用来改变它们的位置。
当调用move()方法时,乌龟和兔子的位置会根据它们的速度进行相应的改变。
getPosition()方法被定义在乌龟类和兔子类中,用于返回它们当前的位置。
龟兔赛跑java代码

龟兔赛跑java代码```javaimport java.util.Random;public class TortoiseAndHareRace {public static void main(String[] args) {// 生成随机数种子Random random = new Random();// 比赛距离int raceDistance = 100;// 兔子的速度int rabbitSpeed = 10;// 乌龟的速度int tortoiseSpeed = 2;// 模拟比赛过程Tortoise tortoise = new Tortoise(tortoiseSpeed);Rabbit rabbit = new Rabbit(rabbitSpeed, raceDistance, random);while (tortoise.getDistanceTraveled() < raceDistance && rabbit.getDistanceTraveled() < raceDistance) {System.out.println("兔子跑了 " + rabbit.getDistanceTraveled() + " 米,乌龟跑了 " + tortoise.getDistanceTraveled() + " 米。
");// 让兔子和乌龟继续跑tortoise.run();rabbit.run();}// 输出比赛结果if (tortoise.getDistanceTraveled() == raceDistance) {System.out.println("乌龟到达终点线,赢得比赛!");} else if (rabbit.getDistanceTraveled() == raceDistance) {System.out.println("兔子到达终点线,赢得比赛!");} else {System.out.println("兔子和乌龟都没有到达终点线。
辽师大版六年级下册信息技术1.4龟兔赛跑课件

Third
裁判的倒计时是怎样实现的?
3
比赛过程
Step 1
Step 2
Step 3
乌龟和兔子一起跑 兔子到树旁休息
兔子速度更快
乌龟逐渐超过
兔子抵达终点 欢呼
4
温馨提示
Step 1
Step 2
注意等待的时间
骄傲的兔子 何时休息
Step 3
胜利的乌龟 何时欢呼
5
课后小结
“等待时间”在动画中的应用技能 在循化结构中使用判断命令 通过改变坐标的方法移动角色 认识侦测模块的功能
小思考:你还能够运用Scratch制作哪些耳熟能详的故事?
好好 习 学
下课啦!
有趣的动画编程——Scratch的程序设计
龟兔 跑 赛
效果 展示
小组 讨论
龟兔赛跑
情景 再现
分析 对话
佳作 赏析
比赛 过程
1
效果展示
2
分析对话
ห้องสมุดไป่ตู้
Frist 乌龟与兔子对话的过程是怎样的?
Second 乌龟说话的时候,兔子在做什么? 反之,兔子在说话的时候,乌龟又在做什么?
乌龟和兔子对话的过程中,裁判在哪?
龟兔赛跑游戏程序模块分析

龟兔赛跑游戏程序模块分析:游戏程序第一层主函数模块样式:main(){ int hare = 0, tortoise = 0, timer = 0; //timer是计时器,从0开始计时while (hare < RACE_END && tortoise < RACE_END){ tortoise += 乌龟根据他这一时刻的行为移动的距离;hare += 兔子根据他这一时刻的行为移动的距离;输出当前计时和兔子乌龟的位置;++timer;}if (hare > tortoise) cout << "\n hare wins!";else cout << "\n tortoise wins!";}抽取函数模块:乌龟在这一秒的移动距离:int move_tortoise();兔子在这一秒的移动距离:int move_hare();输出当前计时和兔子与乌龟的位置void print_position(int timer, int tortoise, int hare);由功能分成三个模块(分类模块):主模块移动模块move_tortoisemove_hare()输出模块print_position程序代码://文件:Random.h//随机函数库的头文件#ifndef _random_h#define _random_h//函数:RandomInit//用法:RandomInit()//作用:此函数初始化随机数种子void RandomInit();//函数:RandomInteger//用法:n = RandomInteger(low, high)//作用:此函数返回一个low到high之间的随机数,包括low和high int RandomInteger(int low, int high);#endif//文件:Random.cpp//该文件实现了Random库#include <cstdlib>#include <ctime>#include "Random.h"//函数:RandomInit//该函数取当前系统时间作为随机数发生器的种子void RandomInit(){srand(time(NULL));}// 函数:RandomInteger// 该函数将0到RAND_MAX的区间的划分成high - low + 1 个// 子区间。
小学信息技术冀教版三年级下册《十八 “龟兔赛跑”卡通画》教学设计
小学信息技术冀教版三年级下册《十八“龟兔赛跑”卡通
画》教学设计
一、教学目标:
认知目标:学生能够了解计算机的基本组成和操作系统的基本操作;
技能目标:学生能够掌握画图程序的基本操作,包括打开、关闭、最大化、最小化窗口等;
情感目标:学生能够在创作“龟兔赛跑”卡通画的过程中,体会到信息技术带来的乐趣,增强学习信息技术的积极性。
二、教学重难点:
重点:画图程序的基本操作;
难点:创作“龟兔赛跑”卡通画。
三、教学过程:
导入新课:通过提问的方式,引导学生回忆计算机的基本组成,引出本节课的主题——“龟兔赛跑”卡通画的创作;
新课讲解:教师演示画图程序的基本操作,包括打开、关闭、最大化、最小化窗口等,学生跟随教师的演示进行操作;
实践操作:学生利用画图程序,创作“龟兔赛跑”卡通画,教师巡回指导,解答学生在创作过程中遇到的问题;
作品展示:鼓励学生自愿展示自己的作品,其他同学给予评价和建议;
总结归纳:回顾本节课所学内容,总结画图程序的基本操作
和创作“龟兔赛跑”卡通画的要点;
布置作业:要求学生在家中继续完善自己的作品,并将作品上传至班级群共享,以便其他同学互相学习和交流。
四、教学评价:
过程评价:观察学生在实践操作过程中的表现,及时给予指导和帮助;
结果评价:评价学生的作品,指出优点和不足,提出改进意见。
龟兔赛跑程序代码
Public i As Integer, m As Integer, n As Integer, k As Integer, j As IntegerPrivate Sub b2_Click()MsgBox "初次尝试,欢迎多多指教!", 48, "关于龟兔赛跑"End SubPrivate Sub HScroll1_Change()Text3.Text = HScroll1.V alueEnd SubPrivate Sub p5_Click()Label1.Caption = "预备"Text1.Text = "0:00:00"Text2.Text = "0:00:00"Timer2.Enabled = FalseTimer3.Enabled = Falsen = 0k = 0p3.Left = 1680p4.Left = 1680i = 1Timer1.Enabled = TrueEnd SubPrivate Sub a1_Click()p5_ClickEnd SubPrivate Sub a2_Click()EndEnd SubPrivate Sub b1_Click()Form3.ShowEnd SubPrivate Sub p5_KeyDown(KeyCode As Integer, Shift As Integer)j = HScroll1.V alueStatic blin1 As BooleanStatic blin2 As BooleanIf KeyCode = vbKeyA Or KeyCode = vbKeyS ThenIf i < 8 ThenText2.Text = "抢跑"MsgBox "兔选手,你抢跑了!", 16, "犯规" Text2.Text = "0:00:00"Text1.Text = "0:00:00"n = 0k = 0i = 1Exit SubEnd IfEnd IfIf blin1 = False And i = 8 ThenIf KeyCode = vbKeyA Thenp3.Left = p3.Left + jblin1 = Not blin1blin2 = Not blin2End IfEnd IfIf blin2 = True And i = 8 ThenIf KeyCode = vbKeyS Thenp3.Left = p3.Left + jblin2 = Not blin2blin1 = Not blin1End IfEnd IfStatic blin3 As BooleanStatic blin4 As BooleanIf KeyCode = 186 Or KeyCode = 222 ThenIf i < 8 ThenText2.Text = "抢跑"MsgBox "龟选手,你抢跑了!", 16, "犯规"i = 1Text2.Text = "0:00:00"n = 0k = 0Exit SubEnd IfEnd IfIf blin3 = False And i = 8 ThenIf KeyCode = 186 Thenp4.Left = p4.Left + jblin3 = Not blin3blin4 = Not blin4End IfIf blin4 = True And i = 8 ThenIf KeyCode = 222 Thenp4.Left = p4.Left + jblin4 = Not blin4blin3 = Not blin3End IfEnd IfIf p3.Left >= p1.Width - p3.Width + 1680 ThenTimer3.Enabled = Falsep3.Left = p1.Width - p3.Width + 1680End IfIf p4.Left >= p2.Width - p4.Width + 1680 ThenTimer2.Enabled = Falsep4.Left = p2.Width - p4.Width + 1680End IfIf p3.Left >= p1.Width - p3.Width + 1680 And p4.Left >= p2.Width - p4.Width + 1680 ThenIf k = n ThenMsgBox "和局!", 48Label1.Visible = FalseTimer2.Enabled = FalseTimer3.Enabled = Falsek = 0n = 0Text1.Text = "0:00:00"Text2.Text = "0:00:00"p3.Left = 1680p4.Left = 1680End IfIf n > k ThenMsgBox "龟选手,你赢了!", 48Label1.Visible = FalseTimer2.Enabled = FalseTimer3.Enabled = Falsek = 0n = 0Text1.Text = "0:00:00"Text2.Text = "0:00:00"p3.Left = 1680p4.Left = 1680If k > n ThenMsgBox "兔选手,你赢了!", 48Label1.Visible = FalseTimer2.Enabled = FalseTimer3.Enabled = Falsek = 0n = 0Text1.Text = "0:00:00"Text2.Text = "0:00:00"p3.Left = 1680p4.Left = 1680End IfEnd IfEnd SubPrivate Sub Timer1_Timer()Label1.Visible = Not Label1.Visiblei = i + 1If i = 8 ThenLabel1.Caption = "开始"Label1.Visible = TrueTimer2.Enabled = TrueTimer3.Enabled = TrueTimer1.Enabled = FalseEnd IfEnd SubPrivate Sub Timer3_Timer()n = n + 1n0 = n Mod 60n1 = (n \ 60) Mod 60n2 = ((n \ 60) \ 60) Mod 60Text1.Text = Right(("0" & CStr(n2)), 2) & ":" & Right(("0" + CStr(n1)), 2) & ":" & Right("0" & CStr(n0), 2)End SubPrivate Sub Timer2_Timer()k = k + 1k0 = k Mod 60k2 = ((k \ 60) \ 60) Mod 60Text2.Text = Right(("0" & CStr(k2)), 2) & ":" & Right(("0" + CStr(k1)), 2) & ":" & Right("0" & CStr(k0), 2)End Sub。
六年级下册信息技术课件-1.4龟兔赛跑|辽师大版(共8张PPT)
小思考:你还能够运用Scratch制作哪些耳熟能详的故事?
好好 习 学
下课啦!
Third
裁判的倒计时是怎样实现的?
3
比赛过程
Step 1
Step 2
Step 3
乌龟和兔子一起跑 兔子到树旁休息
兔子速度更快
乌龟逐渐超过
兔子抵达终点 欢呼
4
温馨提示
Step 1
Step 2
注意等待的时间
骄傲的兔子 何时休息
Step 3
胜利的乌龟 何时欢呼
5
课后小结
“等待时间”在动画中的应用技巧 在循化结构中使用判断命令 通过改变坐标的方法移动角色 认识侦测模块的功能
有趣的动画编程——Scratch的程序设计
龟兔 跑 赛
效果 展示
小组 讨论
龟兔赛跑
情景 再现
分析 对话
佳作 赏析
比赛 过程
1
效果展示
2
分析对话
Frist 乌龟与兔子对话的过程是怎样的?
Second 乌龟说话的时候,兔子在做什么? 反之,兔子在说话的时候,乌龟又在做什么?
乌龟和兔子对话的过程中,裁判在哪?
利用JAVA多线程技术模拟龟兔赛跑
利用JAVA多线程技术模拟龟兔赛跑作者:刘惠敏来源:《电脑知识与技术》2008年第34期摘要:该文介绍了利用JAVA语言的多线程技术,对“龟兔赛跑”寓言故事的模拟。
从模拟程序的具体设计思路,到详细的实现过程,将技术的应用融入到一个有趣的问题的解决中,既可方便完成教学内容,又可有效激发学生学习兴趣,对JAVA多线程技术的案例教学实现有很好的参考价值。
关键词:多线程;模拟;龟兔赛跑;案例教学中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)34-1982-02Tortoise and Hare Race simulation with JAVA Multi Thread TechnologyLIU Hui-min(Dept. of Computer Sci., Huanggang Polytechnic College, Huanggang 438002, China)Abstract: A simulation for the Tortoise and Hare Race apologue story with Java multi thread technology has been introduced in this paper. By the detail description on the simulation program design thinking to implementation procedures, the technology application has been embedded into the solving of an interesting real problem. This simulation tool will make the teaching easily, and stimulates student’s interesting on learning effectively. It will also have good reference value for the teaching of Java multi thread technology with cases.Key words: multi-thread; simulation; tortoise and hare race; teaching with cases1 引言“龟兔赛跑”的寓言故事家喻户晓,如果能够用直观形象的方式将故事表达的内容演示出来,那将更有利于人们对故事的理解和认识,怎样用程序的方式把故事模拟表示出来呢?为了便于计算机模拟,需要把故事中的情节数字化。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
陕西师大课程设计 乔文东 计算机科学与技术 61481610310001
目录
前言 .............................................................. 1 工程概况 .......................................................... 1 2.1 项目所用的时间 ............................................. 1 2.2项目负责人 .................................................. 1 2.3 项目指导人 ................................................. 1 正文 .............................................................. 1 3.1 设计的目的和意义 ........................................... 1 3.2 目标与总体方案 ............................................. 2 3.3 设计方法和内容 ............................................. 2 3.3.1开发环境 ............................................... 2 3.3.2设计方法 ............................................... 2 3.3.4设计体会 ............................................... 8 3.4 设计创新与关键技术 ......................................... 9 3.4.1 设计创新 .............................................. 9 3.4.2 关键技术 .............................................. 9 3.5结论 ........................................................ 9 致谢 ............................................................. 10 参考文献 ......................................................... 10 附录 ............................................................. 11 陕西师大课程设计 第 1 页 共 18 页 前言
在科技日新月异的今天,电脑成为人的生活中不可缺少的一部分。作为计算机专业的学生,应该充分利用所学知识,把实际问题转移到电脑上去,通过电脑的编程,使复杂问题简单化,深奥问题浅显化,抽象问题具体化。在学过《Java程序设计》语言后,我们对计算机有了更深的了解。Java是一种简单的,跨平台的,面向对象的,分布式的,解释的,健壮的安全的,结构的中立的,可移植的,性能很优异的多线程的,动态的语言。当1995年SUN推出Java语言之后,全世界的目光都被这个神奇的语言所吸引。Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。 本次课设我选择的是龟兔赛跑游戏的制作。这个游戏实际上主要是对我们JAVA学习中的线程部分的考察,尤其是多线程的定义,运行等。同时还要保证游戏有一个真实的操作界面和人性化操作设计。 在设计龟兔赛跑这个游戏中我也遇到了技术上的一些困难,但通过查阅资料,并且在老师的帮助下最终问题得以解决。正如龟兔赛跑这个故事一样,虽然我们在技术上不是很优秀,但只要有乌龟一样坚持不懈的精神,最终胜利到达终点。 乔文东 计算机科学与技术 61481610310001
工程概况 2.1 项目所用的时间 从这个项目开始到结束总共历时12天。完成于2015年6月19日。 2.2项目负责人 孙肖肖,女,计算机科学与技术17-4,学生。 2.3 项目指导人 高贤强,男,信息工程学院教师,讲师。 正文
3.1 设计的目的和意义 本设计要求学生开发一个龟兔赛跑游戏,主要是对学生多线程编程、游戏方案设计、游戏背景及动漫制作等能力进行培养锻炼,同时还要求保证游戏有一个真实的操作界面和人性化操作设计。此外,学生通陕西师大课程设计 第 2 页 共 18 页 过该题目的设计过程,可以初步应用软件系统的开发原理和开发方法,全面培养软件开发过程中的分析、设计、编码、测试及文档规范书写的能力,得到软件工程的训练,提高解决实际问题的能力。 (1)有助于加深我们对Java程序设计这门课程的理解,我们在课堂上学的都是基础理论知识,对于如何用程序语言来描述所学知识还是有一定的难度。通过课程设计,我们可以真正理解其内涵。 (2)有利于我们逻辑思维的锻炼,程序设计能直接有效地训练学生的创新思维、培养分析问题、解决问题的能力。即使是一个简单的程序,依然需要学生有条不紊的构思。 (3)有利于培养严谨认真的学习态度,在程序设计的过程中,当我们输入程序代码的时候,如果不够认真细心,那么就可能导致语法错误,从而无法得出运行结果。那么,这个我们反复调试,反复修改的过程,其实也是对我们认真严谨治学的一个锻炼。
3.2 目标与总体方案 (1)用图形用户界面实现游戏界面,同时通过设置布局,背景,字体等来丰富界面,最大程度的模拟龟兔赛跑的场景。 (2)能设置比赛时间,龟兔的数量等等,实现对比赛中龟兔的数量,比赛时间等参数的设置。 (3)在任意时间段内龟兔的速度是随机的,为了模拟龟兔赛跑结果的不确定性,在游戏开始后乌龟和兔子的速度都是通过随机函数产生的,保证兔子比乌龟速度要快,兔子在赛跑途中看到乌龟落后下会偷懒睡觉的前提下给予乌龟,兔子以随机的速度,从而使得游戏的结果不确定,给用户更多的游戏的真实感。 (4)开始比赛之后以动画显示赛跑过程,用户进入游戏界面后,先选择游戏模式,然后单击开始按钮,乌龟和兔子将会以随机的速度开始朝终点线爬行,通过重复刷新技术达到动画效果,给用户更逼真的感官。 (5)系统的开发可以采用Java语言来实现; (6)在基本要求达到后,可进行创新设计,如改善算法性能、友好的人机界面。
3.3 设计方法和内容
3.3.1开发环境 硬件环境:一台清华同方电脑,其配置为:CPU: Intel(R) Core(TM) i5-4570 3.2GHz 内存:4G 硬盘:500G 主板:4260LA-2922P 软件环境:Windows 7旗舰版版本2009 Service Pack 1,并且安装了可供编程的eclipse-standard-kepler-SR1-win32
3.3.2设计方法 赛跑的过程是两个比赛对象并行前进的过程,考虑到应用需求,我们可以利用多线程技术,所谓多线程就是指同时存在几个执行体,按几条不同的执行线索共同工作的情况,这与要求刚好吻合,Java语言对多线程提供强大的支持。 用直观图形描述龟兔赛跑前进过程:每过一秒,兔子走过的文本框中增加三个“#”号,乌龟走过的路程文本框中增加一个“#”号。跑完路程结束线程,并显示各自跑完全程总共用的时间。 3.3.3主体内容 陕西师大课程设计 第 3 页 共 18 页 一、设计分析 第一步:设计良好游戏界面 功能:实现基本的开始、退出游戏功能、选择游戏模式等。 基本步骤:
图3.3.3.1 基本步骤1 在实现过程中会遇到的问题及解决方案: 1、背景面板上加载图片时需要重写paintComponent方法 2、布局必须合理设置(GridLayout不能改变组件的具体位置但可以缩放时相对位置不变。FlowLayout默认是占满第一行转向第二行,并且放大时相对位置改变。Null布局可以自由布置组件位置和大小,但不易实现窗口放大时相对大小随之变化。)若设置不合理,就可能出现多种错误。列如:无法插入背景图片,组建不能显现,组件位置与设计不符等等。 3、添加背景面板监听重置各面板位置才能实现窗口放大时的相对位置不变 第二步:线程类的设计 功能:实现多只乌龟,兔子的多线程运行 具体步骤: 陕西师大课程设计
第 4 页 共 18 页 图3.3.3.2基本步骤2 第二步会遇到的问题及解决方案: 1、建立兔子线程,继承接口Runnable并正确的实现run()方法。同时要特别注意兔子在比赛中还要模拟睡觉的动作。 2、建立乌龟线程,继承接口Runnable并实现其run()方法,要与兔子多线程运行; 3、为了实现可选择多只龟兔进行赛跑,要实现多个兔子,乌龟线程,并能并发运行。 4、游戏中提供了模式选择的功能,通过建立ItemSelect类来建立不同的游戏模式。 二、各模块的功能及程序说明 龟兔赛跑程序主要由以下几个模块构成: 模块一:初始图形界面模块 public class RRTT extends Applet implements ActionListener { Graphics g; Panel panel; Label label1,label2,label3; Button button1,button2; RabTor1 rabTor1; public void init()//Applet中的初始化函数有类中构造函数的作用!最先调用! { panel=new Panel(); panel.setLayout(new FlowLayout()); label1=new Label("欢迎使用该软件,1.0版本,不足之处,请多多指教!"); label2=new Label("*********东瑞制作*****程序员*****陈杰*********"); label3=new Label();