在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何讓AI教機器自己玩俄羅斯方塊?

電子工程師 ? 來源:lq ? 2019-02-19 09:17 ? 次閱讀

人工智能大火的今天,如果還是自己玩俄羅斯方塊未免顯得太 LOW,為什么不對游戲升級,讓機器自己去玩俄羅斯方塊呢?有了這個想法之后,我用了兩天時間去搜集了大量資料,在電腦死機好多次之后終于將 AI 俄羅斯方塊實現(xiàn)了。

程序介紹

所謂讓機器自己去玩俄羅斯方塊,就是讓機器計算當(dāng)前方塊的所有形態(tài)可放置的所有位置,然后根據(jù)統(tǒng)一的評價標(biāo)準(zhǔn),計算出最優(yōu)的位置進行放置。這個評價的標(biāo)準(zhǔn)簡單的來說就是:板塊放置的位置越靠下越好,方塊之間越緊密越好,自身對消除行的方塊貢獻數(shù)量越多越好,但是這里還要注意的是不可為了追求消除行數(shù),而去造成過多的空洞,這樣也是不合理的。

關(guān)于 AI 算法主要有兩種:一種是經(jīng)典的 Pierre Dellacherie 算法,一種基于基于深度搜索的算法。深度搜索需要優(yōu)化的地方很多,假如計算的層數(shù)不夠、沒有高效剪枝,一不小心容易寫成人工智障,時間復(fù)雜度也不好。Pierre Dellacherie 算法更加清晰,復(fù)雜度更低。但是該算法只考慮當(dāng)前,不對未來的情況進行計算,注重的是“不死性”,追求方塊的“密集”,有時就算可以一次性消除 3 行,卻會使全局方塊更加“疏”,即過多的空洞。

代碼由Tetris.py、AI.py和Utils.py三部分組成,游戲的主要邏輯由 Tetis 控制,Utils 定義了方塊的樣式,AI 顧名思義實現(xiàn)了主要的 AI算法。

具體介紹

Pierre Dellacherie 算法

只考慮當(dāng)前方塊,不對未來的情況進行計算,注重的是“不死性”,算法每次生成一個方塊,便窮舉該方塊所有旋轉(zhuǎn)的落點。一種方塊最多有 4 種旋轉(zhuǎn),并且由于游戲界面是 10*20 的,所以對于每個旋轉(zhuǎn)形狀,只需要考慮 10 種落點。算法的核心是一個評估函數(shù),對窮舉出的每一種下落情況,計算 6 個參數(shù)值,用評估函數(shù)加權(quán)求和得到一個值,該值最大的情況便是目前方塊的最優(yōu)下落位置,六個參數(shù)分別是:

1. 下落高度(Landing Height)

當(dāng)前方塊落下去之后,方塊中點距底部的方格數(shù)(事實上,不求中點也是可以的)。

2. 消行數(shù)(Rows eliminated)

消行層數(shù)與當(dāng)前方塊貢獻出的方格數(shù)乘積。

3. 行變換(Row Transitions)

從左到右(或者反過來)檢測一行,當(dāng)該行中某個方格從有方塊到無方塊(或無方塊到有方塊),視為一次變換。游戲池邊界算作有方塊。行變換從一定程度上反映出一行的平整程度,越平整值越小;

該指標(biāo)為所有行的變換數(shù)之和;

如圖:■ 表示有方塊,□ 表示空格(游戲池邊界未畫出)

■■□□■■□□■■□□ 變換數(shù)為 6

□□□□□■□■□■□■ 變換數(shù)為 9

■■■■□□□□□□■■ 變換數(shù)為 2

■■■■■■■■■■■■ 變換數(shù)為 0

4. 列變換(Column Transitions)

大意同上,列變換從一定程度上反映出一列中空洞的集中程度,空洞越集中值越小。

5. 空洞數(shù)(Number of Holes)

6. 井的總和(Well Sums)

井指兩邊皆有方塊的空列。該指標(biāo)為所有井的深度連加到 1 再求總和。

注意一列中可能有多個井,如圖:

■□□

■□■

■□■

■■■

■□■

■□■

■□■

中間一列為井,深度連加到一的和為 (2+1)+(3+2+1)=9

評估函數(shù)如下 (首字母簡寫):

關(guān)于方塊形態(tài)

這里對 AI 俄羅斯方塊的形態(tài)做一下特別說明,各個方塊都是根據(jù)中心點的坐標(biāo)來生成的,以(0,0)為中心點,在 x、y 軸加減 1 則是其他方格的坐標(biāo),這樣的好處就是只要確定中心點坐標(biāo),其他的方格位置就能隨即生成。

看圖就懂:

1#每種塊包含的四個小方塊相對坐標(biāo)分布 2self.shapes_relative_coords=[ 3[[0,0],[0,0],[0,0],[0,0]], 4[[0,-1],[0,0],[0,1],[0,2]], 5[[0,-1],[0,0],[0,1],[1,1]], 6[[0,-1],[0,0],[0,1],[-1,1]], 7[[0,-1],[0,0],[0,1],[1,0]], 8[[0,0],[0,-1],[1,0],[1,-1]], 9[[0,0],[0,-1],[-1,0],[1,-1]],10[[0,0],[0,-1],[1,0],[-1,-1]]11]

