基於java的人機五子棋

2021-09-24 23:46:01 字數 417 閱讀 3183

1 任務設計書

本專案要實現的是五子棋人機版,通過制定棋型的評分表使機器能夠對棋盤局勢評估。五子棋玩家雙方分別稱為「人」、「機器」 ,當人落子後,機器對棋盤掃瞄獲取可行棋的位置集合,然後遍歷該集合,利用評估函式對每個空位依次估分,得分最高的位置即為機器要落子的位置,在使用評估函式對空位打分時,為了避免機器只攻不守,需要使用「換位思考」的思想,也就是說打分時不僅考慮自身,還要考慮對方。

2 類與物件的設計

2.1 類

2.1.1 位置實體類location

location類封裝棋盤上的乙個位置,ai對局勢分析時會對位置打分,所以位置實體類應該有個字段儲存位置分數,location類的設計如圖1所示。

五子棋人機對弈

ai下棋演算法部分 乙個簡單的演算法 計算機進行計算尋找下棋位置 預設 可改 第一步黑棋 ai 先行 需提供資料 15 15的棋盤落子資料 int board 15 15 0表示無子 1表示play1棋子 2表示play2棋子 下棋步數 非必須 int step。pragma once classa...

五子棋人機對戰

參考 人機對戰 填子遊戲的攻防策略 關於機器的應對策略,在前文中有所表述,不一一解釋,本文進行了修繕和補強,但漏銅依然存在。增加了乙個倒計時功能,測試了一下,感覺一般,還是留在那裡,表明曾經研究過,供今後完善 增加了棋譜儲存功能和回放功能 增加了悔棋功能,這個還是有些用處的。另外策略中增加了禁手。如...

基於MFC實現的人機對戰五子棋遊戲

1 引言 此報告將詳細介紹本次課程設計的動機 設計思路及編寫技術的詳細過程,展現我所學過的c 知識以及我通過本次課程設計所學到例如mfc等知識。在文件最後我也會記錄我所編寫過程遇到的問題以及解決方案。1.1 背景 五子棋是起源於中國古代的傳統黑白棋種之一,此遊戲不僅能增強思維能力,提高智力,而且變化...