ImageVerifierCode 换一换
格式:DOCX , 页数:6 ,大小:18.51KB ,
资源ID:17656158      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17656158.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言的游戏教学Word文档下载推荐.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言的游戏教学Word文档下载推荐.docx

1、 “游戏教学”是旨在用一种寓教于乐的高效学习方法,利用人们“爱玩”的天性,让学习者在“玩”中学习,从而充分调动学习者的学习兴趣,使学习的效率和主动性得到极大的提高。正如苏格拉底的名言:教育不是灌输,而是点燃火焰!一、AI-CODE游戏系统简介 AI-CODE游戏教育平台是一套全新的教育平台,以寓教于乐的游戏教育方式,打破了传统的教育模式,让大家在非压迫的竞技中不知不觉地提高自己的计算机程序设计水平和相关的数学、物理、网络、人工智能等学科知识的应用水平。AI-CODE为程序和算法设计的学习和实践提供了全方位的环境,由于其游戏主题的有趣性、直观性,使学生在学习的同时感到了快乐和成就感,而在娱乐的同

2、时发现自己以前的知识不够用,所以为了得到更多的快乐和成就感,便又投入于学习中,让学生在玩,学习,玩,学习的循环的过程中不断提高自己的程序设计和策略算法设计的水平,整个过程是一个自主的学习过程,是一种逐渐“迷上”的过程,而非被强迫的。AI-CODE学习三者的关系如下图:AI-RCJ是AI-CODE中一套虚拟足球机器人的制作和竞技仿真的教育平台,并实现了C、C+、Java、C#等多种编程语言同台竞技。为了让自己的足球在竞技中具有良好的攻防性和机动性,必须给虚拟足球机器人赋予一定的智能,智能化程度的高低取决于使用者数学、物理、计算机等相关学科知识的灵活运用程度。AI-RCJ界面如下图:二、快乐的学习

3、之旅 下面在“AI-RCJ”教育平台上,以几个简单的例子展示C语言的快乐学习之旅,在这些快乐的有“成就感”的竞技中逐渐掌握C程序设计语言一些关键语法,体会到“游戏教学”的乐趣。 (一)我的第一个会动的机器人 在AI-RCJ教育平台中我们只须书写几句简单的代码,就立刻可以看到一个会动的“足球机器人”,会让我们马上感到有些小小的“成就感”,并吸引我们继续地深入。#include /* *机器人执行函数 */ void run() /*在这里添加控制机器人的代码*/ doMoveTo(30, 30);/* 移动到坐标点(30,30) */ 这段代码代表了一个“函数”,这个函数的名字叫做 run。函数

4、是 c 语言程序的一个主要组成部分,每个函数都有自己的名字,并且可以完成相应的功能。run函数只由单个语句组成,doMoveTo(30, 30)完成控制机器人移动到(30, 30)这个坐标点。 (二)让机器人会撞球 要让机器人撞击足球就要知道足球的坐标。在程序中调用 getBallX 和 getBallY 可以获取足球的坐标。void run(void) double ballX,ballY;/* 定义两个变量 */ ballX = getBallX();/* 获得足球的x坐标 */ ballY = getBallY(); /* 获得足球的y 坐标 */ doMoveTo(ballX,ball

5、Y);/*向足球撞击*/ 在 run 函数里面,第一条语句定义了两个“变量”,变量是 c 语言中的一个基本元素,可以用它们来存放不同的数值,程序设计中变量的作用和代数中的未知数的作用类似。在使用一个变量之前,必须先定义它,“double ballX, ballY;”这条语句完成了变量的定义。这两个变量的名字是 ballX 和 ballY,以后可以通过这两个名字来使用变量,就像使用函数的名字来调用一个函数一样。变量是有“类型”的,变量的类型规定了变量可以存放什么样的数据,ballX 和 ballY 这两个变量的类型是 double,表示他们可以存放浮点数,也就是我们通常所说的小数。语句 ball

6、X = getBallX()使用了变量 ballX,这是一个“赋值语句”,等号“=”将赋值语句分成了左右两部分,等号的左边一般是一个变量,等号表示赋值操作,就是把右边的数值存放到左边的变量当中,在这里等号并不是要表示两边的内容相等。 在这条赋值语句中,等号右边的部分是一个函数调用,被调用的函数叫 getBallX,这个函数是一个有“返回值”的函数,这表示调用这个函数后,我们可以得到一个数值,这个数值代表了函数执行的结果。getBallX函数的返回值是足球的 ballX坐标。赋值语句“ballX = getBallX();”把 getBallX函数的返回值保存到了变量 ballX 里,执行这个语

