-
當(dāng)前位置:首頁 > 創(chuàng)意學(xué)院 > 技術(shù) > 專題列表 > 正文
實(shí)現(xiàn)最簡(jiǎn)單的游戲ai程序
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于實(shí)現(xiàn)最簡(jiǎn)單的游戲ai程序的問題,以下是小編對(duì)此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個(gè)非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對(duì)話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,有小程序、在線網(wǎng)頁版、PC客戶端和批量生成器
官網(wǎng):https://ai.de1919.com。
本文目錄:
如何用C++制作一個(gè)簡(jiǎn)單的AI
那些問答程序網(wǎng)上有人賣一套帶源碼的吧,忘了是C還是C++的,折合人民幣幾百塊。那些程序跟一般的人工智能的項(xiàng)目,什么人工神經(jīng)網(wǎng)絡(luò)、HTM算法什么的完全不是一個(gè)路數(shù)。游戲里的AI是如何實(shí)現(xiàn)的?
游戲里面的AI是通過建立數(shù)學(xué)模型來實(shí)現(xiàn)的。 比如賽車游戲的AI,和你一起跑得賽車根據(jù)不同等級(jí)的AI表現(xiàn)出不同能力。它基本的設(shè)計(jì)思想是,通過對(duì)地圖場(chǎng)景進(jìn)行數(shù)學(xué)建模然后結(jié)合模型中的應(yīng)變量結(jié)合賽車本身的參數(shù)進(jìn)行數(shù)學(xué)結(jié)合。最后特出了帶有系數(shù)的近似等式。AI的等級(jí)就是近等式的系數(shù)。然后通過數(shù)學(xué)變換(比如三角變換<AI出錯(cuò)或者攻擊變現(xiàn)的比較有周期性>,等比變化,隨即變換等)使得AI變的非常具備“人”的思維。 還有一種AI是通過行為庫來實(shí)現(xiàn)的,在行為庫中,定義了大量的行為,這些行為可能是預(yù)先定義好的,可能是游戲者在平時(shí)游戲的時(shí)候被系統(tǒng)錄入的。然后AI通過類似責(zé)任鏈(不同等級(jí)的責(zé)任者對(duì)應(yīng)不同等級(jí)的責(zé)任行為,你可以去網(wǎng)絡(luò)搜索一下)的形式獲取到某一個(gè)時(shí)候的行為,從而表現(xiàn)的比較有"智能".關(guān)于游戲AI編寫的思路(VBVC混合編程)
尋路是有專門的尋路算法的,如Dijkstra算法,或者直接用廣度優(yōu)先搜索算法也行。電腦ai其實(shí)就是判斷形勢(shì),然后根據(jù)形勢(shì)來決定做什么,不過一般還要加一點(diǎn)隨即因素,要不然就沒什么意思了。電腦判斷形勢(shì)也有很多方法,例如可以ai設(shè)定一個(gè)目標(biāo),例如,把自己變強(qiáng)大,也就是說,發(fā)現(xiàn)可以”欺負(fù)“的對(duì)象,就去欺負(fù)他,不同的ai有不同的”欺負(fù)“的欲望等等,這樣可以設(shè)計(jì)出各個(gè)ai各自為戰(zhàn)的游戲。如果想要更有挑戰(zhàn)性,那就需要做一個(gè)簡(jiǎn)單的邏輯分析和搜索的程序了,例如電腦可以根據(jù)玩家和附近NPC的情況來計(jì)算他做每一種行動(dòng)的代價(jià),然后選擇代價(jià)最低的行動(dòng)來實(shí)際執(zhí)行。但是這個(gè)就要求更高了。至于AI用C++寫,應(yīng)該是可以的,不過需要注意的是dll里面函數(shù)的調(diào)用方式約定,我也記不清楚vb是用pascal還是stdcall還是什么了,反正這個(gè)你需要查一查。另外,對(duì)于你這種計(jì)算量不太大的程序,也完全可以考慮就用vb來寫ai。
讓ai自己打游戲需要下載幾個(gè)軟件
讓ai自己打游戲需要下載三個(gè)軟件,先,考慮游戲棋盤:它有九個(gè)單元格,每個(gè)單元格有三個(gè)狀態(tài):空,O和X??梢杂靡粋€(gè)九位數(shù)的三位數(shù)表示。所以,例如一塊空棋是000000000,中間有一個(gè)X(給出X的值為2)的棋是000020000等等。這個(gè)可以很容易地轉(zhuǎn)換成一個(gè)整數(shù),這個(gè)整數(shù)可以是散列表中的關(guān)鍵字。所以,當(dāng)電腦輸了這場(chǎng)游戲,它可以看看棋子是什么時(shí)候做了最后一步,評(píng)估,并設(shè)置一個(gè)hashmap(哈希映射)的值。將來在做一個(gè)動(dòng)作之前,可以先看看棋盤的狀態(tài),如果它做了一個(gè)特定的動(dòng)作,并且如果它出現(xiàn)在HashMap中,它會(huì)知道它上次輸過這場(chǎng)游戲, 所以這次應(yīng)該做點(diǎn)別的。使用這種方法,不會(huì)有其他的策略,我們可以建立一個(gè)應(yīng)用程序,迅速學(xué)習(xí)如何玩井字游戲。不僅如此,當(dāng)你完成后,hashmap很容易轉(zhuǎn)移,即如何玩這個(gè)游戲的“記憶”可以給另一臺(tái)計(jì)算機(jī),然后它會(huì)立即知道如何玩這個(gè)游戲。這個(gè)算法太天真了,它只會(huì)在第一個(gè)可用空間中移動(dòng)。起初,它會(huì)失去很多,但是隨著時(shí)間的推移,它將記錄失敗的地方,并遵循避免策略。你會(huì)發(fā)現(xiàn),它很快就學(xué)會(huì)了如何玩一個(gè)井字游戲,就像人類一樣。以上就是關(guān)于實(shí)現(xiàn)最簡(jiǎn)單的游戲ai程序相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會(huì)為您講解更多精彩的知識(shí)和內(nèi)容。
推薦閱讀:
淘寶雙標(biāo)題怎么設(shè)置(淘寶怎么實(shí)現(xiàn)雙標(biāo)題)
快速開啟母嬰網(wǎng)店,實(shí)現(xiàn)財(cái)富夢(mèng)想
《互聯(lián)網(wǎng)電子商務(wù):實(shí)現(xiàn)全球化營(yíng)銷的有力武器》
設(shè)計(jì)師簡(jiǎn)介文案(設(shè)計(jì)師形象墻個(gè)人簡(jiǎn)介)