有移動規則2

        

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());}
}2import 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());}
}

    這個代碼是走一個圓走一條直線,一直重復下去

?

轉載于:https://www.cnblogs.com/airycode/p/4828565.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/397478.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/397478.shtml
英文地址,請注明出處:http://en.pswp.cn/news/397478.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Troubleshooting(三):網絡

2019獨角獸企業重金招聘Python工程師標準>>> 前言 在 Troubleshooting 過程中&#xff0c;檢查完進程信息后&#xff0c;接下來就是排查網絡情況的時候了&#xff0c;初略翻過《TCP/IP 詳解卷一&#xff1a;協議》這本書&#xff0c;簡直跟看《深入理解 Linux 內核》…

SqlServer 備份還原教程

看了眾多教程&#xff0c;自己也寫個增強記憶&#xff0c;錯誤地方麻煩指出。 ———————————————————————-備份——————————————————————– 1.打開數據庫&#xff0c;成功連接 2.找到要備份的數據庫&#xff0c;圖中演示備份數據庫te…

php通過實現excel導入,php實現excel導入數據

表單頁面 if($_POST [import]"導入數據 "){$leadExcel$_POST[leadExcel];//echo $leadExcel;die;if($leadExcel "true"){//echo "OK";die();//獲取上傳的文件名$filename $_FILES[inputExcel][name];//上傳到服務器上的臨時文件名$tmp_name $…

深入理解計算機系統----讀書筆記

第二部分 信息的表示和處理 信息存儲&#xff1a; 二進制&#xff08;0101001&#xff09;&#xff0c; 八進制&#xff0c;十六進制&#xff08;0x32FD&#xff09; 字&#xff08;word size&#xff09;指明整數和指針數據的標稱大小&#xff08;normal size&#xff09;&…

FiddlerScript-常用總結

沒有用過Fiddler的人應該對FiddlerScript沒啥感觸&#xff0c;我是真心覺得FiddlerScript對測試有一定的幫助哈。在web前端開發過程中&#xff0c;Fiddler是最常用的一款調試工具&#xff0c;那對于測試來說&#xff0c;對測試來說也是一大利器。在大多數情況下&#xff0c;通過…

OpenStack-Zun 使用

Zun組件簡介 Zun是Openstack中提供容器管理服務的組件&#xff0c;于2016年6月建立。Zun的目標是提供統一的Openstack API用于啟動和管理容器&#xff0c;支持多種容器技術。Zun原來稱為Higgins&#xff0c;后改名為Zun。 Zun計劃支持多種容器技術&#xff0c;Docker&#xff0…

【優雅代碼】深入淺出 妙用Javascript中apply、call、bind

這篇文章實在是很難下筆&#xff0c;因為網上相關文章不勝枚舉。 巧合的是前些天看到阮老師的一篇文章的一句話&#xff1a; “對我來說&#xff0c;博客首先是一種知識管理工具&#xff0c;其次才是傳播工具。我的技術文章&#xff0c;主要用來整理我還不懂的知識。我只寫那些…

PHP筆記隨筆

1.CSS控制頁面文字不能復制&#xff1a; body{-webkit-user-select:none;} 2.【php過濾漢字和非漢字】 $sc"aaad....##--__i漢字過濾"; //iconv("UTF-8","GB2312",$sc);utf-8轉碼 echo $temperegi_replace("[^\x80-\xff]",""…

qt linux 添加庫文件路徑,Linux下Qt調用共享庫文件.so

jvm--4垃圾收集6. 垃圾收集GC (1)當需要排查各種內存溢出,內存泄漏等問題,當GC成為系統達到更高性能的瓶頸時,我們就需要對這些自動化的GC進行監控和調節. (2)PC計數器.本地方法棧.虛擬機棧,隨方法或者線 ...GET和POSTAjax與Comet 1. Ajax Asynchronous Javascriptxml :能夠向服…

js進階 14-8 表單序列化函數serializeArray()和serialize()的區別是什么

js進階 14-8 表單序列化函數serializeArray()和serialize()的區別是什么 一、總結 一句話總結&#xff1a;兩者都是對表單進行序列化&#xff0c;serializeArray()返回的是json對象&#xff0c;serialize()返回的是json形式的字符串&#xff0c;使用起來都是一樣的 1、$&#x…

HDU 2842 Chinese Rings(矩陣高速功率+遞歸)

職務地址&#xff1a;HDU 2842 這個游戲是一個九連環的游戲。 如果當前要卸下前n個環。由于要滿足前n-2個都卸下&#xff0c;所以要先把前n-2個卸下。須要f(n-2)次。然后把第n個卸下須要1次&#xff0c;然后這時候要卸下第n-1個。然后此時前n-2個都已經被卸下了。這時候把前n-2…

硬鏈接與軟連接

linux系統硬鏈接和軟連接&#xff1a; 1文件都由文件名和數據組成&#xff0c;在linux中文件被分為兩個部分&#xff1a;用戶數據和元數據。用戶數據&#xff1a;即文件數據塊&#xff0c;記錄真實數據的地方。元數據&#xff1a;文件的附加屬性&#xff0c;記錄文件的大小&…

linux 7.2中文命令,CentOS7如何支持中文顯示

1.查看系統是否安裝有中文語言包locale -a | grep "zh_CN" 命令含義&#xff1a;列出所有可用的公共語言環境的名稱&#xff0c;包含有"zh_CN"若出現圖中所示幾項&#xff0c;那么說明系統中已經安裝了語言包&#xff0c;不需要在安裝。含義是&#xff1a;…

html-拖拽

html-拖拽(draggable"true")拖拽的7個事件&#xff1a;> 拖拽塊.οndragstartfunction(){console.log("拖拽開始")&#xff1b;}> 拖拽塊.οndragfunction(){console.log("拖拽中")&#xff1b;}> 拖拽塊.οndragendfunction(){console…

大道至簡

道在中國哲學中&#xff0c;是一個重要的概念&#xff0c;表示“終極真理”。此一概念&#xff0c;不單為哲學流派諸子百家所重視&#xff0c;也被宗教流派道教等所使用。大道至簡是指大道理&#xff08;基本原理、方法和規律&#xff09;是極其簡單的&#xff0c;簡單到一兩句…

別人7天樂,運維還苦逼值班?

你被點名值班了嗎&#xff1f;或者你的朋友、隔壁七大姑八大姨的侄子被點名值班了嗎&#xff1f; 國慶將至&#xff0c;大家都開始研究各種度假攻略了&#xff0c;國內游、國外游、地球游、外星游。。。然而總有一票人&#xff0c;默默地職守著 -- tIT 公司運營支撐組/運維組。…

【常用損失函數】

一、Smooth L1 Loss 1.公式&#xff1a; 2.原因&#xff1a; L1損失使權值稀疏但是導數不連續&#xff0c;L2損失導數連續可以防止過擬合但對噪聲不夠魯棒&#xff0c;分段結合兩者優勢。 二、Focal Loss 1.公式&#xff1a; 2.作用&#xff1a; 使得正負樣本平衡的同時&#x…

ORA-01940: cannot drop a user that is currently connected解決方法

我們在刪除數據庫用戶時候會碰到如下錯誤 SQL> DROP USER sys_xj cascade; DROP USER sys_xj cascade*ERROR at line 1:ORA-01940: cannot drop a user that is currently connected 解決方法&#xff1a; 1.查詢出還在連接的此用戶會話進程 SQL> SELECT SID,SERIAL# FR…

實現對象克隆

實現Serializable接口&#xff0c;通過對象的序列化和反序列化實現克隆&#xff0c;可以實現真正的深度克隆&#xff0c;代碼如下 package com.lovo; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.ObjectInputStream; i…

linux 讀取內存顆粒,linux查看主板內存槽與內存信息的命令dmidecode怎么用

在Linux中&#xff0c;我們常常使用命令來實現許多操作&#xff0c;比如查看內存信息等&#xff0c;下面小編就為大家帶來一篇linux查看主板內存槽與內存信息的命令dmidecode方法。小編覺得挺不錯的&#xff0c;現在就分享給大家&#xff0c;也給大家做個參考。一起跟隨小編過來…