pythonAI五子棋

##pythonAI五子棋html

大概一個半月前,突發奇想寫一個AI五子棋,順便熟悉下機器學習的內容。通過一個多月的努力(其實我也沒有每天在寫,有點想法了就寫寫),我終於放棄了。是的,我放棄了!!!堅持就是勝利,放屁。還TM有句話:選擇大於努力。沒錯,我選擇放棄!緣由嘛?方向努力錯了,應該是先好好學習機器學習再來寫遊戲。還有本身太菜,機器學習的內容一個知識點我要花半天來理解,而後再花半天來寫代碼,最後花半天調試。要是趕上神經網絡,還得花半天訓練。都是晚上抽空在寫的,寂寞的夜,個人淚。因此我決定,先滾去系統學習機器學習,再來講這個。不過雖然放棄了,不過這個半成品仍是有點可玩性的。要是各位肯賞個臉,就下載去玩玩咯。我直接打包好了點開就能玩,連接在文末。python

###一.五子棋的架構
####1.主程序:gobang.py
這個程序文件包括了兩個類Gobang()和Robot()類web

Gobang主要實現玩家與電腦交互的界面,以下圖:網絡

這裏寫圖片描述

Robot是基於基本規則設計的一個簡單的智能程序,主要在對局中對與每個點價值的判斷,而後綜合起來後電腦選擇最有價值的點來下。
如何判斷一個點的價值:
在棋盤上,一個點有四個方向,橫豎左斜右斜。但電腦要在這裏下棋時候,就會先判斷在這四個方向上的總價值是多少。
舉個例子,點一在這裏能夠造成連五,那麼價值就是10000,點二隻能造成活四,那麼這個點的價值就是5000。因此電腦在判斷完全部的點後,會選出一個價值最大的點下。好比點一。
附.五子棋的一些術語:連五,活四,活三,活二,眠四,眠三,眠二架構

####2.SGFfile.py
這個沒啥好講的。當時在網上下載棋譜的時候,只能本身寫一個程序來幫忙處理棋譜,讓個人讀出來,也能夠幫助我將棋局生成棋譜。
####3.CNN.py
CNN神經網絡。去年很火的alphago就是用這個網絡訓練出來的,只不過他13層,個人才五層。這個真的也沒啥好講的。屬於懂得人天然懂,不懂的人說再多也沒用。
好吧,這麼水我也過意不去。這篇文章寫的仍是不錯的,想要了解的能夠看一下:
技術向:一文讀懂卷積神經網絡CNN機器學習


###二.使用注意
####在使用這個遊戲以前須要幾點注意的:
1.直接點擊那個gobang.exe文件就能夠玩了。
2.因爲我只訓練了黑棋的神經網絡(原諒個人懶),因此在使用神經網絡下棋的時候請不要讓電腦持白棋
3.程序是我在64位win7編寫的,不知道在其餘系統能不能玩。
4.須要將exe程序和save文件放到一個文件夾中。svg


改進版本:pythonAI五子棋(二)
五子棋代碼下載連接:五子棋代碼
訓練棋譜:下載連接
但願賞個臉,關注小弟的公衆號這裏寫圖片描述學習