五子棋是雙人博弈棋類益智遊戲,由圍棋演變而來,屬純策略型。棋盤一般15*15,即15行,15列,共225個交叉點,即棋子落點;棋子由黑白兩色組成,黑棋123顆,白棋122顆。遊戲規則爲黑先白後,誰先五子連成一條直線誰贏,其中直線能夠是橫的、縱的、45度、135度。html
本次Java編程個人目的是現實人機對戰,即遊戲者一方是人,另外一方計算機。這就要求程序不只要具有五子棋的基本界面,還要編程指導計算機與人進行對弈。爲了使程序儘量智能,我採用了貪心策略、傳統搜索算法、極大極小博弈樹算法,對應遊戲玩家的3個等級:簡單、中等、困難。算法
Java語言是面向對象的語言。我在進行五子棋遊戲編程是總共傳建立了11個自定義的類。在編寫程序的過程當中,我有一個明顯的體驗就是面向對象編程就是一項有關對象設計和對象接口技術,不少關鍵的技術就是如何設計自定義的對象。編程
下面我先歸納給出個人全部類的做用:mainFrame類:主框架類,我應用程序的入口;chessPositon類:主控類,這個類是我程序的核心類,負責控制雙方的下棋,以及調用其餘的類完成當前棋局的顯示繪製;chessPanel類:面板類,調用其餘底層類完成當前棋局的顯示繪製;chessBoard類:棋盤繪製類,負責棋盤的繪製;chessImage類:文件類,包含各類資源(背景圖片、背景音樂)以及靜態全局變量(public數組
static Type);chessButton類:組件類,定義各類組件,包括按鈕、單選按鈕、文本框等;chessMusic類:音樂類,負責調用Java類庫完成背景音樂、下棋音樂、取勝音樂等的播放;chessPiece類:棋局類,定義棋局二維數組數據結構並完成相關操做;chessList類:棧類,完成悔棋等操做;chessOneStep類:棋子類,定義每步座標以及下在該處得到的估價值;myCompare類:排序類,完成chessOneStep類的自定義排序;數據結構
參考博文和源碼下載地址:框架