程序猿特有的技能就是在閑來無事的時(shí)候,可以自己逗自己玩,你并沒有看錯(cuò),我們搞了四臺(tái)相撲機(jī)器人sumorobot,讓它們對(duì)戰(zhàn),為什么這么設(shè)計(jì)呢,因?yàn)楹猛嫜剑?/p>
相撲機(jī)器人賽事的挑戰(zhàn)在于參賽機(jī)器人需要尋找其對(duì)手(通常是通過紅外線或超聲波傳感器),將對(duì)手推出競(jìng)技場(chǎng)。參賽機(jī)器人為避免尷尬離開舞臺(tái),通常自備傳感器,以檢測(cè)邊緣。
我們搞的四臺(tái)相撲機(jī)器人,雖然都是同一類型的機(jī)器人,但是為了讓一切更刺激,我們修改了代碼,用了三套方案,讓它們都有屬于自己的戰(zhàn)斗方式。
1.直接型
運(yùn)用直接型的機(jī)器人是marcus、和matt這兩臺(tái)sumoRobot的名字就是它們持有者的名字,可見其主人對(duì)它們的心愛程度,也從側(cè)面反映了這兩位玩家的懶癌程度。
這種代碼是這一套sumorobot的初始進(jìn)攻模式,一開始會(huì)以較慢的速度直行,然后根據(jù)底板上面的紅外測(cè)距傳感器返回的參數(shù)值來確定敵人在哪個(gè)方向,然后朝改防線猛烈的撞擊。程序框圖如下:
2.搜索型
Searching,它的戰(zhàn)斗方式就是它的名字。一開始運(yùn)行的時(shí)候,它就會(huì)轉(zhuǎn)動(dòng)它的身子以90°的范圍來搜索前方是否有敵人,一旦探測(cè)到前方某個(gè)位置有敵人的存在,它就會(huì)立即以最大的速度充裝上去,fighting。它的優(yōu)勢(shì)在于,在確定敵情之前絕不輕舉妄動(dòng),一旦行動(dòng),必如脫兔。
3.旋轉(zhuǎn)型
運(yùn)用這種進(jìn)攻方式的sumorobot是“戰(zhàn)神”(老實(shí)說這是一個(gè)多么俗氣的名字)。這一種模式跟搜索型有著異曲同工之處,一開始運(yùn)行的時(shí)候它也是搜索,不過其搜索方式有所不一樣,它的方式是朝著一個(gè)方向進(jìn)行360°的旋轉(zhuǎn)。這種方式有一個(gè)有是,另一臺(tái)小車無論從哪個(gè)方向撞擊過來,它都能夠以最快的速度察覺到敵情,不給敵人可趁之機(jī)。程序框圖如下:
相撲機(jī)器人對(duì)戰(zhàn)視頻:
開玩笑,花了這么多時(shí)間組裝和調(diào)試代碼。當(dāng)一切完成之后,怎么能不比試比試看看誰的相撲機(jī)器人才是戰(zhàn)爭(zhēng)的王者呢?
所以我們開始了一場(chǎng)沒有規(guī)則,只注重哪一臺(tái)車留在臺(tái)上以及觀賞性的亂斗比賽:
【轉(zhuǎn)載自DF社區(qū)】