[分享] 一個不錯的免費象棋軟件

Game
歡迎推薦含有益智性或趣味性之遊戲軟體!

版主: 版主管理群

回覆文章
頭像
kkt
竹貓忠實會員
竹貓忠實會員
文章: 625
註冊時間: 2005-06-15 01:37
來自: H.K.
聯繫:

[分享] 一個不錯的免費象棋軟件

文章 kkt »

[象棋] 一個不錯的免費象棋軟件

無意中覓得這個免費象棋軟件, 試用後非常不錯.
速度快, 棋力也不差, 比起我所用過的都要好.

它還有源碼可供網絡平台採用的 (又要找心靈捕手老師研究了 :-P )


介面如圖示:



圖檔

象棋巫師 3.0 產品介紹

★領先的設計理念
※通用對弈引擎接口——仿照WinBoard和ChessBase的電腦博弈設計理念,使用UCCI(中國象棋通用引擎協議),可加載20餘個UCCI引擎。
※與國際接軌的棋譜記錄格式——用PGN(可移植棋盤遊戲格式)記錄中國象棋棋局,用FEN(Forsyth-Edwards格式)記錄中國象棋排局,實現了棋譜和排局快速錄入和編輯。
※開局自動識別系統——自動生成ECCO(中國象棋開局百科)編號,ECCO編號共有500個,任何一個開局都可以找到相應的ECCO編號,並查詢開局和變例的名稱,這有助於棋譜按照開局信息歸類。

★強大的功能
※內置棋力超強的「像眼競技」引擎,實現人機對弈。
※方便、快速的棋局(包括對局信息和註釋)和排局編輯方式。
※自動演示和播放棋局。
※生成Java棋譜(用於Web論壇)和文本棋盤(用於BBS)。
※生成圖片棋盤用於象棋刊物的出版印刷。
※生成美觀互動的Web棋盤,用於棋譜在網站上的發佈。
※生成BBS上的ANSI動態棋盤,為BBS的文本環境增添靚色。
※提供大小兩套界面,提供多套棋盤、棋子、聲音和背景音樂的組合方案。

★軟件運行環境最低要求衹需:
※處理器:486以上,內存:16MB,硬盤:16MB
※操作系統:32位Windows平台(Windows 95即可)

《象棋巫師》是自由軟件,你可以遵照自由軟件基金會出版的GNU通用公共許可證條款來修改和重新發佈這一程序。源程序已發佈在 SourceForge 網站上,下載頁面是:

(簡體中文版)    
http://superb-east.dl.sourceforge.net/s ... d_simp.exe

(簡體中文版)
    
http://superb-west.dl.sourceforge.net/s ... d_simp.exe

(繁體中文版)    
http://superb-east.dl.sourceforge.net/s ... d_trid.exe
 
(繁體中文版)   
http://superb-west.dl.sourceforge.net/s ... d_trid.exe

下載後執行安裝即可, 在彈出訊息框輸入你的名字. (隨便你註不註冊)


==========

以下是程序版本



中國象棋對弈程序ElephantEye(象眼) 版本:1.62

黃晨 * 2006年10月
( * 聯繫地址:復旦大學化學系表面化學實驗室,eMail:webmaster@elephantbase.net)

一、簡介

  ElephantEye 是一款自由的中國象棋程序,在遵循《GNU通用公共許可協議》(GNU General Public Licence)的前提下,廣大象棋愛好者和程序設計師可以以任何非商業的目的使用 ElephantEye 及其源程序。
  ElephantEye 中文名稱為「像眼」,它跟「馬腿」和「炮架子」一起構成了中國象棋「棋盤上的第三維」。ElephantEye 通常與一個象棋棋譜編輯軟件ElephantBoard 配合使用,寓意有板有眼(英文 Board 的意思是「板」)。(註:現在 ElephantBoard 已更名為「象棋巫師」。)
  ElephantEye 1.0 作為2005年在台北舉辦的第10屆電腦奧林匹克大賽的參賽程序,得到了鄭明政(網名 Poor)、施金山(網名專家)以及《象棋百科全書論壇》全體網友的大力支持,在此作者向他們表示感謝。

二、引擎協議

  ElephantEye 支持UCCI協議1.61,淺紅象棋用戶可通過UCCI引擎適配器(UCCI2QH)調用ElephantEye引擎。
(1) 支持的UCCI協議的命令有:
  ucci
  setoption ...
  position {<special_position> | fen <fen_str>} [moves <move_list>]
  banmoves <move_list>
  go [ponder | draw] {time <time> [movestogo <moves_to_go> | increment <increment>] | depth <depth> | infinite}
  ponderhit [draw] | stop
  quit
