基於SDL的C 黑白棋

2021-08-21 21:35:23 字數 822 閱讀 3234

寫了乙個基於sdl的黑白棋遊戲,分享一下。

黑白棋,又叫翻轉棋(reversi)、奧賽羅棋(othello)、蘋果棋或反棋(anti reversi)。黑白棋在西方和日本很流行。遊戲通過相互翻轉對方的棋子,最後以棋盤上誰的棋子多來判斷勝負。

如果玩家在棋盤上沒有地方可以下子,則該玩家對手可以連下。雙方都沒有棋子可以下時棋局結束,以棋子數目來計算勝負,棋子多的一方獲勝。在棋盤還沒有下滿時,如果一方的棋子已經被對方吃光,則棋局也結束。將對手棋子吃光的一方獲勝。

翻轉棋類似於棋盤遊戲「奧賽羅 (othello)」,是一種得分會戲劇性變化並且需要長時間思考的策略性遊戲。

翻轉棋的棋盤上有 64 個可以放置黑白棋子的方格(類似於西洋棋和跳棋)。遊戲的目標是使棋盤上自己顏色的棋子數超過對手的棋子數。

當遊戲雙方都不能再按規則落子時,遊戲就結束了。通常,遊戲結束時棋盤上會擺滿了棋子。結束時誰的棋子最多誰就是贏家。

我的源**在這裡:

其中ai.h和ai.cpp裡實現了黑白棋的演算法,也有各種輔助函式,可以單獨拿出來用,加乙個main函式後在小黑窗裡執行如下:

reversi.cpp中採用了sdl圖形庫為黑白棋加了乙個圖形介面。我是用的vs2015寫的**,需要先配置sdl環境才能執行。執行效果如下:

C 黑白棋(落子)

時限 1000ms 記憶體限制 10000k 總時限 3000ms 描述 經過前3題的熱身相信大家已經對黑白棋有了一定的認識,下面我們來編寫稍微複雜一點的模組。黑白棋並不像5子棋或者圍棋一樣可以在任意空白處下子,那麼檢測某個位置是否可以下子 如對規則還不是很了解,請參照前3題的規則介紹 也是我們黑白...

黑白棋 C 版本

using system using system.drawing using system.threading using system.windows.forms private void show can position 統計可以落子的位置數 private intshow can num ...

黑白棋遊戲

黑白棋遊戲 time limit 10000ms memory limit 65536k total submit 9 accepted 5 case time limit 1000ms description 問題描述 黑白棋遊戲的棋盤由4 4方格陣列構成。棋盤的每一方格中放有1枚棋子,共有8枚白...