基于深度搜索的方法暫不介紹。

收獲成果

以上,感興趣的同學(xué)可通過網(wǎng)盤獲取源代碼:https://pan.baidu.com/s/1gC6sF62Pz5D6rh6eicOZUw,提取碼: k17b。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 人工智能
    +關(guān)注

    關(guān)注

    1796

    文章

    47780

    瀏覽量

    240520
  • 機器
    +關(guān)注

    關(guān)注

    0

    文章

    784

    瀏覽量

    40835
  • AI算法
    +關(guān)注

    關(guān)注

    0

    文章

    252

    瀏覽量

    12348

原文標(biāo)題:如何讓AI教機器自己玩俄羅斯方塊?

文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    拜求 labview設(shè)計的俄羅斯方塊

    拜求 labview設(shè)計的俄羅斯方塊拜求 labview設(shè)計的俄羅斯方塊
    發(fā)表于 11-02 09:31

    俄羅斯方塊

    俄羅斯方塊程序
    發(fā)表于 05-24 22:26

    俄羅斯方塊

    單片機做的俄羅斯方塊游戲
    發(fā)表于 07-31 19:56

    俄羅斯方塊仿真

    網(wǎng)上找的俄羅斯方塊游戲,自己連接的圖,程序,希望大家喜歡
    發(fā)表于 12-02 12:16

    c語言版的俄羅斯方塊

    c語言版的俄羅斯方塊自己寫的,一時高興和大家分享
    發(fā)表于 12-03 18:09

    匯編版的俄羅斯方塊

    匯編版的俄羅斯方塊也是自己寫的 同樣和大家分享
    發(fā)表于 12-03 18:13

    俄羅斯方塊

    俄羅斯方塊
    發(fā)表于 04-23 16:53

    俄羅斯方塊

    俄羅斯方塊........................................................................................
    發(fā)表于 03-13 23:08

    自編俄羅斯方塊

    新手自己編寫的俄羅斯方塊,BUG有點多,有大神能夠指導(dǎo)一下嗎?
    發(fā)表于 10-25 08:52

    AI俄羅斯方塊

    ,還能打開AI功能,程序自己來找到合適位置并擺放,最終程序也實現(xiàn)了我的預(yù)期。下面是程序的示意,它可是在自動哦:原計劃給自己一周的時間(包
    發(fā)表于 02-10 20:08

    俄羅斯方塊源碼(帶煙花版)

    俄羅斯方塊源碼(帶煙花版)游戲簡介經(jīng)典游戲,俄羅斯方塊,源碼公布。我爭取簡化功能,使結(jié)構(gòu)清晰、框架簡單,代碼更容易看懂。每打到300分,速度增加一級。同時消去兩
    發(fā)表于 08-02 09:55 ?0次下載

    基于單片機實現(xiàn)的俄羅斯方塊游戲

    自己弄的分享給大家,關(guān)于單片機的俄羅斯方塊游戲
    發(fā)表于 11-10 10:47 ?22次下載

    51單片機 俄羅斯方塊程序

    51單片機_俄羅斯方塊程序
    發(fā)表于 12-17 21:59 ?12次下載

    俄羅斯方塊主程序講解

    俄羅斯方塊主程序講解
    發(fā)表于 04-21 09:16 ?31次下載

    基于51單片機的俄羅斯方塊游戲

    俄羅斯方塊游戲算法 請參考俄羅斯方塊游戲的算法1.概述俄羅斯方塊是一款風(fēng)靡全球的益智游戲。它規(guī)則簡單,容易上手,且游戲過程變化無窮,使用戶在游戲中得到樂趣。?本設(shè)計是采用單片機來實現(xiàn)的智能
    發(fā)表于 11-13 10:21 ?58次下載
    基于51單片機的<b class='flag-5'>俄羅斯方塊</b>游戲
    主站蜘蛛池模板: 欧美性幼 | 亚洲va老文色欧美黄大片人人 | 欧美成人三级伦在线观看 | 888米奇在线视频四色 | 欧美一级艳片视频免费观看 | 青草视频久久 | 操操操天天操 | 久久综合香蕉久久久久久久 | 婷婷九月丁香 | 久久两性视频 | 美女被免费网站视频九色 | 国产未成女年一区二区 | 久久综合久久久久 | 天堂网在线资源 | 欧美大尺度aaa级毛片 | 日韩成人免费观看 | 国产专区青青草原亚洲 | 亚洲国产成人成上人色 | 美女网站黄在线看 | 免费在线色视频 | 黄视频网站在线观看 | 性色综合| 在线观看永久免费 | 亚洲乱码一二三四区 | 亚洲欧美国产高清va在线播放 | 色www国产阿娇 | 亚洲国产欧美精品一区二区三区 | 中文字幕在线观看一区 | 美女被啪到哭网站在线观看 | 五月婷婷激情视频 | 国产精品久久久久久久久ktv | 久久深夜福利 | 国产午夜爽爽窝窝在线观看 | avbobo在线| 你懂的网站在线观看网址 | 亚洲都市激情 | 天天精品视频在线观看资源 | 五月天婷婷在线视频 | 欧美日本视频一区 | 日本黄页网站 | 午夜毛片免费观看视频 |