免费教程_免费网赚教程_破解版软件-寂涯网络学习基地

当前位置: 主页 > 系统综合 > 各类编程 > 基于c语言的电脑机器人足球进攻程序设计(3)

基于c语言的电脑机器人足球进攻程序设计(3)

时间:2012-05-12 22:24来源:未知 整理:寂涯网络 点击:


程序详细代码:
void qianwulong()
f
if(g_degree>=90&&g_degree<l 30)
{
if(g_Q_Maxlndex<5)
l
iffg-Q—Maxlndex==1)
setMotor(一40,70}:
if(g_Q_Maxlndex==2)
setMotor(40,80):
if(g_Q—Maxlndex==3)
setMotor(100,100}:
if(g_Q_Maxlndex==4)
setMotor(1 00,50):
}
else
{
if(g—ir_qian<70。1 6)
(
if(g—Q_Maxlndex==5)
setMotor(40,一60):
if(g~Q—Maxlndex==6)
setMotor(1 00,50):
if(g—Q-Maxlndex==7)
setMotor(1 00,40):
)
else
(
if(g~阻Maxlndex==5)
setMotor(60,~30):
ifIg~Q—Maxlndex==6)
setMotor(60,一40}:
if(g—Q_Maxlndex==7)
setMotor(60,一40):
)
}
}
else
if(g_degree<270&&g_degree>230)
{
if(g—Q-Maxlndex>3)
{
if(g—Q-Maxlndex==7)
setMotor(70,一柏):
if(g—Q_Maxlndex==6)
setMotor(80,40):
if《g-Q—Maxlndex==5}
setMotor(1 OO,1 OO):
if(g_QMaxlndex==4)
setMotor(50,1 00):
}
else
{
if(g_ir_qian<70。1 6)
{if(g_Q_Maxlndex==3)
setMotor(一60,30):
if(g一也Maxlndex==2)
setMotor(50.1 oo):
if(g_Q_Maxlndex==1)
setMotor(40.1 00):
}
else
{
if(g_Q—Maxlndex==3)
setMotor(30,-60);
if(g_Q_Maxlndex==2)
setMotor(40,一60):
if(g_Q_Maxlndex==l}
setMotor(40,一60):
1
)
)
else
W机器人和球及球门的相对位置是在一条直线上
if《“r_qian>2500&&g_fireQ<G—NEERl
{
return;
}
{
T1=getSysTimeO;
if(g—Q_Maxlndex==7)
Motor(80.一1 0):
else if(g—Q—Maxlndex==l} setMotor(-1 0,80):
else if(g一皿Maxlndex==6) setMotor(90,1 00);
else if(g_aLMaxlndex==2) setMotor(1 00,90):
else
if(gfireQ>G—NEER)
W乌龙球时,机器人先靠近球时要进行两
∥侧拨球
if(g_degree<1 80&&g_ir_you>700)
{setMotor(一30,70):)
else if(g—degree>180&&g—ir_zuo>700}{setMotor(70,一30):}
)
else
{
if(g—Q—Maxlndex==5)
{
if(g—ir_zuo<60。1 6l
setMotor(70,1 OO):
else
setMotor(1 00J O):
}
else if(g—Q—Maxlndex==3)
{
if(g—Jr_you<80’1 6)
setMotor(1 00,70):
else
setMotor(1 0.1 00):
}
else
{
int var3=get_Q_CPI(3);
int var5=get——Q——CPI(5);
if(var3>var5&&g._ir_.you<60。1 6)setMotor(80,1 0):
else setMotor(1 0,80):
}
l
l
l
l
l
6关于死球处理
关于死球,在球场上很常见。并且出现的机率还很高。出
现死球时,机器人马达在堵转。很容易烧坏马达或马达驱动
板,为了能够很好地进球,那么机器人处理好死球就是一个很
重要的问题了.要解决这个问题就要清楚容易出现死球的地
方.根据以往比赛的情况发现。球在球场4个角落时就很容易
出现死球.当球在对方的两个角落时.机器人要能把球尽可能
地拨向对方球门附近,再找机会攻进对方球门。在这段程序
中,利用条件qian>40&&(FireQ>130)&&(b>20011b<160)&&
(Maxlndex>=3&&MaxIndex<=5)和 (T2—T1>50)&&qian>
g__qianD&&(FireQ>g_near)IIT2-TI>350来判断机器人是否是处
于死球状态,如果是死球状态.且时间还不到规定时间.机器
人就尽量进行勾球,依据指南针方位判断,当指南针方位小于
160度时,机器人就尽量向左拨球(也就是向对方场地拨球);
当指南针方位大于200度时,机器人就尽量向右拨球(也就是
向对方场地拨球),然后找机会将球踢到对方半场或球门。
死球处理程序如下:
void qian_CDO//前勾球
{
if(g_fireQ>G—NEER&&g_Q_Maxlndex>=3&&g一吐 Maxlndex<=5J
if I《g—degree<=90 IIg_degree>=270)&&g_ir qian>
70’1 6&&getSysTime0一T1>50l
if(g—ir_qian>l 50’1 6)g』1++:
)
else gJl=O:
if(g_T1>70)
l
setLcdBack(1):
gJl=O:

本页地址 http://www.jybase.net/biancheng/20120512921.html

百度搜索更多

谷歌搜索更多

顶一下
(1)
33.3%
踩一下
(2)
66.7%
------分隔线----------------------------

评价:
昵称: 验证码:点击我更换图片
推荐内容
赞助商
赞助商


关于本站免责声明视频更新google百度地图视频地图RRS订阅

如有什么问题请在本站留言,或发邮件到 hxt167#foxmail.com