Robocode:基礎知識及入門示例

參考

百度文庫-Robocode

定義

機器人:一些可以旋轉、移動、射擊、偵測的小型坦克。

機器人的底盤、火炮和雷達系統都可以獨立運動,也可以相互“鎖定”,一起移動。換句話說,如果將雷達向下鎖定,那麼它將隨火炮一起移動;如果火炮向下鎖定,它將隨機器人的底盤一起移動。

座標系

在這裏插入圖片描述在這裏插入圖片描述

簡單的API

// 向前和向後移動
ahead()
back()

// 開火
fire()// 控制火炮是否向下鎖定
setAdjustGunForRobotTurn()// 控制雷達是否向下鎖定
setAdjustRadarForGunTurn()// 底盤旋轉
turnRight()
turnLeft()// 旋轉火炮
turnGunRight()
turnGunLeft()// 旋轉雷達反射鏡
turnRadarLeft()
turnRadarRight()

可Overwrite的方法

// 當你的機器人被擊中時
onHitByBullet()// 當你的機器人與其它機器人相撞時
onHitRobot() 

 
// 當撞牆時
onHitWall() 

 
// 用雷達掃描到其他機器人時
onScannedRobot()

一個簡單示例

package forg;

import robocode.HitRobotEvent;
import robocode.Robot;
import robocode.ScannedRobotEvent;

/**
 * @author 無名Joker
 * @date 2020-03-02 15:47
 * @description
 */

public class WuMingRobot extends Robot {
    @Override
    public void run(){
        while (true){
            // 前進100像素
            ahead(100);
            // 右旋火炮360度
            turnGunRight(360);
            // 後退100像素
            back(100);
            // 左旋火炮360度
            turnGunLeft(360);
        }
    }

    @Override
    public void onScannedRobot(ScannedRobotEvent event) {
        // 掃描到敵人時開火
        fire(100);
    }

    @Override
    public void onHitRobot(HitRobotEvent event) {
        // 第一次被子彈擊中,右轉90度
        turnRight(90);
        // 然後前進100像素避開第二次
        ahead(100);
    }
}


小車會按照這個運行規則一直執行
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章