浅谈“C语言”的游戏教学
- 作者:admin 来源:网络 日期:2009-3-30 21:31:59
(三)让机器人聪明起来——避免“乌龙”球
好了,我们的机器人已经能动起来啦,但如何让我们的机器人变“聪明”起来呢?能实现一个可以根据自己的进攻方向和足球的运动方向来尽量避免踢“乌龙”球的机器人。
我们会不知不觉地想办法去不断学习,让我们机器人越来起“聪明”!
voidrun(void)
{
intshoot;/*定义控制变量*/
doubleballHeading;/*定义变量,存储球的运动方向*/
doubleheading;/*定义变量,存储机器人的进攻方向*/
doubleballX,ballY;/*定义变量,存储球的ballX,ballY坐标*/
doublegoalMin,goalMax;
doublecourtWidth,courtHeight;
doublegoalSize;/*定义变量,存储球门的大小(宽度)*/
/*定义变量,存储球的运动直线方程ballY=k*ballX+b中的b和k*/
doubleb,k;
heading=getAttack();/*得到机器人的进攻方向*/
courtWidth=getCourtWidth();/*得到场地的宽度*/
courtHeight=getCourtHeight();/*得到场地的高度*/
goalSize=getGoalSize();/*得到球门的大小*/
goalMin=courtHeight/2-goalSize/2;
goalMax=courtHeight/2+goalSize/2;
while(1){
/*求出足球的运动直线*/
ballX=getBallX();
ballY=getBallY();
ballHeading=getBallHeading();
k=tan(ballHeading);
b=ballY-k*ballX;
/*如果机器人是由左向右进攻,而且当前球的运动方向是由右向左运动*/
if(heading0ballHeadingPI/2ballHeadingPI*3/2){
if(goalMin50*k+bgoalMax50*k+b){
shoot=0;
}else{
shoot=1;
}
}
/*如果机器人是由右向左进攻,而且当前球的运动方向是由左向右运动*/
elseif(heading=0
(ballHeading=0ballHeadingPI/2
||ballHeading2*PIballHeading3*PI/2))
{
if(goalMink*courtWidth+b
k*courtWidth+bgoalMax){
shoot=0;
}else{
shoot=1;
}
}
/*其他情况*/
elseshoot=1;
if(shoot==1){
doMoveTo(ballX,ballY
}else{
doTurnTo(PI*3/2);
doMoveBack(300);
}
}
}
通过循环语句(while)和选择语句(if)等知识的综合应用,让我们的机器人变得越来越“聪明”啦。接着下来,我们又会想让我们的机器人变成有策略的进攻和防守,团队协作。。。。。。,最后让整个“足球”比赛变得越来越有意思,学习变得越来越有趣。http://www.dxlww.net代写论文网
四、结语
AI-CODE中的AI-RCJ让学生在这“虚拟足球竞技”的教育平台上,让自己的机器人动起来,不断地撞球,聪明起来,有策略的进攻和防守。。。。。。等一系列有“成就感”的快乐游戏中,逐渐“迷上”程序和算法设计。为了更好地“玩”,不断地学习,不断地提高自己的计算机程序设计水平和策略算法设计水平,真正体会到寓教于乐的乐趣!
参考文献
[1]龚睿.AI-CODESYSTEMS在智能机器人教学中的应用[J].2004.
[2]沙有威.程序设计教学的新载体——智能机器[J].2002.
[3]中鸣数码科技有限公司.AI-CODE使用手册[EB].
[4]杜飞雪,陈胜峰.C++语言学习利器[M].中国水利水电出版社,2007.
代写论文联系方式
联系QQ:904272800

联系信箱:904272800@qq.com

代写论文导航
客户、写手申请单
最新论文
热点论文