(2) 可以返回的UCCI協議的信息有:
  id {name <engine_name> | copyright <copyright_info> | author <author_name> | user <user_name>}
  option ...
  ucciok
  info ...
  {nobestmove | bestmove <best_move> [ponder <ponder_move>] [draw | resign]}
  bye

三、參數設置

  ElephantEye 作為UCCI引擎,有若干可以設置的參數(可以直接在《象棋巫師》中設置)。
(1) 開局庫:
  默認的開局庫為 ElephantEye 程序(ELEEYE.EXE)當前目錄下的 ELEEYE.BIN,含有10,000個對稱局面的著法。
(2) 思考時間:
  限定思考深度通常不是很好的選擇,建議給定限時讓程序自動分配時間。而在解殺局或分析局面時,則可讓程序無限制思考,並可隨時中止思考。
(3) 置換表大小:
  儘管置換表大小對程序的運行速度影響不大,默認16MB的設置已經足夠,但ElephantEye 還是提供了設置置換表大小的功能。在內存允許的情況下,下慢棋時可以適當增加置換表的大小,但建議不要超過物理內存的一半。
(3) 裁剪程度:
  為加快程序的運算速度,ElephantEye 默認使用空著裁剪和歷史表裁剪,並且產生負面影響的可能性很小,因此推薦使用最高級別。中間兩個級別會禁用歷史表裁剪,最低級別會禁用空著裁剪。
(4) 知識量:
  知識量和局面評價的準確性有關,在 ElephantEye 的知識量等級中,只有最低級別是不採用局面評價函數的(只考慮子力價值),在解排局等不需要依靠審局知識來分析的局面時,可以嘗試用這種設置。
(5) 選擇性:
  ElephantEye 設有4級選擇性。選擇性越大,程序越有可能走出它認為不是最好的著法,但「不是最好的著法」並非一點好處也沒有,尤其在沒有啟用開局庫時,適當增大選擇性,可以避免程序在相同的局面下走出一樣的著法。

四、規則

  儘管 ElephantEye 現有的規則知識僅限於「單方面長將作負」,但有很多變通的做法讓 ElephantEye 適應各種規則。例如作為淺紅象棋引擎,長捉的著法會自動被「淺紅象棋」所禁止。
  而作為UCCI引擎,一旦用戶認為引擎走了「長打」的禁著,可以用《象棋巫師》的「設置禁著」功能讓引擎強制變著。

五、博弈算法

  ElephantEye 屬於偏向蠻力的象棋程序,使用了嚴謹而有效的博弈算法:
(1) 使用位行和位列的著法生成器:
  位行(BitRanks)和位列(BitFiles)有利於滑動棋子(車和炮)的著法(尤其是吃子著法)生成,位行和位列可以用查表來代替在射線上做的循環運算。在ElephantEye 中,位行和位列的技術不僅用在著法生成器中,也用到了牽制的判斷上。
(2) 靜態局面搜索:
  在做靜態搜索時,ElephantEye 搜索了吃子或解將的著法,在搜索吃子著法時,ElephantEye 過濾掉不重要的吃子,例如吃不過河的兵、吃不處於防守中的士象等著法,都不在靜態搜索的範圍之內。
(3) 循環著法和長將檢測:
  ElephantEye 可以識別循環著法,出現循環著法時可以判斷哪方為長將,並且會利用禁止長將的規則來謀求優勢,但目前 ElephantEye 還無法識別長捉。
(4) 置換表:
  ElephantEye 參考了中國象棋程序「縱馬奔流」的設計思路,使用深度優先和始終覆蓋的雙層置換表,並採用低出(高出)邊界修正的置換表更新策略。
(5) 帶檢驗的空著裁剪:
  ElephantEye 使用 R=2 的空著裁剪,在殘局階段使用帶檢驗的空著裁剪。
(6) 迭代加深/吃子著法/殺手著法/歷史表啟發:
  ElephantEye 的著法排序非常簡單清晰,依次是迭代加深著法、好的吃子著法、殺手著法和按歷史表排序的生成著法。
(7) 將軍/唯一應將/兌子延伸:
  在選擇性延伸上,ElephantEye 採用了將軍、唯一應將和兌子延伸。
(8) Alpha-Beta主要變例搜索:
  ElephantEye 使用傳統意義上的遞歸式Alpha-Beta主要變例搜索。
(9) 開局庫:
  ElephantEye 的開局庫共包含了10,000個對稱著法,是從1990年到2005年全國象棋個人賽、團體賽、五羊杯、聯賽等8,000局頂尖比賽中提取的。
