FOJ 1490 五子棋 解題報告

2021-05-01 23:38:18 字數 1103 閱讀 3922

五子棋是起源於中國古代的傳統黑白棋種之一。現代五子棋日文稱之為"連珠",音譯為"renju",英文稱之為"gobang"或"fir"(five in a row的縮寫),亦有"連五子"、"五子連"、"串珠"、"五目"、"五目碰"、"五格"等多種稱謂。其規則簡單,在15*15的棋盤上黑棋先行,其中一方有五枚棋子連成一線即可獲勝(這裡不考慮專業比賽中的禁手等規則)。

不過在很多情況下,當一方出現「活四」,就是四子連在一起,並且兩端都可以再放一粒己方的棋子的時候,對方就會主動認輸(如圖中10,6,12,14)。

五子棋中通常用字母和數字的組合表示棋子的位置,如上圖a1表示左下角的點。

請編寫乙個程式判斷在乙個給定的五子棋對局中的勝方。

輸入資料

本題有多組輸入資料,你必須處理到eof為止。

每組資料有若干行,落子位置由若干空格或換行隔開,由黑方開始,雙方輪流下子。最後以end表示棋局結束。我們保證輸入的是乙個合法的棋局,並且恰好在棋譜的最後一步落子時分出勝負,只有在一方有五枚棋子連成一線或者出現「活四」的情況下才分出勝負。

輸出資料

輸出只有一行,表示勝方和總共落子的步數,中間用乙個空格隔開,b表示黑方勝,w表示白方勝。

輸入樣例

f7 f8 g6     

e8 d8 h5 e5 g8 h8 h6 i5

h4 i7 h3 end

輸出樣例

w 14
分析:其實這一題就要知道一點,當棋局結束的時候,最後落子的那個一定是贏家
而先走的一定是黑棋,我們只要判斷總共棋子的奇偶性
如果是偶數的話就是白子贏,奇數的話就是黑子贏
還有一點注意的是輸入格式,要用c語言的scanf("%s"),因為這個既不接收空格也不接收回車
**如下:

五子棋實驗報告

軟體 題目 五子棋遊戲程式設計 一 內容 五子棋的遊戲規則對我們大家來說都很很清楚的。只要某一方的棋子在一條直線上,棋子數先達到五或以上,則該方為勝者。本人的五子棋小遊戲程式實現了兩個人對戰的簡單步驟和一些簡單規則,能判斷雙方的輸贏。當一方的棋子數先達到五或以上的,則能判斷這方為勝者。而且能判別,當...

下五子棋的bot 五子棋演算法

include include include include include include jsoncpp json.h c 編譯時預設包含此庫 define n 7 每個節點的分支數 以下為各棋型的識別碼 權重 define win 1 4000 define lose 2 4000 defi...

c 五子棋實驗報告 C 五子棋完整專案

例項簡介 例項截圖 核心 c 五子棋完整專案 五子棋 說明.txt 五子棋 frmmain.designer.cs frmmain.cs frmmain.resx program.cs properties assemblyinfo.cs resources.designer.cs resource...