龟兔赛跑程序设计报告全解

目录前言 (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 设计创新与关键技术 (8)3.4.1 设计创新 (8)3.4.2 关键技术 (9)3.5结论 (9)致谢 (9)参考文献 (10)附录 (11)前言在科技日新月异的今天,电脑成为人的生活中不可缺少的一部分。

作为计算机专业的学生,应该充分利用所学知识,把实际问题转移到电脑上去,通过电脑的编程,使复杂问题简单化,深奥问题浅显化,抽象问题具体化。

在学过《Java程序设计》语言后,我们对计算机有了更深的了解。

Java是一种简单的,跨平台的,面向对象的,分布式的,解释的,健壮的安全的,结构的中立的,可移植的,性能很优异的多线程的,动态的语言。

当1995年SUN推出Java语言之后,全世界的目光都被这个神奇的语言所吸引。

Java 不同于一般的编译执行计算机语言和解释执行计算机语言。

它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。

本次课设我选择的是龟兔赛跑游戏的制作。

这个游戏实际上主要是对我们JAVA学习中的线程部分的考察,尤其是多线程的定义,运行等。

同时还要保证游戏有一个真实的操作界面和人性化操作设计。

在设计龟兔赛跑这个游戏中我也遇到了技术上的一些困难,但通过查阅资料,并且在老师的帮助下最终问题得以解决。

正如龟兔赛跑这个故事一样,虽然我们在技术上不是很优秀,但只要有乌龟一样坚持不懈的精神,最终胜利到达终点。

工程概况2.1 项目所用的时间从这个项目开始到结束总共历时12天。

完成于2015年6月19日。

2.2项目负责人孙肖肖,女,计算机科学与技术17-4,学生。

2.3 项目指导人高贤强,男,信息工程学院教师,讲师。

正文3.1 设计的目的和意义本设计要求学生开发一个龟兔赛跑游戏,主要是对学生多线程编程、游戏方案设计、游戏背景及动漫制作等能力进行培养锻炼,同时还要求保证游戏有一个真实的操作界面和人性化操作设计。

此外,学生通过该题目的设计过程,可以初步应用软件系统的开发原理和开发方法,全面培养软件开发过程中的分析、设计、编码、测试及文档规范书写的能力,得到软件工程的训练,提高解决实际问题的能力。

(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-win323.3.2设计方法赛跑的过程是两个比赛对象并行前进的过程,考虑到应用需求,我们可以利用多线程技术,所谓多线程就是指同时存在几个执行体,按几条不同的执行线索共同工作的情况,这与要求刚好吻合,Java语言对多线程提供强大的支持。

用直观图形描述龟兔赛跑前进过程:每过一秒,兔子走过的文本框中增加三个“#”号,乌龟走过的路程文本框中增加一个“#”号。

跑完路程结束线程,并显示各自跑完全程总共用的时间。

3.3.3主体内容一、设计分析第一步:设计良好游戏界面功能:实现基本的开始、退出游戏功能、选择游戏模式等。

基本步骤:图3.3.3.1 基本步骤1在实现过程中会遇到的问题及解决方案:1、背景面板上加载图片时需要重写paintComponent方法2、布局必须合理设置(GridLayout不能改变组件的具体位置但可以缩放时相对位置不变。

FlowLayout 默认是占满第一行转向第二行,并且放大时相对位置改变。

Null布局可以自由布置组件位置和大小,但不易实现窗口放大时相对大小随之变化。

)若设置不合理,就可能出现多种错误。

列如:无法插入背景图片,组建不能显现,组件位置与设计不符等等。

3、添加背景面板监听重置各面板位置才能实现窗口放大时的相对位置不变第二步:线程类的设计功能:实现多只乌龟,兔子的多线程运行具体步骤:图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();button1=new Button("进入游戏");button2=new Button("退出游戏");button1.addActionListener(this);button2.addActionListener(this);setLayout(new BorderLayout());panel.add(button1);panel.add(label3);panel.add(button2);add(label1,BorderLayout.NORTH);add(label2,BorderLayout.SOUTH);add(panel,BorderLayout.CENTER);}public void actionPerformed(ActionEvent e){if(e.getSource()==button1){ rabTor1=new RabTor1();//dispose();}else if(e.getSource()==button2){ System.exit(0);}}}该模块主要是用来提供进入该程序游戏的初始图形用户界面,显示该程序的基本信息,提示用户进行操作。

模块二:兔子线程模块该模块主要是实现兔子运行线程,类RabbitThread 继承了接口Runnable并实现其方法run(),主要有两个功能的实现:1.来为兔子定义随机速度x1=x1+(int)(Math.random()*30);2.兔子动的实现方法if(threadName.equals("rabbit")&&x1<=800)int t1=0,t2=0;str1="rabbit";x1=x1+(int)(Math.random()*30);rab_time=rab_time+1;rab_road+=(int)(Math.random()*25);3.兔子获得一个随机的时间睡眠(0—30秒)str1="乌龟跑这么慢,我先睡一会";str2="哼,别以为自己是兔子就了不起!你就睡吧!";rabbit = getImage( getCodeBase(),"4.jpg");try{ t1=(int)(Math.random()*30000);Thread.currentThread().sleep(t1);}catch (InterruptedException e){}模块三:乌龟线程模块该模块主要是实现乌龟运行线程,类TortoiseThread继承了接口Runnable并实现其方法run(),主要功能的实现:乌龟移动实现的方法!else if(threadName.equals("tortoise")&&x2<=600){x2+=(int)(Math.random()*20);tor_road+=(int)(Math.random()*20);tor_time=tor_time+1;if(x2>140&&x2<240){ str2="tortoise"; }if(x2>255&&x2<=480){ str2="tortoise"; }if(x2>480&&x1<580){ str2="就快到终点了,我要坚持下去,坚持就是胜利!";}通过随机函数实现乌龟随机速度爬行。

合集下载

龟兔赛跑报告

龟兔赛跑报告

Visual Basic课程设计报告题目1:龟兔赛跑难度: * 指导教师:袁红兵姓名:薛岚学号:1009570212专业:艺术设计班级:10095702学院:设计艺术与传媒学院日期:2011年2月21日~ 3月17日Visual Basic课程设计报告一、题目简介本题目旨在设计一个简单的小游戏,名字叫“龟兔赛跑”。

这个游戏需要两个用户分别通过操作“A”,“S”和“:”,“‘”来进行比赛,谁最早跑到终点谁就获胜。

这个游戏的设计可以让用户锻炼自己的反应能力,在闲暇时的一种调剂。

通过对此程序的设计,可以使我们更好的学习VB ,加深我们对上一学期的VB学习,使我们从理论知识的学习层面升华为实际操作。

从中既完成了学业任务,又提升了我们的能力。

题目的难度系数虽然只有一颗星,但还是涉及了众多的细小知识点,有些也是作为典型的控制事件,如键盘控制事件和Timer定时器。

运用了循环以及嵌套语句来完成这个程序。

另外还有一些函数问题,例如Str,Right等,在书上221页也有详细的解释。

还有300页的Shell函数显示文件时需要找记事本和自述文件的路径才能显示,让我明白做各种程序也是需要方法和正确的途径。

程序要求实现如下功能1,程序界面如图1.1所示,开始时“兔”和“龟”分别位于两条跑道的起点。

使用鼠标点击“狐狸”(他是裁判)按钮,该按钮右面闪烁3次“预备”字样,然后显示“开始”进入比赛状态。

图1.1 主界面2.赛跑开始后,用户1轮流按“a”和“s”键,用户2轮流按“;”和“‘”(单引号)键,分别使“兔”和“龟”沿跑道向右前进。

每按两次键才能使图标移动一次,按键越快,相应的图标就跑得快。

记时排显示各自所用时间,如图1.2所示。

当两个动物都到达终点时,显示谁是胜者(见图1.3)。

游戏过程中,通过“游戏速度”图1.2游戏过程中图1.3 滚动条来调节动物每前进一步的距离。

3.游戏在进入预备状态之前,按键是不能使两个动物移动的;在“预备”状态时(即在起跑之前),若按键移动动物程序认为是抢跑,显示图1.4所示的信息,必须重新开始游戏。

vb龟兔赛跑

vb龟兔赛跑

龟兔赛跑设计报告学院土木学院班级交运C111 学号117788 姓名张占强成绩一、设计思路1.要达到的目的培养学生综合利用VB语言进行程序设计的能力,主要是利用VB的图像控件进行界面设计,用VB的鼠标事件进行控件的拖拽处理以及利用数组进行数据处理的能力。

2.关键问题的解决①窗体包含菜单,跑道用Picturebox控件,乌龟和兔子用Image控件,速度调节使用HscrollBar控件,两个Timer控件分别为乌龟和兔子计时,两个Label控件分别显示乌龟和兔子所用时间。

②在窗体的Load事件设定用于游戏的4个键盘键相应字符ASCII码值,每个键的点击状态以及比赛开始和结束状态的变量设置为布尔型并赋逻辑值。

HscrollBar的初值作为默认速度。

这些变量应设置为全局变量。

③狐狸裁判用图像控件实现,在狐狸的单击事件中实现开始比赛并对相关变量和控件的初始化。

④用两个Timer控件的Timer事件分别控制乌龟和兔子的比赛时间显示。

⑤在窗体的键盘事件来控制乌龟和兔子的运动,使用select多分支结构,KeyAscii的返回值作为测试表达式来判断点击的是哪个按键,在每个分支结构下完成对抢跑、是否移动、移动动画及胜负判断的处理。

抢跑是通过对比赛是否开始的布尔值进行判断。

是否移动需要判断两次点击的是否是所设置的不同的键,可以通过对两个键的状态交替变化来实现。

移动动画通过对Image的left属性增加来实现。

胜负判断的处理,只要有一方到达终点比赛结束,可通过比较跑道(PictureBox控件)和动物(Image控件)的left属性值来判断是否到达终点,到达终点则计时停止;用Label显示获胜信息;未到达终点的一方可以继续跑。

二、模块之间的调用关系,或程序流程图三、部分程序关键源代码及注释Sub DealKeyUp(KeyCode As Integer)If g_GameStatus = 1 Then ''预备阶段Select Case KeyCodeCase g_Player1_WuGui, g_Player2_WuGui, g_Player1_WuGui - 32, g_Player2_WuGui - 32MsgBox "乌龟选手抢跑,游戏重新开始!", vbExclamation, Me.CaptionGameResetCase g_Player1_TuZi, g_Player2_TuZi, g_Player1_TuZi - 32, g_Player2_TuZi - 32 MsgBox "兔子选手抢跑,游戏重新开始!", vbExclamation, Me.CaptionGameResetEnd SelectExit SubEnd If四、设计方案的完善及目前存在的问题1.设计方案要完善的地方①比赛开始之前没有倒计时②狐狸没有标明它是裁判2. 目前存在的问题①抢跑没有说明五、本次设计的收获及心得体会VB是一个非常有用的程序语言,在未来的社会发展中也将起到很大的作用。

制作卡通片《龟兔赛跑》——案例及分析

制作卡通片《龟兔赛跑》——案例及分析

制作卡通片《龟兔赛跑》——案例及分析一.引言:利用多媒体计算机和网络教学技术作为聋生认知学习工具,能有效地促进聋生地认知发展.所以我们教师应当适当地采用任务驱动策略,让聋生带着目标学习,并且为目标积极地发现问题、分析问题、解决问题,达到教学与应用地最优化..问题.通过学习,让聋生真正融入到课堂中,利用所学制作出地卡通片.五.教学过程:为了实现本课教学目标,抓住重点,突破难点,我为本课设计了五个环节:情境引入、明确任务;合作学习、自主探究;小组探索、协作研究;综合练习、呈现作品;课后延伸,拓展知识.1.情境引入,明确任务美好地情景导入是一堂好课地开始,我设计了这样一个情境:播放一个聋生很喜欢地FLASH动画《龟兔赛跑》;即而播放教师事先制作好地《龟兔赛跑》地幻灯片,边播放边叙述故事情节,以排戏”地方式让同学们在排戏地过程中学到新知,巩固旧知.首先说明求助方式:如果遇到困难地时候,可以使用两种求助方式.一种是:求助“问题博士”;另一种是:求助“老师”.了却了聋生在制作过程中遇到困难地盲目性.针对低年级聋生地年龄特点,以童真、童趣地语言吸引聋生地注意力,以此达到教学地目地.3.小组探索,协作研究复制整张幻灯片地方法和插入音乐、自动播放这部分内容是本课地重点和难点我采用小组讨论、尝试、汇报地方法,充分发挥聋生地自主、合作意识.者和咨询者.教师地主导作用可以使整个教学过程更加优化.发挥教师地主导作用是教学过程中重要地环节.4.动手练习,展示作品教育家弗赖登塔说:“学习地唯一正确方法就是实行再创造”,信息技术地学习重在把所学知识综合地创造性应用.导演们地作品大都完成了,让我们来个作品首映式吧!展示作品,生交流设计意图.(聋生描述故事情节),充分体验到了创作地愉悦和成功地快乐.5.课后延伸,拓展知识充分发挥想象,制作领奖场面及获奖感言.给聋生留以想象空间中.趣.聋校信息技术教学应该以聋生为中心,在整个教学过程中,教师起组织者、指导者、帮助者和促进者地作用,利用情境、协作、会话等学习环境充分发挥聋生地主动性、积极性和首创性精神,最终达到使聋生有效地实现对当前所学地知识地建构地目地.在这一过程中,聋生是知识意义地主动建构者,教师是教学过程中地组织者、指导者、帮助者,教材不再是教师传授地知识而是聋生主动建构意义地对象,媒体则是作为聋生主动学习、探索地认知工具.只有这样,聋生地主动性和个性才能得到较大地体现和发展,这样地教学氛围十分有利于聋生创新精神和解决问题能力地培养,分..法.2009.4。

龟兔赛跑游戏程序模块分析

龟兔赛跑游戏程序模块分析

龟兔赛跑游戏程序模块分析:游戏程序第一层主函数模块样式: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 个// 子区间。

龟兔赛跑课程设计(10信计2班 陈杰 20100406228)(新)

龟兔赛跑课程设计(10信计2班 陈杰  20100406228)(新)

10信计2011-2012(二)《Java程序设计》课程设计设计题目龟兔赛跑设计时间2012.6.18 至2012.6.24学生姓名陈杰学生学号20100406228所在班级10信计2指导教师刘风华徐州工程学院数学与物理科学学院摘要本次课设我选择的是龟兔赛跑游戏的制作。

这个游戏实际上主要是对我们JAVA学习中的线程部分的考察,尤其是多线程的定义、运行,Java小程序的编写,图形界面的实现,Java小程序中背景音乐的插入等。

同时还要保证游戏有一个真实的操作界面和人性化操作设计,所以我在设计过程中重点强调了对线程部分内容的复习和实践。

在设计龟兔赛跑这个游戏中我们也遇到了技术上的一些困难,但通过查资料、阅读大量的文献最终问题得以解决。

正如龟兔赛跑这个故事一样,虽然我在技术上不是很优秀,但我有像乌龟一样坚持不懈的精神,最终胜利到达终点。

关键字Java小程序;多线程;图形界面;画图;背景音乐目录1需求分析 (1)1.1图形用户界面 (1)1.2动态画面 (1)1.3图片切换 (1)1.4字符切换 (1)1.5背景音乐设置 (1)1.6比赛场地的设置 (1)2设计方法及设计方案 (2)2.1设计良好游戏界面 (2)2.2线程类的设计 (2)3系统设计 (4)4系统的开发和运行环境及安装配置说明 (7)4.1在DOS命令行界面中编译运行 (7)4.2在Textpad界面中编译运行 (7)4.3文件打包存放 (7)5系统实现 (8)5.1登陆界面 (8)5.2赛跑界面 (8)6总结与心得体会 (11)参考文献 (12)附录 (13)1需求分析1.1图形用户界面在兔子乌龟比赛之前,显示界面如右图:通过在Java Application或者Applet中添加标签、按钮、面板等组件来显示本软件基本信息,以及操作命令(进入游戏、退出游戏)。

1.2动态画面创建多线程,至少是一只兔子和一只乌龟的线程,兔子可能睡觉也可能不睡觉,乌龟不睡觉,兔子睡觉的时间、兔子的速度、乌龟的速度、随机,但总体总体速度比乌龟快。

兔子与乌龟报告

兔子与乌龟报告

中南大学面向对象程序设计课程设计报告学生姓名吴昕薇学号 1304100221专业班级信科1001班2013年1月目录1.实验目的 (3)2实验内容及原理 (3)3.实验环境 (3)4.实验步骤 (3)4.1前期准备 (3)4.2极小化 (4)4.3兔子与乌龟的追逐与分形 (9)4.4程序调试 (13)5.实验结果 (15)6.实验总结 (16)7.参考文献 (16)8.程序清单 (16)课程设计题目:兔子与乌龟一、实验目的在《面向对象程序设计》课程教学的基础上,根据软件工程的方法与流程,在相对集中的实训教学时间内,通过一个功能较完整的小型应用系统的设计与开发,深入复习并进一步掌握面向对象的程序设计思想与方法。

同时,作为整个实践教学体系一部分,系统培养学生采用面向对象的方法分析问题与解决问题的能力及团体组织与协作能力。

二、实验内容及原理1.问题描述:有两只兔子和两只乌龟,分别位于四个角上,并可以相互追逐。

假设第一只乌龟先移动,这样第一只兔子和第一只乌龟间可以用斜线连接,第一只兔子应该在该斜线上追逐第一只。

乌龟。

由于第一只兔子进行了移动,因而第二只乌龟和第一只兔子也可以用斜线来连接,并且第二只乌龟应该在此斜线上追逐第一只兔子,一次类推并如此往复。

假设首先要弄清楚它们相互追逐的轨迹,应该怎样建立这个模型,怎样用OpenGl来实现。

三、实验环境Microsoft Visual Studio 2010四、实验步骤课程设计的前半部分是极小化OpenGl,这是准备工作课程设计的后半部分是在极小化的基础上进一步完成兔子与乌龟的程序设计。

1.前期准备工作:(1)创建Visual C++工程启动Microsoft Visual Studio 2010,创建一个新的工程,选择MFC应用程序,工程名为Fractal,应用程序类型为单文档,点击完成。

(2)编辑菜单在资源视图中打开Menu,双击IDR_MAINFRAME,出现菜单编辑窗口,删除文件菜单下的除“退出”外的所有子菜单,删除“编辑”菜单。

龟兔赛跑折线统计设计思路

龟兔赛跑折线统计设计思路一、引言龟兔赛跑是一个经典的故事,它既有趣又富有启发性。

折线统计是一种常见的数据可视化方法,能够直观地展示数据的变化趋势。

本文将结合龟兔赛跑故事,介绍如何利用折线统计来分析赛程和比赛结果,以及设计思路和应用场景。

二、赛程折线统计设计思路1. 数据收集:首先,需要收集龟兔赛跑的比赛数据,包括龟兔每一秒的位置信息。

这可以通过传感器等技术手段来获取,确保数据的准确性和实时性。

2. 数据处理:将收集到的位置信息进行处理,得到龟兔每秒的位置坐标。

可以使用编程语言或者数据处理软件来实现这一过程,确保数据的准确性和完整性。

3. 折线统计绘制:将处理后的龟兔位置数据进行折线统计绘制。

横轴表示时间,纵轴表示位置。

通过连接每个时间点上的位置,可以得到龟兔在赛程中的运动轨迹。

三、比赛结果折线统计设计思路1. 数据收集:同样地,需要收集龟兔赛跑的比赛数据,包括龟兔每一秒的位置信息。

2. 数据处理:将收集到的位置信息进行处理,得到龟兔每秒的位置坐标。

3. 比赛结果统计:根据龟兔的位置信息,可以计算出龟兔每秒的速度,并绘制折线图来展示其速度随时间的变化。

通过比较两者的速度折线图,可以得出比赛结果。

四、设计思路的应用场景1. 教育教学:通过将龟兔赛跑的故事与折线统计相结合,可以在数学或统计课程中引入有趣的例子,帮助学生理解和掌握折线统计的概念和应用。

2. 运动训练:对于长跑、马拉松等长时间的运动训练,可以利用折线统计来分析运动员的速度变化,了解其体能情况,并制定相应的训练计划。

3. 数据分析:在体育赛事、市场销售等领域,可以利用折线统计来分析和比较不同参赛选手或产品的表现,以便做出更准确的决策和预测。

五、总结折线统计是一种直观、有效的数据可视化方法,能够帮助我们更好地理解数据的变化趋势。

龟兔赛跑是一个生动有趣的例子,可以将其与折线统计相结合,既能够加深对折线统计的理解,又能够将统计学应用于实际问题中。

《龟兔赛跑》教案5篇

《龟兔赛跑》教案5篇(经典版)编制人:__________________审核人:__________________审批人:__________________编制单位:__________________编制时间:____年____月____日序言下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。

文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!并且,本店铺为大家提供各种类型的经典范文,如总结报告、心得体会、先进事迹、条据文书、合同协议、规章制度、应急预案、教学资料、作文大全、其他范文等等,想了解不同范文格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!Moreover, our store provides various types of classic sample essays, such as summary reports, insights, advanced deeds, normative documents, contract agreements, rules and regulations, emergency plans, teaching materials, essay summaries, and other sample essays. If you would like to learn about different sample formats and writing methods, please pay attention!《龟兔赛跑》教案5篇教案可以帮助教师更好地与家长进行沟通和合作,共同关注学生的学习和成长,详细的教案可以帮助我们设计丰富多样的教学活动,使课堂更加生动有趣,下面是本店铺为您分享的《龟兔赛跑》教案5篇,感谢您的参阅。

龟兔赛跑程序设计报告

目录前言 (1)工程概况 (1)2.1 项目所用的时间 (1)2.2项目负责人 (2)2.3 项目指导人 (2)正文 (2)3.1 设计的目的和意义 (2)3.2 目标与总体方案 (3)3.3 设计方法和内容 (3)...........................................错误!未定义书签。

...........................................错误!未定义书签。

...........................................错误!未定义书签。

3.4 设计创新与关键技术 (10)3.4.1 设计创新 (10)3.4.2 关键技术 (11)3.5结论 (11)致谢 (12)参考文献 (12)附录 (13)前言在科技日新月异的今天;电脑成为人的生活中不可缺少的一部分..作为计算机专业的学生;应该充分利用所学知识;把实际问题转移到电脑上去;通过电脑的编程;使复杂问题简单化;深奥问题浅显化;抽象问题具体化..在学过Java程序设计语言后;我们对计算机有了更深的了解..Java是一种简单的;跨平台的;面向对象的;分布式的;解释的;健壮的安全的;结构的中立的;可移植的;性能很优异的多线程的;动态的语言..当1995年SUN推出Java语言之后;全世界的目光都被这个神奇的语言所吸引..Java 不同于一般的编译执行计算机语言和解释执行计算机语言..它首先将源代码编译成二进制字节码bytecode;然后依赖各种不同平台上的虚拟机来解释执行字节码;从而实现了“一次编译、到处执行”的跨平台特性..本次课设我选择的是龟兔赛跑游戏的制作..这个游戏实际上主要是对我们JAVA 学习中的线程部分的考察;尤其是多线程的定义;运行等..同时还要保证游戏有一个真实的操作界面和人性化操作设计..在设计龟兔赛跑这个游戏中我也遇到了技术上的一些困难;但通过查阅资料;并且在老师的帮助下最终问题得以解决..正如龟兔赛跑这个故事一样;虽然我们在技术上不是很优秀;但只要有乌龟一样坚持不懈的精神;最终胜利到达终点..工程概况2.1 项目所用的时间从这个项目开始到结束总共历时12天..完成于2015年6月19日..2.2项目负责人孙肖肖;女;计算机科学与技术17-4;学生..2.3 项目指导人高贤强;男;信息工程学院教师;讲师..正文3.1 设计的目的和意义本设计要求学生开发一个龟兔赛跑游戏;主要是对学生多线程编程、游戏方案设计、游戏背景及动漫制作等能力进行培养锻炼;同时还要求保证游戏有一个真实的操作界面和人性化操作设计..此外;学生通过该题目的设计过程;可以初步应用软件系统的开发原理和开发方法;全面培养软件开发过程中的分析、设计、编码、测试及文档规范书写的能力;得到软件工程的训练;提高解决实际问题的能力..1有助于加深我们对Java程序设计这门课程的理解;我们在课堂上学的都是基础理论知识;对于如何用程序语言来描述所学知识还是有一定的难度..通过课程设计;我们可以真正理解其内涵..2有利于我们逻辑思维的锻炼;程序设计能直接有效地训练学生的创新思维、培养分析问题、解决问题的能力..即使是一个简单的程序;依然需要学生有条不紊的构思..3有利于培养严谨认真的学习态度;在程序设计的过程中;当我们输入程序代码的时候;如果不够认真细心;那么就可能导致语法错误;从而无法得出运行结果..那么;这个我们反复调试;反复修改的过程;其实也是对我们认真严谨治学的一个锻炼..3.2 目标与总体方案1用图形用户界面实现游戏界面;同时通过设置布局;背景;字体等来丰富界面;最大程度的模拟龟兔赛跑的场景..2能设置比赛时间;龟兔的数量等等;实现对比赛中龟兔的数量;比赛时间等参数的设置..3在任意时间段内龟兔的速度是随机的;为了模拟龟兔赛跑结果的不确定性;在游戏开始后乌龟和兔子的速度都是通过随机函数产生的;保证兔子比乌龟速度要快;兔子在赛跑途中看到乌龟落后下会偷懒睡觉的前提下给予乌龟;兔子以随机的速度;从而使得游戏的结果不确定;给用户更多的游戏的真实感..4开始比赛之后以动画显示赛跑过程;用户进入游戏界面后;先选择游戏模式;然后单击开始按钮;乌龟和兔子将会以随机的速度开始朝终点线爬行;通过重复刷新技术达到动画效果;给用户更逼真的感官..5系统的开发可以采用Java语言来实现;6在基本要求达到后;可进行创新设计;如改善算法性能、友好的人机界面.. 3.3 设计方法和内容硬件环境:一台清华同方电脑;其配置为:CPU: IntelR CoreTM i5-4570 3.2GHz 内存:4G 硬盘:500G 主板:4260LA-2922P软件环境:Windows 7旗舰版版本2009 Service Pack 1;并且安装了可供编程的eclipse-standard-kepler-SR1-win32赛跑的过程是两个比赛对象并行前进的过程;考虑到应用需求;我们可以利用多线程技术;所谓多线程就是指同时存在几个执行体;按几条不同的执行线索共同工作的情况;这与要求刚好吻合;Java语言对多线程提供强大的支持..用直观图形描述龟兔赛跑前进过程:每过一秒;兔子走过的文本框中增加三个“#”号;乌龟走过的路程文本框中增加一个“#”号..跑完路程结束线程;并显示各自跑完全程总共用的时间..一、设计分析第一步:设计良好游戏界面功能:实现基本的开始、退出游戏功能、选择游戏模式等..基本步骤:在实现过程中会遇到的问题及解决方案:1、背景面板上加载图片时需要重写paintComponent方法2、布局必须合理设置GridLayout不能改变组件的具体位置但可以缩放时相对位置不变..FlowLayout默认是占满第一行转向第二行;并且放大时相对位置改变..Null 布局可以自由布置组件位置和大小;但不易实现窗口放大时相对大小随之变化..若设置不合理;就可能出现多种错误..列如:无法插入背景图片;组建不能显现;组件位置与设计不符等等..3、添加背景面板监听重置各面板位置才能实现窗口放大时的相对位置不变第二步:线程类的设计功能:实现多只乌龟;兔子的多线程运行具体步骤:第二步会遇到的问题及解决方案: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.setLayoutnew FlowLayout;label1=new Label"欢迎使用该软件;1.0版本;不足之处;请多多指教";label2=new Label"*********东瑞制作*****程序员*****陈杰*********";label3=new Label;button1=new Button"进入游戏";button2=new Button"退出游戏";button1.addActionListenerthis;button2.addActionListenerthis;setLayoutnew BorderLayout;panel.addbutton1;panel.addlabel3;panel.addbutton2;addlabel1;BorderLayout.NORTH;addlabel2;BorderLayout.SOUTH;addpanel;BorderLayout.CENTER;}public void actionPerformedActionEvent e {ife.getSource==button1{ rabTor1=new RabTor1;//dispose;}else ife.getSource==button2{ System.exit0;}}}该模块主要是用来提供进入该程序游戏的初始图形用户界面;显示该程序的基本信息;提示用户进行操作..模块二:兔子线程模块该模块主要是实现兔子运行线程;类RabbitThread 继承了接口Runnable并实现其方法run;主要有两个功能的实现:1.来为兔子定义随机速度x1=x1+intMath.random*30;2.兔子动的实现方法ifthreadName.equals"rabbit"&&x1<=800int t1=0;t2=0;str1="rabbit";x1=x1+intMath.random*30;rab_time=rab_time+1;rab_road+=intMath.random*25;3.兔子获得一个随机的时间睡眠0—30秒str1="乌龟跑这么慢;我先睡一会";str2="哼;别以为自己是兔子就了不起你就睡吧";rabbit = getImage getCodeBase;"4.jpg";try{ t1=intMath.random*30000;Thread.currentThread.sleept1;}catch InterruptedException e{}模块三:乌龟线程模块该模块主要是实现乌龟运行线程;类TortoiseThread继承了接口Runnable并实现其方法run;主要功能的实现:乌龟移动实现的方法else ifthreadName.equals"tortoise"&&x2<=600{x2+=intMath.random*20;tor_road+=intMath.random*20;tor_time=tor_time+1;ifx2>140&&x2<240{ str2="tortoise"; }ifx2>255&&x2<=480{ str2="tortoise"; }ifx2>480&&x1<580{ str2="就快到终点了;我要坚持下去;坚持就是胜利";} 通过随机函数实现乌龟随机速度爬行..模块四:画布界面的设置与布局class Imagecanvas extends Canvas{Toolkit tool;Image image1;Imagecanvas{ setSize800;500;tool=getToolkit;image1=tool.getImage"6.gif";}public void paintGraphics g{ g.drawImageimage1;10;10;image1.getWidththis;image1.getHeightthis;thi s;}public Image getImage{ return image1;}}三、操作方法及试验结果:第一局比赛开始兔子领先兔子胜利第二局比赛开始兔子中途睡觉乌龟反超兔子;最终胜利本系统是一个基于多线程模式的龟兔赛跑小游戏;系统的规模很有限;功能实现也相对简单;但作为一个完整的系统;在整个过程中我还是学到了不少的知识;也对java语言有了较深的体会..通过本次课设试验;我对java的熟练程度得到了很大的提升;对包括多线程在内的java语言高级技术掌握的也更加熟练了;更对面向对象的分析思想;面向对象的设计方法有了直观的体会..同时;在游戏的制作过程中要用到很多课本上并未介绍到的知识;例如多线程队列事件等等;通过网络学习和与老师同学的交流使得自己对该部分的知识有了更广泛更深刻的体会..当然本次课设;通过我不断的尝试;不断的修改错误;解决问题;终于明白了程序员生活中天堂与地狱的感觉是什么了..虽然这个过程很苦;但我对java的熟练程度得到了很大的提升..同时;在游戏的制作过程中要用到很多课本上并未介绍到的知识;如当我遇到如何在一个Japplet类中创建另外一个Applet类的对象并运行线程的问题时;我纠结了很久没能找到解决办法;最终通过上网百度;不断尝试;不断错;在不断改;终于解决了..通过网络学习使得自己对该部分的知识有了更广泛更深刻的体会..这次的课程设计时间有点短;仅有二周的时间..在调试过程中屡调屡败的状态下;老师给了我热情的帮助;老师指导我们调试程序;说哪些是错的;哪些是多余的;哪些是必要的;一个杂乱无章的程序被修改得有条不紊;很显然结果也是最最正确的..本次系统的功能相对还比较单一;只能选择两种游戏模式;并且游戏也相对单调;缺乏趣味性;离一个真正的游戏软件还相差很远;以后如有时间;可以考虑去做一个真正的游戏软件..3.4 设计创新与关键技术3.4.1 设计创新1、用图形用户界面实现游戏界面;通过使用java中Jlabel;Jbutton;JtextArea;JcomboBox等swing组件来实现图形用户界面;同时通过设置布局;背景;字体等来丰富界面;最大程度的模拟龟兔赛跑的场景..2、能设置比赛时间;龟兔的数量等等..通过组合框组件的使用以及事件的订阅来实现用户对不同游戏模式的选择;在本程序中只是简单的设计了两种游戏模式供用户选择;也一定程度上实现了对比赛中龟兔的数量;比赛时间等参数的设置..3、在任意时间段内龟兔的速度是随机的..为了模拟龟兔赛跑结果的不确定性;在游戏开始后乌龟和兔子的速度都是通过随机函数产生的;当然;我们会在保证兔子比乌龟速度要快;兔子在赛跑途中看到乌龟落后下会偷懒睡觉的前提下给予乌龟;兔子以随机的速度;从而使得游戏的结果不确定;给用户更多的游戏的真实感..4、开始比赛之后以动画显示赛跑过程..用户进入游戏界面后;先选择游戏模式;然后单击开始按钮;乌龟和兔子将会以随机的速度开始朝终点线爬行;通过java中重复刷新技术达到动画效果;给用户更逼真的感官..3.4.2 关键技术游戏中提供了模式选择的功能;通过建立ItemSelect类来建立不同的游戏模式.. 建立兔子和乌龟线程;继承接口Runnable并正确的实现run方法..3.5结论程序的语法错误很容易查找和修改;但找出了语法错误并不代表程序已经完成..很多编译错误是由于函数名或变量名等程序对象的拼写错误引起的..在编写程序的过程中;需要认真仔细;以免出现拼写错误;增加调试程序的工序;浪费不必要的时间和精力..在这个过程中;我收获颇多;不仅理论知识掌握的更牢;实际动手能力也有所提高;再次让我感受到Java语言强大的功能;更激发了我Java语言的兴趣..如果说以前的编程仅仅是按照课本的要求进行的;那这个课程设计难度就提高了一个级别;它让们将所知道的知识联系到了一起;更加显示了程序的强大..致谢首先我要感谢我的老师在课程设计上给予我们的指导和提供给我们的支持和帮助;这是我们能顺利完成这次课程设计的主要原因;更重要的是老师帮我解决了许多技术上的难题;让我们能把程序做得更加完善..在此期间;我不仅学到了许多新的知识;而且也开阔了视野;提高了自己的设计能力..其次;我要感谢曾经帮助过我的同学;他们也为我解决了不少我不太明白的设计语言;和一些细节上的差错..本次设计是在高贤强老师的悉心指导下完成的;老师渊博的知识;严谨的治学态度;一丝不苟的工作作风;平易近人的性格都是我们学习的楷模..在论文的整理期间;高老师给了我们很多的意见和指导;才使得论文得以顺利的完成..最后再一次感谢所有在设计中曾经帮助过我的良师益友和同学..在此;我诚心的对所有帮助过我的老师同学们说一句:谢谢参考文献1 丁振凡Java语言使用教程. 北京邮件大学出版社;2006.92 丁振凡Java语言使用教程实验指导. 北京邮件大学出版社;2006.93 Bruce Eckel Java编程思想. 机械工业出版社 2007.64 耿祥义 JAVA2实用教程.清华大学出版社 2009.55 陈国君 java 程序设计基础第二版清华大学出版社6 刘艺;吴英.Java程序设计大学教程 M.北京:科学出版社;2005年.7 赵文靖.Java程序设计基础与上机指导.北京:清华大学出版社;2006年.8 吴其庆.Java程序设计实例教程.北京:冶金工业出版社;2006年.9 耿祥义;张跃平.Java基础教程第2版 M.北京:清华大学出版社;2007年.10 美Bruce Eckel. Thinking In Java.英文第4版.北京:机械工业出版社;200711 杨昭编着.二级Java语言程序设计教程.北京:中国水利水电出版社;200612 赵文靖编着.Java程序设计基础与上机指导.北京:清华大学出版社;200613 张海藩.软件工程导论第四、五版M.北京:清华大学出版社;2008.14Cay SandGaryC.Java2核心技术卷1:基础知识M.机械工业出版社;2003.15邓光伟;李阿午;朱志.Java2核心技术卷2:高级特性M.机械工业出版社;2000. 16WatsonK;NagelC;齐立波.C#入门经典M.清华大学出版社;2002.17张广彬;孟红蕊;张永宝.C++课程设计案例精编M.清华大学出版社;2005.18朱喜福.C++程序设计M.人民邮电出版社;2005.19宛延闿.实用C++程序设计教程M.机械工业出版社;2006.附录源程序package sxx;import java.awt.*;import ng.*;@SuppressWarnings{ "unused"; "serial" }class Imagecanvas extends Canvas{Toolkit tool;Image image1;Imagecanvas{ setSize800;500;tool=getToolkit;image1=tool.getImage"6.gif";}public void paintGraphics g{g.drawImageimage1;10;10;image1.getWidththis;image1.getHeightthis;this;}public Image getImage{ return image1;}}/*public class frame extends Frame implements ActionListener{Panel panel;Label label1;label2;label3;Button button1;button2;RabTor1 rabTor1;frame{panel=new Panel;panel.setLayoutnew FlowLayout;label1=new Label"欢迎使用该软件;1.0版本;不足之处;请多多指教";label2=new Label"*****东瑞制作*****程序员*****孙肖肖******";label3=new Label;button1=new Button"进入游戏";button2=new Button"退出游戏";button1.addActionListenerthis;button2.addActionListenerthis;//label1.setText"欢迎使用该软件;1.0版本;不足之处;请多多指教";//label2.setText"*****东瑞制作*****程序员*****孙肖肖******";setLayoutnew BorderLayout;panel.addbutton1;panel.addlabel3;panel.addbutton2;addlabel1;BorderLayout.NORTH;addlabel2;BorderLayout.SOUTH;addpanel;BorderLayout.CENTER;addWindowListenernew WindowAdapter{public void WindowClosingWindowEvent e{System.exit0;}};setBounds300;200;300;200;setVisibletrue;validate;}public void actionPerformedActionEvent e{ife.getSource==button2{ rabTor1=new RabTor1;}}}*/package sxx;@SuppressWarnings"serial"public class RabTor1 extends JApplet implements Runnable{Graphics g;int i=1;Image backpic;rabbit;tortoise;zhongdian;tortoise2;rabbit2;int x1=0;y1=80;j=0;int x2=0;y2=180;//图片的位移int rab_road=0;tor_road=0;//图片跑的路程double rab_time=0.0;tor_time=0.0;//图片移动用的时间String str1="rabbit";str2="tortoise";//给字符串付初值{ setSize800;400;}///为什么没用public void init//Applet中的初始化函数有类中构造函数的作用最先调用{backpic = getImagegetCodeBase; "起跑.jpg";//将图片对象与图片绑定rabbit = getImage getCodeBase;"兔子.gif";tortoise = getImagegetCodeBase; "乌龟.jpg";zhongdian = getImagegetCodeBase; "乌龟赢了.png";tortoise2 = getImagegetCodeBase;"小乌龟.jpg";rabbit2=getImagegetCodeBase;"兔子在前.jpg";//rabbit3=getImagegetBase;"3.jpg";}public void paintGraphics g//此函数第四个调用{ this.g=g;setSize760;360;ifi==1{ g.drawImagebackpic; 0; 0; 800; 600; this;g.setColorColor.green;g.fillRect0; 0; 1600; 800;//填充矩形g.setColorColor.red;g.drawString"-————背景音乐————孙肖肖制作";30;30;g.drawLine0;75;600;75;//画跑道g.drawLine0;160;600;160;g.drawLine0;260;600;260;g.drawLine603;80;603;300;g.drawRoundRect0;10;680;300;60;60;//圆角矩形g.setColorColor.black;g.drawImagerabbit; x1; y1; 60; 60; this;g.drawStringstr1; x1; y1+80;g.drawImagetortoise; x2; y2; 60; 60; this;g.drawStringstr2; x2; y2+80;g.drawImagezhongdian; 600; 0; 60; 80; this;}else ifi==2g.drawImagetortoise2; 600; 180; 60; 60; this;/*else ifi==3{ int x3=245;y3=80;g.drawImagerabbit2;600;80;60;60;this;}else{ int x4=490;y4=80;g.drawImagerabbit2;x4;y4;60;60;this;}*/}public void updateGraphics g//用不到{}public void start//此函数第二个调用{Thread rab = new Threadthis; "rabbit";//创建一个兔子线程;this表示在这个类中找.rabbit是线程的名子.Thread tor = new Threadthis; "tortoise";rab.start;//线程对象调用start方法然后调用对应的run方法tor.start;}/*public void stop{ try{rab.stop;rab=null;tor.stop;tor=null;}catchException e{}}*/ //为什么没用//public void destroy//{ }public void run//此函数第三个调用{URL codebase=getCodeBase;AudioClip audio1=getAudioClipcodebase;"龟兔赛跑.wav";g.drawString"-————背景音乐————鲁晶晶制作";30;30;audio1.loop;boolean stop=false;//标志;此函数的精典之处.控制兔子;龟什么时候停whilestop{try{Thread.currentThread;Thread.sleep1000;//当前线程调用sleep函数.}catch InterruptedException ex{}String threadName=Thread.currentThread.getName;//取得当前线程的名子.ifthreadName.equals"rabbit"&&x1<=800//兔子动的实现方法{ int t1=0;t2=0;str1="rabbit";x1=x1+intMath.random*30;rab_time=rab_time+1;rab_road+=intMath.random*25;ifx1>=120&&x1<=140&&x1<x2{str1="乌龟跑这么慢;我肯定能追上他我先睡一会"; str2="哼;别以为自己是兔子就了不起你就睡吧"; rabbit = getImage getCodeBase;"兔子睡觉.jpg";}ifx1>=120&&x1<=130{str1="乌龟跑这么慢;我先睡一会";str2="哼;别以为自己是兔子就了不起你就睡吧"; rabbit = getImage getCodeBase;"兔子睡觉.jpg"; try{t1=intMath.random*30000;Thread.currentThread;Thread.sleept1;}catch InterruptedException ex{}rab_time+=doublet1/1000;}ifx1>140{ rabbit = getImage getCodeBase;"rabbit.gif";}ifx1>=240&&x1<=250{ str1="乌龟跑这么慢;让我再睡一会吧";str2="哼;别以为自己是兔子就了不起你就睡吧";rabbit = getImage getCodeBase;"兔子睡觉.jpg";try{t2=intMath.random*20000;Thread.currentThread;Thread.sleept2;}catch InterruptedException ex{}rab_time+=doublet2/1000;}ifx2>=600&&x1<600 //乌龟已经到终点{stop=true;str1="啊我输了这次不算;因为我睡觉了;再比一次";str2="我到终点啦总用时秒:"+tor_time;}ifx1>=600&&x2<600{stop=true;str1="哈哈;我赢啦;还想跟我比总用时秒:"+rab_time;//兔子到终点rabbit = getImage getCodeBase;"兔子赢了.jpg";//换图片str2="我要坚持"; //乌龟继续跑}ifx1>=600&&x2>=570{ stop=true;str2="虽然我失败了;但我并不会气馁"+"总用时秒:"+tor_time;}}else ifthreadName.equals"tortoise"&&x2<=600//乌龟移动实现的方法{x2+=intMath.random*20;tor_road+=intMath.random*20;tor_time=tor_time+1;ifx2>140&&x2<240{ str2="tortoise"; }ifx2>255&&x2<=480{ str2="tortoise"; }ifx2>480&&x1<580{str2="就快到终点了;我要坚持下去;坚持就是胜利";}ifx2>=600&&x1<600{i=2;str2="我到终点啦总用时秒:"+tor_time;str1="不这一局不算数;我刚才睡觉了才输的;在比一局的话;我肯定能赢";stop=true;repaint;new Imagecanvas;}}}}}。

龟兔赛跑游戏设计

*******************实践教学*******************兰州理工大学计算机与通信学院2014年春季学期工程开发综合训练课程设计说明书题目:龟兔赛跑游戏设计与实现专业班级:计算机科学与技术11级4班姓名:姚亮学号: 11240404指导教师:刘树群成绩:目录摘要 (1)1.问题描述 (2)2.系统设计 (3)3.系统实现 (5)4.系统测试 (9)5.总结 (14)参考文献 (15)摘要本次课设我的题目是龟兔赛跑游戏设计与实现。

而这个游戏本身实际上主要是对我们JAVA学习中的线程部分的运用,尤其是多线程的定义、运行,Java小程序的编写,图形界面的实现,Java小程序中图片的插入等。

同时还要保证此游戏有一个较真实的操作界面和人性化操作设计,所以我在设计过程中重点强调了对线程部分内容的复习和实践。

在设计龟兔赛跑这个游戏中我也遇到了许多的困难,但通过查资料、阅读大量的文献、向老师请教以至于最终问题得以解决。

正如龟兔赛跑这个故事一样,虽然我在技术上不是很优秀,但是我不会就此放弃,我会继续努力的学习知识来完善自身的技术。

关键词:Java小程序;多线程;图形界面;画图;背景音乐1.问题描述对于龟兔赛跑系统来说,开发的总体任务是实现游戏的可操作性、美观性、及时性。

开发过程遵循软件工程规范,可采用结构化或面向对象分析设计方法。

最主要是对学生多线程编程、游戏方案设计、游戏背景及动漫制作等能力进行培养锻炼和对所学的知识进行加深理解,同时还要求保证游戏有比较一个真实的操作界面和人性化操作设计。

另外,通过该题目的设计过程,可以初步应用软件系统的开发原理和开发方法,全面培养软件开发过程中的分析、设计、编码、测试及文档规范书写的能力,加深所学的知识,得到软件工程的训练,提高解决实际问题的能力。

2.系统设计本系统采用多线程机制来完成,主要有界面模块,乌龟模块和兔子模块1.功能:实现基本的开始、退出游戏功能、选择游戏模式等基本运行步骤:图2-1在实现过程中会遇到的问题及解决方案:1.背景面板上加载图片时需要重写paint方法2.布局根据需要设置(BorderLayout或FlowLayout FowLayout)3.添加背景面板监听重置各面板位置才能实现窗口放大时的相对位置不变2各模块.功能:实现乌龟,兔子的多线程运行具体的步骤:图2-2第二步会遇到的问题及解决方案:1.建立兔子线程,继承接口Thread并正确的实现move()方法。

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