(10) 後台思考和時間分配策略:
  ElephantEye 支持後台思考功能,同時提供了時段制和加時制兩種時間分配策略,會自動合理分配時間。

六、源程序

  ElephantEye 的源程序包括9個模塊,內容大致為:
(1) ucci.h/ucci.cpp
  UCCI協議的命令解釋模塊,包括 Windows 和 Unix 下的行輸入接收程序;
(2) pregen.h/pregen.cpp
  Zobrist 數組和著法預置表的生成模塊。ElephantEye 的預置表分兩個部分,一是滑動棋子的著法預置表(包括不吃子、車吃子、炮吃子和隔兩子吃子),它是實現位行和位列技術的基礎;二是其他棋子的著法預置表,使得著法生成時避免了煩瑣的邊界判斷。
(3) position.h/position.cpp
  主要描述著法和局面的數據結構及功能。局面的處理是本模塊的重點,處理內容包括局面初始化、FEN串導入、棋子移動、殺手著法的合理性判斷、將軍判斷、長將和循環檢測、子力價值分調整等過程,還包括5個子力位置價值表。
(4) genmoves.cpp
  著法生成器,包括生成吃子著法和生成不吃子著法的兩個,但不能只生成解除將軍的著法。在生成吃子著法的同時賦予每個著法以相應的MVV(LVA)(或稱准SEE)值。該模塊還有一個專門判斷棋子是否有保護的函數,來計算MVV(LVA)值,對於有保護的棋子,計算MVV-LVA的值(小於零不計),對於無保護的棋子,只計算MVV的值。因此,判斷棋子是否有根的程序也包括在本模塊中。
(5) preeval.cpp
  子力位置數組預生成器,ElephantEye 根據「進攻/防守」和「開局/中局/殘局」兩個參數線性調整子力位置數組。
(6) evaluate.cpp
  局面評價函數,ElephantEye 採用了四級偷懶評價的機制,最粗的層次包括防守缺陷和特殊棋型的評價,進一層次包括子力區域平衡和牽制的評價,再進一層次包括兵的保護和子力互相聯繫保護的評價,最高層次包括馬的阻礙和車的靈活性的評價。
(7) hash.h/hash.cpp
  置換表、歷史表和著法列表管理模塊,包括置換表的分配和存取、主要變例獲取等操作。
(8) book.h/book.cpp
  開局庫讀取模塊。
(9) movesort.h/movesort.cpp
  著法列表排序模塊。
(10) search.h/search.cpp
  搜索模塊,除了靜態搜索、完全搜索和根結點搜索這三個主要過程外,還包括迭代加深控制、後台思考、時間分配、搜索參數統計和搜索信息輸出等內容。該模塊是整個程序的核心模塊。
(11) eleeye.cpp
  主程序(即 main 函數)。

七、程序表現

  ElephantEye 偏重於搜索,但在知識上比較欠缺。在2.8GHz的處理器上每秒可搜索約1,200,000個結點(包括常規搜索和靜態搜索),一般的中局局面在1分鐘內可搜索約11層。
  在棋力上,ElephantEye 和「棋隱」、SaoLa (象棋挑戰者)等程序具有同等水平,但由於局面評估函數上的缺陷,ElephantEye 距離頂尖的商業象棋軟件(謝謝大師、象棋世家、象棋奇兵、棋天大聖等)尚有一定的差距。
  ElephantEye 在聯眾、弈天等象棋對弈網站上作過測試,用等級分來衡量,聯眾網的戰績在2500分左右,弈天網快棋的戰績在2000分左右,慢棋在1500分左右。
  ElephantEye 於2005年9月參加在台北舉行的第10屆ICGA電腦奧林匹克大賽中國象棋組比賽,戰績是7勝5和14負,在14個程序中排名第11;2006年8月參加在北京舉行的全國首屆計算機博弈錦標賽,戰績是7勝2和11負,在18個程序中排名第7。

八、相關資源

  SourceForge 是 ElephantEye 源程序的唯一發佈網站,頁面是:

http://sourceforge.net/projects/elephanteye/

  ElephantEye 源程序包在 SourceForge 上最快的下載鏈接是:

http://superb-east.dl.sourceforge.net/s ... eye.tar.gz

  
http://superb-west.dl.sourceforge.net/s ... eye.tar.gz



  對於 ElephantEye 的版本改進,實時同步地發佈在 SourceForge 的SVN站點上,獲取地址是:

  
