成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

極客游戲——坦克大戰AI編寫

開發 前端
傳統的游戲,都是人們來操作游戲元素,而這個游戲不同,你要寫一套算法,用這套算法去控制你的坦克,游戲開始之后,你能做的就只是看著兩臺坦克對戰,他們的靈活性,戰斗力以至于『智能』都取決于你的算法。

今天看到一個特別有意思的東西,叫做CODE GAME,你可以通過Javascripe語言來給你的小坦克寫AI,然后與其他人的AI坦克對戰。

極客游戲——坦克大戰AI編寫

傳統的游戲,都是人們來操作游戲元素,而這個游戲不同,你要寫一套算法,用這套算法去控制你的坦克,游戲開始之后,你能做的就只是看著兩臺坦克對戰,他們的靈活性,戰斗力以至于『智能』都取決于你的算法。

這讓我想到了多年前的『磁芯大戰』,這是最古老的游戲,也是計算機病毒的前身,兩個科學家互相用匯編語言編寫能夠破壞對方程序的程序,生存到最后即為勝者。今天我們鮮有人再有能力用匯編語言去編寫程序了,但是CODEGAME卻給了我們一種『創造』的可能。

CODEGAME的世界由一片由16×12的『格』組成,這些格子中有些是暢通無阻的大路,有些是子彈和坦克都無法穿越的石頭,還有些是柔軟而富有隱蔽性的草坪,坦克如果處在草坪中,就不會對對方發現。坦克可以發射子彈,也可以前進,還可以朝左或朝右轉向。事實上,這幾乎就是你能有的所有操作了。

這些操作都是由指令來構成的,比如

  1. 坦克前進:me.go() 
  2.  
  3. 坦克轉向:me.turn(n) n=left or right 
  4.  
  5. 坦克發射子彈:me.fire() 

這是我們能做的所有操作,但是我們還可以通過一些函數來感知自身或周圍的情況,比如

  1. 己方坦克坐標:me.tank.position 
  2.  
  3. 己方坦克朝向:me.tank.direction 
  4.  
  5. 敵方坦克坐標:enemy.tank.position 
  6.  
  7. 敵方坦克朝向:enemy.tank。position 
  8.  
  9. 地圖:game.map[x][y] x為橫坐標,y為豎坐標,返回的是那一點是『石頭』『草坪』還是什么都沒有 
  10.  
  11. 星星坐標:star.position 

我們的目的就是讓我們的小坦克吃盡可能多的星星,或者消滅敵方坦克,同時注意不要被地方擊中,在以上前提下,還要使算法盡可能高效。

這個上手非常容易,官方的指南中的代碼直接貼上去,就得到了一個可以轉向可以發射子彈的坦克,但是如果你希望你的坦克更加聰明一些,那就需要自己動手了。

我首先給我的坦克加上了探路系統,這個系統的算法由一系列語句實現,它可以讓我的坦克在遇到障礙物之前就及時轉向,并且能夠在死胡同里面很快的走出來:

極客游戲——坦克大戰AI編寫

緊接著我又編寫了攻擊系統,這個系統能讓我追蹤并在合適的時候發射子彈。

極客游戲——坦克大戰AI編寫

這兩個系統基本上保證了我的小坦克初具威嚴了,它可以邊走邊射什么的。但是作為一臺聰明的坦克,它還應該有找星星的算法,因為盡可能多的吃星星也是獲勝條件之一,于是我寫了找星星算法

極客游戲——坦克大戰AI編寫

找星星是優先級不太高的,當能打敵人的時候是沖敵人去的,但是如果沒事,坦克還會去找找星星。到這基本上就差不多了,但是我注意到在對戰中我還是經常被別人的坦克擊中,于是我又加了閃避系統,使得我的小坦克在發現敵人的子彈的時候能快速逃離,這樣又增加了一些勝算。

極客游戲——坦克大戰AI編寫

