基於openGauss的五子棋AI項目

語言: CN / TW / HK

目錄 1 前言 2 方案意義 3 架構設計 4 數據表設計 5 代碼結構 6 項目演示 7 總結

1 前言 openGauss是一款全面友好開放的企業級開源關係型數據庫。openGauss採用木蘭寬鬆許可證v2發行,提供面向多核架構的極致性能、全鏈路的業務、數據安全、基於AI的調優和高效運維的能力。本文采用openGauss設計一個AI小demo。

2 方案意義

人工智能被廣泛用於棋類對弈的主要原因是:

棋類對弈自古以來就被認為是人類智力活動的象徵,若人工智能成功達到、甚至高於人類水平,則就代表AI的發展潛力,從而吸引更多研究者關注並投身其中; 棋類很適合作為新AI算法的標杆。棋類遊戲規則簡潔、輸贏都在盤面,適合計算機求解。理論上只要在計算能力和算法上有新的突破,任何新的棋類遊戲都有可能得到攻克。而在棋類遊戲上的表現也可以直觀體現出AI之間計算能力與算法的高低,是促進AI算法發展的有效途徑。 就本五子棋智能對弈系統而言,其服務對象為同局域網下的多個終端,講求聯機互動、互相限制、互相博弈,打破了傳統二人對弈五子棋規則中,“若無禁手,先手易勝;若為後手,十堵九輸”的説法,是AI算法設計、網絡通信、數據庫等技術的綜合應用。

3 架構設計

其中對弈數據庫採用openGauss數據庫

4 數據表設計 棋盤數據表的表頭如圖所示

為將二維棋盤狀態存入數據庫中,令棋盤按 軸方向展開為一維序列

玩家數據表的表頭如圖所示

走子數據表的表頭如圖所示

5 代碼結構

如圖所示,依據模塊化程序設計的基本思想,將整個項目按照功能劃分為若干個小程序模塊,每個小程序模塊完成一個確定的功能,自頂向下、逐步分解、分而治之,各模塊相對獨立、功能單一、結構清晰。同時,在這些模塊之間建立必要的聯繫,通過模塊的互相協作完成整個功能的程序設計

image.png

各模塊具體設計如下:

main.py:啟動文件。 config.py:變量管理文件。管理所有跨文件的全局變量。 settings.py:配置文件。開發環境配置、第三方擴展插件參數配置、數據庫的鏈接路徑及其他配置等。 apps:主體文件包。其初始化文件包括Flask類的實例創建以及工廠函數。該文件包下設三個子文件包,分別對應架構設計中的三張藍圖。 exts:擴展文件包。第三方擴展插件的例化,創建映射對象等。 項目採用高度模塊化設計的優點有:控制了程序設計的複雜性;提高了代碼的重用性;易於維護和功能擴充;有利於團隊開發等。

6 項目演示

7 總結 基於openguass開發AI應用相當方便,也使我進一步掌握了數據庫的常用技術,提高工程開發能力和麪對未知問題的臨場解決能力,對設計、創新、分析水平都有很大的幫助。

作者:楊皓冬 openGauss: 一款高性能、高安全、高可靠的企業級開源關係型數據庫。

🍒如果您覺得博主的文章還不錯或者有幫助的話,請關注一下博主,如果三連點贊評論收藏就更好啦!謝謝各位大佬給予的支持!