Code Monkey home page Code Monkey logo

chinesechess's Introduction

ChineseChess

象棋遊戲設計

需求:

  1. 人機對打

  2. 人人對打

  3. 搜尋深度設定(電腦強度)

  4. 悔棋,還原

  5. 下棋步法名稱顯示(ex:走三進一)

系統分為兩部分:

  1. AI設計

  2. 界面還有程式輔助設計(ex: UI顯示 以及操作和悔棋還原)

遊戲方式:

  1. 由鍵盤輸入指令控制要哪個要動 EX: 1-> 車(0,9) 2-> 馬(1,9) 依此類推,選定後再顯示該單位可走路線(x,y)值,在由選手輸入x y值移動,以,做間隔。

  2. 吃掉對方將軍為勝利者

AI設計

建立一顆博弈樹來表示下棋的過程,樹中的每一個節點代表棋盤上的一個局面,對每一個節點根據不同的走法又產生不同的局面(生出新的結點),如此不斷進行下去直到沒有可以選擇的走法,即到達葉子結點(棋局結束)。

該樹包含三種類型的結點

  1. 奇數層的中間結點(以及根結點),表示輪到紅方

  2. 偶數層的中間結點,表示輪到黑方

  3. 葉子結點,表示棋局結束

局面評估

自己定義棋子的價值,考慮棋子位置及子力總合來替局面打分數。

建議用Alpha-Beta搜尋算法

悔棋和還原功能

(建議)悔棋主要任務為:

  1. 下棋回合數減一

  2. 將當前局面的數據保存到[步法]的queue裡,以供還原

  3. 從[步法]queue中POP出上一回合的棋局數據,覆蓋目前回合。

  4. 將戰況的列表框中的目前回合的保存到一個[步法名稱]QUEUE中,以供還原用,然後刪掉列表框中的目前回合走法名稱。

還原則跟悔棋相反:

  1. 下棋回合數加一

  2. 跟上面相反就對了….

下棋步法顯示功能

簡單來說就是將步法的起點坐標,終點坐標轉成中國象棋規範的走法名稱。

指定棋類為一個class(內含ID 名稱 子力 顏色(哪方) 目前位置(x,y) 存在(是否被吃掉了))

指定每個種類(EX:車馬砲士將兵象)繼承棋類各為class

建議定義一個class作為遊戲平台將各種棋類CLASS包含在內部,而AI引擎定義為另一個CLASS分開做。

Main function裡最好只需要多加

Game.start();

就好

其他自由發揮 只要能做到上述需求即可

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.