4. Final Project Part II


Submit solution

Points: 20
Time limit: 60.0s
Memory limit: 640M

Author:
Problem type
Allowed languages
Prolog

這個題目不會算分但要記得繳交當期末比賽用程式

五子棋,一方執黑、一方執白,黑方先下,誰先達五子連線,判勝。
這一題希望各位找出一個輸出一個最好的座標,使你獲勝或避免在未來四步內落敗。


規則如下:

活四:四顆子連成一線,兩邊下一子皆可形成五。


死四:只有一個點下一子可形成五的四子連線,有直四和跳四。


活三:次一子即可形成活四的三子連線,分為直三和跳三兩種。




由於先下黑子有很大的優勢,因此對黑棋做出以下限制

長連:只要黑棋連線超過五子,即為禁手。


四四:黑子一子形成二個四,無論是活四或死四。


雙活三:黑子一子形成二個活三的著手,此子為兩個活三的交點。


  • 只有黑棋有禁手,下出禁手判黑敗,白棋沒有限制。
  • 若黑棋禁手與五子同時發生,五子較大,判黑勝。
  • 三個三、三個四、四三三、四四三、同樣為黑棋禁手。

Input

有兩種 predicate,
black(X, Y).
white(X, Y).
代表目前棋盤上已經有棋子的座標和它的顏色。
整個盤面為 15 X 15 [1-15, 1-15],如下圖。

Output

找出一組座標使我方獲勝或避免在未來四步內落敗。
答案可能不只一組,輸出一組即可。


Sample Input1

black(11, 8).
black(11, 7).
black(10, 8).
black(9, 8).
black(8, 9).
black(8, 8).
black(7, 9).
black(7, 7).
white(6, 10).
white(6, 9).
white(6, 8).
white(8, 7).
white(9, 7).
white(10, 7).
white(8, 6).
white(9, 6).


Sample Output1

輸出任一即可。

black(7, 8)
black(12, 8)

Sample Input2

black(7, 11).
black(7, 10).
white(8, 10).
white(8, 9).
black(9, 9).
black(7, 8).
black(9, 8).
white(8, 7).
white(8, 6).


Sample Output2

white(8, 8)

Sample Input3

black(7, 11).
black(7, 10).
white(8, 10).
black(7, 8).
white(8, 7).


Sample Output3

輸出任一即可。

white(7, 7)
white(7, 9)
white(7, 12)


提醒事項


  1. 繳交期限:2021-06-18 Fri. 23:59
  2. 可以從目前棋子數量判斷我方為何
  3. 可以上傳很多次 我們會拿最後一次上傳的當作繳交來比賽

Comments

There are no comments at the moment.