在這個模擬中,採用檔案來儲存棋盤狀況。data.txt的內容類似下面這樣,0表示未下子,1表示黑子,2表示白子:
先將檔案中的資料讀取到乙個字元陣列中,然後對陣列內容進行遍歷判斷。分橫、豎、左右斜、右左斜四種情況判斷。若出現一方勝的情況,則將勝負標誌變數置為1或者2並跳出判斷,最後根據勝負標誌變數來輸出哪方勝並輸出取勝的起始座標點。源**如下:
以上方法中使用的是全棋盤判斷……接tbo1988同學的意見,可以在某方落子後根據該子座標判斷一橫條、一豎條、兩斜條就可以了。按這個思路小改一下以後,雖然**量沒怎麼減,可是效率上卻是大大提高了。
以下程式流程即使用者輸入乙個座標,然後函式judgment根據此座標對棋盤一橫條、一豎條、兩斜條進行判斷,然後返回勝負標誌變數。此函式基本上可以直接用於後來將基於mfc的五子棋遊戲中。
java五子棋解耦判斷勝負演算法
五子棋大家都玩過,就不贅述規則了,直接上 首先是棋子bean public class chessman public boolean getplaced public void setplaced boolean placed public int getcolor public void set...
noip模擬 五子棋
遞推 模擬。在讀取資料時,我們建4個圖,分別代表這個圖中橫 縱 左斜右斜的連續長度。例如heng i j 代表ij這個點所在的橫著一條線的長度。然後搜尋,對於乙個空點,如果他的上下都 4那麼如果這個點放上去答案會 1,如果上下都 4且加起來再 1 4,說明這個點放上去會 1.左右 左上右下 右上左下...
寫了個五子棋
還沒放假的時候想著寫乙個可以聯網對戰的五子棋,主要是剛剛學了些mfc,想動動手,結果一下子就把本地的給寫了出來,但是根本沒有考慮有關結構,還有哪些該做乙個類,類與類之間的繼承等關係,外加要考慮到多執行緒,以及不知道類裡面的postmessage怎麼寫 結果當輪到寫網路部分的時候就卡住了,客戶端這邊有...