7、句的时候,实际上发生了两件事,首先是调用 getBallX 函数,并取得函数的返回值,然后就是将这个返回值保存到变量 ballX里。语句 ballY = getBallY()是类似的,这条语句把对手的 ballY坐标保存到的变量 y里。现在知道了足球当前的坐标,语句“doMoveTo(ballX, ballY);”完成了向足球所在位置撞击的工作。在这里我们将变量 ballX, ballY作为参数传递给 doMoveTo 函数,因为变量 ballX, ballY 里存放了足球所在位置的坐标,通过用这两个变量作为参数调用doMoveTo 函数,也就是将足球所在位置作为撞击的目标点,实现向足球所在位

8、置撞击。但我们看到机器人在刚开始时撞击了一下足球,之后便停止不动。如何能让机器人能不断地撞球呢?我们用一种新的语句:循环语句,实现一个不断撞击足球的机器人。double ballX, ballY; /* 定义两个变量 */ while(1) ballX = getBallX();doMoveTo(ballX,ballY);就这样让我们体会到循环语句的“威力”! (三)让机器人聪明起来避免“乌龙”球 好了,我们的机器人已经能动起来啦,但如何让我们的机器人变“聪明”起来呢?能实现一个可以根据自己的进攻方向和足球的运动方向来尽量避免踢“乌龙”球的机器人。我们会不知不觉地想办法去不断学习,让我们机器人

9、越来起“聪明”! void run(void) int shoot;/*定义控制变量*/ double ballHeading;/*定义变量,存储球的运动方向*/ double heading;/*定义变量,存储机器人的进攻方向*/ /*定义变量,存储球的ballX,ballY坐标*/ double goalMin,goalMax; double courtWidth,courtHeight;double goalSize; /*定义变量,存储球门的大小(宽度)*/ /*定义变量,存储球的运动直线方程ballY=k*ballX+b中的b和k*/ double b,k;heading =getA

10、ttack();/*得到机器人的进攻方向*/ courtWidth=getCourtWidth();/*得到场地的宽度*/ courtHeight=getCourtHeight();/*得到场地的高度*/ goalSize=getGoalSize();/*得到球门的大小*/ goalMin=courtHeight/2-goalSize/2;goalMax=courtHeight/2+goalSize/2; while(1) /*求出足球的运动直线*/ ballHeading = getBallHeading();k = tan(ballHeading);b = ballY - k*ballX;

11、/*如果机器人是由左向右进攻,而且当前球的运动方向是由右向左运动*/ if(heading0 & ballHeadingPI/2 & ballHeadingPI*3/2) if( goalMin50*k + b) shoot = 0; else shoot = 1; /*如果机器人是由右向左进攻,而且当前球的运动方向是由左向右运动*/ else if(heading=0 &PI/2 | ballHeading3*PI/2) if(goalMink*courtWidth + b k*courtWidth + bgoalMax) shoot = 0; shoot = 1;/*其他情况 */ els

12、e shoot = 1;if(shoot=1) doMoveTo(ballX,ballY else doTurnTo(PI*3/2); doMoveBack(300);通过循环语句(while)和选择语句(if)等知识的综合应用,让我们的机器人变得越来越“聪明”啦。接着下来,我们又会想让我们的机器人变成有策略的进攻和防守,团队协作,最后让整个“足球”比赛变得越来越有意思,学习变得越来越有趣。三、结语 AI-CODE中的AI-RCJ让学生在这“虚拟足球竞技”的教育平台上,让自己的机器人动起来,不断地撞球,聪明起来,有策略的进攻和防守等一系列有“成就感”的快乐游戏中,逐渐“迷上”程序和算法设计。为了更好地“玩”,不断地学习,不断地提高自己的计算机程序设计水平和策略算法设计水平,真正体会到寓教于乐的乐趣!参考文献 1龚睿AI-CODE SYSTEMS在智能机器人教学中的应用J2004 2沙有威程序设计教学的新载体智能机器J2002 3中鸣数码科技有限公司AI-CODE使用手册EB 4杜飞雪,陈胜峰C+语言学习利器M中国水利水电出版社,2007

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1