倉鼠迷宮怎么制作
倉鼠迷宮怎么制作
在制作倉鼠迷宮的時候,需要將相應(yīng)的材料準備好,紙板做迷宮是比較好的選擇。
用圓規(guī)在29*7紙板前端,畫半圓,用小刀割下半圓,另一個也是。
在半圓上方寫上字,將割好的一個紙板用膠水粘在42*30大紙板的上方邊緣,大紙板做底部,將40*7的紙板貼粘好,箱體外部成功。
將其他的小直板如圖所示裁剪好,用膠水粘好。
倉鼠感知視覺,觸覺,聽覺和化學(xué)**。在尋找獵物時,它們似乎最依賴視力,但聽覺和嗅覺也很重要。
倉鼠使用化學(xué)物質(zhì)進行交流。
雄性用它們的大的皮脂腺側(cè)腺來標記它們的領(lǐng)域。事實上,這些腺體的大小與個體在優(yōu)勢等級中的地位相關(guān):腺體越大,動物的優(yōu)勢越大。
倉鼠對于運動的需求量比較大,飼養(yǎng)的時候多多注意。
IEEE 電腦鼠走迷宮比賽
呵呵~樓主參加過IEEE國際標準電腦鼠走迷宮比賽?
敢問樓主是哪個賽區(qū)的?
電腦鼠介紹(此段為俺**過來的):電腦鼠(英文名稱為Micromouse)是一個由微處理器控制的,集感知、判斷、行走功能于一體,能夠自動尋找**路徑到達目的地的微型機器人。它可以在“迷宮”中自動感知并記憶迷宮地圖,通過一定的算法尋找一條**路徑,以最快的速度到達目的地。
1?電腦鼠走迷宮的規(guī)則
有關(guān)電腦鼠走迷宮國際比賽規(guī)則的內(nèi)容,可參閱國際電工和電子工程學(xué)會(IEEE)的**網(wǎng)站:
http://www.eece.maine.edu/sc2006/2006MicromouseRules.pdf。
1.1?迷宮的規(guī)格
迷宮由256個方塊(單元)組成,每個方塊的大小為18?cm見方,排成16行×16列。迷宮的隔墻板沿方塊的四周布設(shè),形成迷宮通道。隔墻板的兩個側(cè)面是白色的,頂部是紅色的。迷宮的地板由木質(zhì)材料做成,涂上不反光的黑漆。
隔墻板的側(cè)面和頂部對紅外線有反射特性,而地板則對紅外線有吸收特性。
迷宮照片
1.2?電腦鼠的規(guī)格
電腦鼠要求由參賽者自制,一個完整的電腦鼠應(yīng)包含有機身、電源、傳感器、微處理器、馬達及驅(qū)動等部分。電腦鼠的傳感器可分為3組,分別用來感知前、左、右3個方向是否已靠近宮壁。
在馬達的控制下,電腦鼠能夠完成直行、轉(zhuǎn)彎、掉頭以及加減速等動作。
電腦鼠樣例照片
1.3?競賽的規(guī)則
電腦鼠的基本功能是從起點開始走到終點,所花費的時間稱為“運行時間”。電腦鼠從**次激活到運行開始所花費的時間稱為“迷宮時間”。
電腦鼠在比賽時手動輔助的動作稱為“碰觸”。競賽使用這3個參數(shù)來進行評分。
電腦鼠的得分通過計算每次運行的“排障時間”來衡量,即將迷宮時間加上一次運行時間的1/30。
如果被碰觸過,那再減去10?s,這樣得到的就是排障時間。電腦鼠在迷宮中停留或運行的總時間不可超過15?min,在限時內(nèi)允許運行多次。
如果進入迷宮是為了進行探測和記憶,則這次運行就稱為“試跑”;如果進入迷宮是根據(jù)先前的記憶和經(jīng)驗,按照智能算法確定**路徑,并以最快的速度到達目的地,則這次運行就稱為“沖刺”。
———————————-華麗的分割線—————————–
正文:我的電腦鼠走迷宮的算法
(此文系我曾在“第三屆上海市嵌入式系統(tǒng)創(chuàng)新應(yīng)用邀請賽官網(wǎng)(IEEE國際標準電腦鼠走迷宮比賽)”發(fā)表過,以下略作改動)
一,探測策略
電腦鼠走迷宮只能采用部分迷宮探索的策略,即在有限的時間或探測次數(shù)下,只探測迷宮的一部分,從中找出**的路徑。
電腦鼠在巷道內(nèi)行走,如果**無路可走,則該巷為“*巷”;電腦鼠在巷道內(nèi)行走的方向最多只有3個(前、左、右),如果存在2個或2個以上的方向可以行走,稱為“交叉”。遇有交叉時,在行走方向的選擇上可有如下幾種選擇法則。
◆?右手法則:?以右邊為優(yōu)先的前進方向,然后是直線方向、左邊方向。
◆?左手法則:?以左邊為優(yōu)先的前進方向,然后是直線方向、右邊方向。
◆?中左法則:?以直線為優(yōu)先的前進方向,然后是左邊方向、右邊方向。與此類似的還有中右法則。
◆?亂數(shù)法則:?取隨機值作為前進方向。
◆?向心法則:?由于終點設(shè)在迷宮的中心,遇有交叉時,以指向迷宮中心的方向為優(yōu)先的前進方向。
標記
為了記憶迷宮的詳細信息,需要對迷宮單元的位置進行線路標記。迷宮共有16×16個單元,可采用二維坐標的方式標記,即用每個單元的XY坐標表示。
如起點可標記為(0,0),終點為(7,7)等。此外,還需要對迷宮單元的可行進方向進行標記,可采用**方位或相對方位兩種方式。
**方位:?一種與電腦鼠行進方向無關(guān)的標記方式,以一個4位的二進制數(shù),分別表示東、西、南、北4個方向。
“1”表示允許行進(無墻壁),“0”表示不允許行進(有墻壁)。
相對方位:?一種與電腦鼠行進方向有關(guān)的標記方式,以一個3位的二進制數(shù)即可實現(xiàn)標記,分別表示前、左、右?!?”表示允許(無墻壁),“0”表示不允許(有墻壁)。
阻斷
在電腦鼠試跑過程中或在**沖刺時,需要對部分路徑進行“阻斷”,即在發(fā)現(xiàn)某條路徑是*路(只有入口而無出口)時,在該路徑的入口處(一般是交叉點)設(shè)置標記,即將入口的線路標記由1改為0。
四:試跑
試跑是獲得迷宮地圖(各單元路線標記)的**方法,因此在規(guī)則允許的情況下,應(yīng)盡可能多地獲取迷宮信息,為**沖刺作準備。在試跑過程中,除了要對經(jīng)過的單元進行線路標記外,還要選擇一種合適的探測策略。
數(shù)據(jù)補全
由于不可能將所有的單元均探測到,在有了一定的數(shù)據(jù)基礎(chǔ)上,就可以實現(xiàn)“數(shù)據(jù)補全”了。數(shù)據(jù)補全就是對未探測到的單元,通過周圍已有的相數(shù)據(jù)來進行補充的一種方法。首先要尋找單元數(shù)據(jù)為FFH的單元,如果該單元的東、西、南、北4個相鄰的單元均為非00H或FFH,則分析“東”、“西”和“南”、“北”4個單元的二組數(shù)據(jù),看是否有指向該單元的可行方向。
如果有,則在該方向是相通的,可對數(shù)據(jù)進行大膽的假設(shè)。等高表
經(jīng)過有限次的探測、阻斷和補全以后,可以得到描述迷宮圖線路的二維表。
雖然不是全部,但已經(jīng)是部分或大部分,其中可能包含了若干條可以到達終點的路徑。為了尋找到達終點的路徑,需要制作等高表。等高表是指已探測的各單元距離起點的。
怎么制作迷宮圖
方案一:主路扭曲型1、首先,按照下圖的間隔規(guī)則來生成基礎(chǔ)的百科大地圖,1為陸地,0為水域。2、然后,選擇一個靠近邊緣的1作為起點,在它的周圍隨機找另一個**的1(這里的“周圍”指的是上下左右4個方向,斜邊不算)。
找到就把他們聯(lián)通,即把兩個1之間的0變成陸地,這里用紅色來表示。
3、把上一步“終”的格子作為新的一個“起”格子,不停循環(huán)第二步的過程,直到找不到周圍有**的1。4、這時候,原路往回走(即不停去找前一個格子),直到找到一個格子,這個格子周圍有**的1,那么從這個格子開始重復(fù)前兩個步驟。5、接下來就是不停重復(fù)上面的步驟,找到就聯(lián)通,找不到就往回走。6、填充完整個地圖之后,迷宮就算是制作完成了,根據(jù)需求加上終點即可。
總結(jié)一下,這種方案生成的迷宮會有一條明顯的主路,即一條特別長、貫穿大部分區(qū)域的路線,同時,迷宮的路線一般比較扭曲。方案二:自然分岔型這個方案的雛形來自于隨機prim算法,具體步驟如下:1、跟方案一一樣,生成一個基礎(chǔ)地圖。格子先用**1和灰色0來表示,暫時不區(qū)分水陸。
2、隨機取一個地圖邊緣的**1,把它標記為紅色1,即變成陸地。然后把它旁邊的灰色0標記成藍色0,表示“待定”。(注意的是,大地圖四周的灰色0固定不變,作為地圖邊緣而存在)3、敲黑板了??!這里是重點?。。‰S機選一個藍色的0(這一步很重要,會使這個方案明顯區(qū)別于上一個方案),然后看紅色1隔著這個藍色0對面的格子,是否是**的1:如果是,則把對面的**1標記成紅色1,即變成陸地,然后把藍色0變成紅色的0,即也變成陸地;如果不是,就把這個藍色的0變成灰色的0。
**,把新創(chuàng)建的紅色1周圍的灰色0,標記成藍色0。4、繼續(xù)重復(fù)上面的步驟5、對比上圖和下圖,這里取一個藍色0生成一個紅色1之后,新生成的紅色1旁邊,有兩個藍色0的兩邊都是紅色1了,那么就根據(jù)第三步的規(guī)則,在稍后取到這些藍色0時,就會把他們變成灰色0。6、繼續(xù)重復(fù)上述步驟,直到整個地圖沒有藍色0了,地圖就生成完畢。
總結(jié)一下,對比方案一,這套方案不會出現(xiàn)明顯的主路,迷宮相對比較自然,但迷宮的分岔路會比較多,所以迷宮可能會更復(fù)雜,即玩家需要做選擇的次數(shù)可能比較多。方案三:塊狀分割型上述兩個方案有個共同的特點,就是道路永遠都是1個格子寬,如果游戲需要給地圖創(chuàng)造一些小型地塊或者更寬的道路,需要在迷宮生成之后再用各種分布的規(guī)則來豐富迷宮。而第三個方案則以小型地塊作為出發(fā)點來設(shè)計迷宮,這套方案的雛形來自于國外大神Bob Nystrom,有興趣的可以去查看他個人主頁。1、首先,在大地圖(還是之前那個大地圖)上生成若干小型地形,保證邊長是奇數(shù)且不重合就好(示意圖全部使用了正方形,實際上可以做成長方形讓地圖更加自然)。
注意頂點要在**1格子上即可,這里我用橙色1來表示這些小型地塊。2、然后,根據(jù)之前方案一的迷宮生成方案,在非小型地塊的區(qū)域里,用迷宮來填充。這一步完成之后,迷宮和小型地形是分隔開來的。3、在橙色1的小型地形周圍,隨機取點以連接**1,連接點的數(shù)量可以根據(jù)需要來確定,建議是不要吝嗇連接點的個數(shù),因為這種地圖之下,分岔路遠比前兩種方案要少。
4、接下來是簡化地圖,目的是去掉一些*胡同,因為這種方案的核心在于小型地塊,沒有必要讓玩家在迷宮的路上繞。方法是把一些3邊都是灰色0的**1去掉即可,具體數(shù)量也根據(jù)游戲需求來制定,我這里只去掉了一部分。5、**,給地圖加上出口和入口,地圖就做完啦!總結(jié)一下,這種方案比前兩種多了小型地塊,這一點比較適合設(shè)計玩家的階段性反饋。同時地圖的分岔路明顯減少,玩家在這種方案下的選擇次數(shù)會明顯降低。
另外,由于這個方案的步驟相對多且獨立,所以對于設(shè)計者來講會比較容易控制地圖的結(jié)構(gòu)。