如何(例如)一个玩家在4x4板(8个不同的中介)中执行某些操作后,如何列出所有可能的板?
中介应该是,例如:
([1,2,3,4,5,6,7,8])
Run Code Online (Sandbox Code Playgroud)
每次自动播放时都无法重复使用.
董事会应该像这个董事会
([1,1,-,-],(1,2,-,-)...(1,3,-,-)(1,4,-,-)
[2,1,-,-],(2,2,-,-)...(2,3,-,-)(2,4,-,-)
[3,1,-,-],(3,2,-,-)...(3,3,-,-)(3,4,-,-)
[4,1,-,-],(4,2,-,-)...(4,3,-,-)(4,4,-,-)
Run Code Online (Sandbox Code Playgroud)
每轮一名玩家将一个中介放在棋盘上直到它满了.
我假设你有一个像 的谓词board0_move_board/3
,它是棋盘 B、移动 M 以及在 B 上进行移动 M 后生成的棋盘之间的三元关系。此外,我假设你有一个将board_move/2
棋盘与移动关联起来的谓词这在棋盘上是可能的,并且在回溯时连续给出所有可能的移动。通过这些谓词,您可以获得所有可能的板:
findall(Board, (board_move(Board0, Move), board0_move_board(Board0, Move, Board)), Boards)
Run Code Online (Sandbox Code Playgroud)