至此,一個『聰明』的小坦克就誕生了,這個坦克會主動發現敵人,然后轉到正確的方向開炮,遇到對方的子彈還會躲閃,同時它會在整個地圖尋找星星,雖然我為它寫了所有AI,但是我還是贊嘆它的靈活和智慧,簡單的『左轉』『前進』『右轉』『射擊』結合對狀態的感知,居然會讓死物變得靈活。這種靈活并非『控制』的靈活,而是不受控制的靈活。你不能操作你的坦克,你只能看著它走來走去。

這真是人工智能的樂趣。

生命和智慧有時候并非我們想象的那么復雜,也許它們更像是一種由簡單演變而來的精巧,生物的每個基因都并不復雜,可是卻組合成了嘆為觀止的生命體系。而程序中的簡單指令可以在某種程度上還原這種精巧。

我的坦克雖然有六百行代碼,可是在很多方面還是做的不夠,比如對障礙物的高級判斷,預先計算敵方坦克路線來發射子彈等等,這些都是可以完善的。值得一提的是,這并非『程序員』的游戲,它所需要的編程知識非常少,官方的文檔可以讓所有人在十分鐘內入門,而這些也就足夠了。這個游戲更需要的是對行為的思考和對算法的考慮。我認為它適合每個極客,每個對人工智能,計算機與生物感興趣的人。

如果你編寫了你的小坦克,歡迎你挑戰我,我的用戶名是wdkwdkwdk,在對手用戶名那里填寫我的名字,即可與我的坦克對戰~

責任編輯:張偉 來源: wdk的博客
相關推薦

2013-07-17 18:38:32

Android游戲源碼Android源碼下載Android坦克大戰

2011-04-25 09:30:42

坦克大戰Java

2018-01-22 20:35:27

微信小游戲開發

2022-03-10 11:04:04

Vue3Canvas前端

2020-07-07 09:36:22

AI 數據人工智能

2023-12-20 17:34:13

科技人工智能

2020-10-24 23:38:46

新基建

2013-09-24 10:40:41

華為 服務終端

2022-10-24 08:40:14

AI虛擬手勢計算

2024-07-31 15:44:06

2016-05-16 14:32:30

任意云戴爾微軟

2016-05-24 13:36:56

任意云戴爾微軟

2012-08-29 15:49:50

2010-09-06 11:02:35

喬布斯

2016-05-16 15:23:54

任意云戴爾微軟

2016-01-21 15:19:43

性能極客APM

2015-04-30 13:21:38

2013-09-26 09:47:42

豌豆莢

2011-05-04 15:21:20

swing
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩在线免费 | 欧美老妇交乱视频 | 一区二区三区在线 | 欧 | 国产午夜精品一区二区 | 国产精品久久久久久久久久久久午夜片 | 九九爱这里只有精品 | 国外成人在线视频 | 欧美久久视频 | 国产91亚洲精品 | 一级片在线观看 | 国产一区二区自拍 | 国产精品日韩一区二区 | 999久久久免费精品国产 | 国产精品自拍啪啪 | 欧美乱人伦视频 | 五月天激情综合网 | 日韩免费看视频 | 逼逼视频 | 国产精品久久久久久久一区探花 | 99久久免费精品视频 | 国产精品一区二区三区久久久 | 国产精品久久久久久久久久久久 | 日本久久网 | 自拍偷拍亚洲欧美 | 91麻豆产精品久久久久久夏晴子 | 久久伊人亚洲 | 91社影院在线观看 | 国产精品久久久久9999鸭 | 天天看夜夜 | 久久久99精品免费观看 | www.99热| 有码一区 | a级毛片国产 | 国产精品一区在线 | 欧美精品一区二区三区四区 在线 | 手机在线不卡av | 激情的网站 | 亚洲一区二区在线播放 | 国产精品区一区二区三 | 啪视频在线 | 欧美午夜精品久久久久久浪潮 |