您的位置:首页 > 其它

有移动规则2

2015-09-22 12:17 232 查看
        

import org.robochina.airobot.tank.*;
import org.robochina.math.*;
import java.awt.geom.*;
import java.util.*;

/**
* 这个类对应一个机器人,根据需要实现相应的Action处理函数,
* 就可以订制自己的机器人。
*/
public class Text extends SimpleRobot
{
//首先需要定义两个速度一个是移动的速度,和转动的速度
private static final double TURN_VELOCITY = Math.toRadians(3);
private static final double GO_VELOCITY = 5;
//根据这两个变量可以计算出来弧半径
private static final double R = GO_VELOCITY/TURN_VELOCITY;

/**
* 每个单位时间都会触发
*/
public void onTick(TickAction action){
move(GO_VELOCITY);
turn(TURN_VELOCITY);
waitJiao(Math.toRadians(270));
turn(0);
waitDistance(R*2);
turn(-TURN_VELOCITY);
waitJiao(Math.toRadians(270));
turn(0);
waitDistance(R*2);

}

/**
* 当开始一轮新的比赛时触发
*/
public void onRoundBegin(RoundBeginAction action){

}
//等待这个机器人走过这条直线的长度

private void waitDistance(double displance){
int time =(int) (displance/GO_VELOCITY);
for (int i = 0; i <time; i++) {
delay();
}

}

private void waitJiao(double jiaodu){
int time =(int) (jiaodu/TURN_VELOCITY);
for (int i = 0; i <time; i++) {
delay();
}

}

/**
* 当一轮比赛结束时触发
*/
public void onRoundFinish(RoundFinishAction action){}

/**
* 当开始一场新的比赛时触发
*/
public void onMatchBegin(MatchBeginAction action){}

/**
* 当整场比赛结束时触发
*/
public void onMatchFinish(MatchFinishAction action){}

/**
* 当有队友向自己发送消息时触发
*/
public void onMessageReceived(MessageReceivedAction action){}

/**
* 当撞到其它机器人时触发
*/
public void onHitRobot(HitRobotAction action){}

/**
* 当撞到墙时触发
*/
public void onHitWall(HitWallAction action){}

/**
* 当任意一个机器人开火时触发
*/
public void onFire(FireAction action){}

/**
* 当有机器人死亡时触发
*/
public void onRobotDeath(RobotDeathAction action){}

/**
* 当自己的子弹击中敌人时触发
*/
public void onBulletHit(BulletHitAction action){}

/**
* 当被别人的子弹击中时触发
*/
public void onHitedByBullet(HitedByBulletAction action){}

/**
* 机器人程序入口
* @param args
*/
public static void main(String[] args)
{
startup(args, new Text());
}
}

2:

import org.robochina.airobot.tank.*;
import org.robochina.math.*;
import java.awt.geom.*;
import java.util.*;

