3. Final Project Part I


Submit solution

Points: 10
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(7, 9).
black(8, 9).
black(9, 9).
white(6, 8).
white(7, 8).
black(8, 8).
black(9, 8).
white(7, 7).
white(8, 7).


Sample Output1

white(6, 9)
white(10, 9)

這題答案不只一個,輸出任一即可。

Sample Input2

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


Sample Output2

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


提醒事項


  1. 繳交期限:2021-06-04 Fri. 23:59
  2. 可以從目前棋子數量判斷我方為何

Comments


  • 0
    108971005  commented on June 10, 2021, 10:04 p.m.

    目前可以 submit 嗎? 我要 submit 時顯示以下訊息

    no judge is available

    • 0
      pcchen  commented on June 10, 2021, 10:30 p.m.

      抱歉剛剛 judge 斷掉,現在可以繳交了


  • 0
    108703016  commented on June 7, 2021, 8:41 a.m.

    助教 Sample Input1 的 white(10, 7) 是不是應該改成 white (8, 7)


    • 0
      pcchen  commented on June 9, 2021, 4:50 a.m.

      對耶,感謝!