https://svn.sourceforge.net/svnroot/elephanteye/

  您可以使用 TortoiseSVN 等SVN客戶端程序獲取到最新的(跟開發者完全同步的)代碼,TortoiseSVN 的使用介紹和下載地址是:


http://sourceforge.net/projects/tortoisesvn/


  ElephantEye 必須在支持UCCI協議(如《象棋巫師》)的象棋程序下運行,《象棋巫師》安裝程序包含了最近一個版本的 ElephantEye,在 SourceForge 上最快的下載鏈接是:
    
http://superb-east.dl.sourceforge.net/s ... d_simp.exe (簡體中文版)
    
http://superb-west.dl.sourceforge.net/s ... d_simp.exe (簡體中文版)
    
http://superb-east.dl.sourceforge.net/s ... d_trid.exe (繁體中文版)
    
http://superb-west.dl.sourceforge.net/s ... d_trid.exe (繁體中文版)
  

如果已經安裝好《象棋巫師》,也可直接安裝最近一個版本的 ElephantEye,在 SourceForge 上最快的下載鏈接是:
    
http://superb-east.dl.sourceforge.net/s ... eleeye.exe
    
http://superb-west.dl.sourceforge.net/s ... eleeye.exe


  ElephantEye 的源程序包除了 ElephantEye 本身的源程序外,還包括以下幾個附加模塊:
  (1) 通用低級接口(utility):提供了彙編指令、位棋盤、數值計算、Visual Basic 下的原子語句等功能;
  (2) 中國象棋規則模塊(cchess):為其他軟件使用 ElephantEye 代碼提供了接口;
  (3) 開局庫製作模塊(MAKEBOOK):製作開局庫ELEEYE.BIN的代碼;
  (4) 淺紅象棋適配器(UCCI2QH):為淺紅象棋調用UCCI引擎提供了接口;
  (5) UCCI引擎聯賽模擬器(UCCILEAG):為UCCI引擎測試和比賽提供了自動批量對局的平台;
  (6) 淺紅象棋引擎支持UCCI協議的適配器(QH2UCCI):為「夢入神蛋」淺紅象棋加入UCCI引擎測試提供了接口;
  (7) BBS Chess(BBSCHESS):一個用 Visual Basic 製作的國際象棋局面設置工具,可在各高校BBS上粘貼彩色的國際象棋局面;
  (8) 棋盤圖片生成器(FEN2BMP):一個可以把國際象棋和中國象棋的FEN文件轉換成BMP文件的實用工具;
  (9) 其他工具(MISC):包括BASE64轉碼、BIG5/GB轉碼、UNIX文本轉碼、簡易網絡通訊、管道測試等工具。
  (10) 說明文檔(DOC):即《中國象棋程序設計探索》系列連載;
  (11) 參賽棋譜(CCGC):ElephantEye 參加首屆全國計算機博弈錦標賽(CCGC)的全部棋譜。

  如果要獲得關於 ElephantEye 的更加詳細的信息,可登錄《象棋百科全書》網站:
    
http://www.elephantbase.net/
舊站台經已結朿了, 學生們可到遊戲站玩玩 Flash Game (不必註冊) 免費 Flash Game
在此學到很多架站知識, 永遠多謝:
心靈捕手老師, ~倉木麻衣~, 依夢兒 及 神川小羽各位大大相助
saki302
星球普通子民
星球普通子民
文章: 3
註冊時間: 2007-04-03 18:04
聯繫:

文章 saki302 »

謝謝分享唷!!!
『BBS社區–CABAL遊戲搜尋平台』
↑ 請 各 位 多 多 捧 場  ↑
pan1987
星球普通子民
星球普通子民
文章: 1
註冊時間: 2004-09-05 19:20
聯繫:

文章 pan1987 »

真的很不錯~~
多謝分享~~~
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8510
註冊時間: 2004-04-30 01:54
來自: Taiwan

Re: [分享] 一個不錯的免費象棋軟件

文章 心靈捕手 »

kkt 寫:[象棋] 一個不錯的免費象棋軟件

無意中覓得這個免費象棋軟件, 試用後非常不錯.
速度快, 棋力也不差, 比起我所用過的都要好.

它還有源碼可供網絡平台採用的 (又要找心靈捕手老師研究了 :-P )
這真是支值得推薦的好軟體! :-D

老實說, 我與電腦下了十幾盤, 居然全軍覆沒. :oops:

它的源碼, 有些類似之前插入水怪者.
我猜想: 即使可以插入論壇使用, 應該是一樣無法記錄會員們的輸贏情況.
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
回覆文章

回到「遊戲」