/**
* 这个类对应一个机器人,根据需要实现相应的Action处理函数,
* 就可以订制自己的机器人。
*/
public class Firgure extends SimpleRobot
{
//首先需要定义两个速度一个是移动的速度,和转动的速度
private static final double TURN_VELOCITY = Math.toRadians(3);
private static final double GO_VELOCITY = 5;
//根据这两个变量可以计算出来弧半径
private static final double R = GO_VELOCITY/TURN_VELOCITY;

/**
* 每个单位时间都会触发
*/
public void onTick(TickAction action){}

/**
* 当开始一轮新的比赛时触发
*/
public void onRoundBegin(RoundBeginAction action){

while (true) {
move(GO_VELOCITY);
turn(TURN_VELOCITY);
waitJiao(Math.toRadians(270));
turn(0);
waitDistance(R*2);
turn(-TURN_VELOCITY);
waitJiao(Math.toRadians(270));
turn(0);
waitDistance(R*2);

}

}
//等待这个机器人走过这条直线的长度

private void waitDistance(double displance){
int time =(int) (displance/GO_VELOCITY);
for (int i = 0; i <time; i++) {
delay();
}

}

private void waitJiao(double jiaodu){
int time =(int) (jiaodu/TURN_VELOCITY);
for (int i = 0; i <time; i++) {
delay();
}

}

/**
* 当一轮比赛结束时触发
*/
public void onRoundFinish(RoundFinishAction action){}

/**
* 当开始一场新的比赛时触发
*/
public void onMatchBegin(MatchBeginAction action){}

/**
* 当整场比赛结束时触发
*/
public void onMatchFinish(MatchFinishAction action){}

/**
* 当有队友向自己发送消息时触发
*/
public void onMessageReceived(MessageReceivedAction action){}

/**
* 当撞到其它机器人时触发
*/
public void onHitRobot(HitRobotAction action){}

/**
* 当撞到墙时触发
*/
public void onHitWall(HitWallAction action){}

/**
* 当任意一个机器人开火时触发
*/
public void onFire(FireAction action){}

/**
* 当有机器人死亡时触发
*/
public void onRobotDeath(RobotDeathAction action){}

/**
* 当自己的子弹击中敌人时触发
*/
public void onBulletHit(BulletHitAction action){}

/**
* 当被别人的子弹击中时触发
*/
public void onHitedByBullet(HitedByBulletAction action){}

/**
* 机器人程序入口
* @param args
*/
public static void main(String[] args)
{
startup(args, new Firgure());
}
}


      

import org.robochina.airobot.tank.*;
import org.robochina.math.*;
import java.awt.geom.*;
import java.util.*;

/**
* 这个类对应一个机器人,根据需要实现相应的Action处理函数,
* 就可以订制自己的机器人。
*/
public class Firgure extends SimpleRobot
{
//首先需要定义两个速度一个是移动的速度,和转动的速度
private static final double TURN_VELOCITY = Math.toRadians(3);
private static final double GO_VELOCITY = 5;
//根据这两个变量可以计算出来弧半径
private static final double R = GO_VELOCITY/TURN_VELOCITY;

/**
* 每个单位时间都会触发
*/
public void onTick(TickAction action){}

/**
* 当开始一轮新的比赛时触发
*/
public void onRoundBegin(RoundBeginAction action){

while (true) {
move(GO_VELOCITY);
turn(TURN_VELOCITY);
waitJiao(Math.toRadians(360));
turn(0);
waitDistance(R*2);

}

}
//等待这个机器人走过这条直线的长度

private void waitDistance(double displance){
int time =(int) (displance/GO_VELOCITY);
for (int i = 0; i <time; i++) {
delay();
}

}

private void waitJiao(double jiaodu){
int time =(int) (jiaodu/TURN_VELOCITY);
for (int i = 0; i <time; i++) {
delay();
}

}

/**
* 当一轮比赛结束时触发
*/
public void onRoundFinish(RoundFinishAction action){}

/**
* 当开始一场新的比赛时触发
*/
public void onMatchBegin(MatchBeginAction action){}

/**
* 当整场比赛结束时触发
*/
public void onMatchFinish(MatchFinishAction action){}

/**
* 当有队友向自己发送消息时触发
*/
public void onMessageReceived(MessageReceivedAction action){}

/**
* 当撞到其它机器人时触发
*/
public void onHitRobot(HitRobotAction action){}

/**
* 当撞到墙时触发
*/
public void onHitWall(HitWallAction action){}

/**
* 当任意一个机器人开火时触发
*/
public void onFire(FireAction action){}

/**
* 当有机器人死亡时触发
*/
public void onRobotDeath(RobotDeathAction action){}

/**
* 当自己的子弹击中敌人时触发
*/
public void onBulletHit(BulletHitAction action){}

/**
* 当被别人的子弹击中时触发
*/
public void onHitedByBullet(HitedByBulletAction action){}

/**
* 机器人程序入口
* @param args
*/
public static void main(String[] args)
{
startup(args, new Firgure());
}
}


    这个代码是走一个圆走一条直线,一直重复下去
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: