我用Java寫的象棋外掛成功了

大城縣衛安防火材料廠發表於2017-06-12

首先要想辦法獲得當前棋局的fen序列

FEN(Forsyth-Edwards Notation)是專門用來表示象棋局面的記錄規範,在這個規範下,一個局面可以簡單地用一行“FEN格式串”來表示,而不必煩瑣地說:“紅帥在四路次底線,黑將在5路底線……”。由於它是文字格式的(只牽涉到很有限的幾個字母、數字和符號),因此網上傳遞棋局就非常方便,不用把棋圖畫在紙上或用文字笨拙地描述了,而是用棋譜編輯軟體擺好局面,自動得到FEN格式串,再貼到諸如Web網頁、BBS、電子論壇等能夠傳遞文字的網路應用平臺上。讀者面對FEN格式傳,只要藉助於棋譜編輯軟體,用“賦值”和“貼上”就可以完全重現局面,使得棋譜交流快速而高效。

不知道怎麼從記憶體中獲得就只能用影象識別了,一開始我用的ocr 發現準確度並不高,然後用openimaj 得到了下面的結果


這樣再判斷座標點,生成fen,然後再利用網上下載的象棋引擎利用管道通訊將fen傳給引擎,再拿到結果,根據結果,再給視窗傳送點選命令,這裡就需要用到jna了。

整體思路就是這樣 ,成品已經能夠自動走棋了,也一直連贏,但是我只是自己用,不會傳播出去的


相關文章