如何(例如)一个玩家在4x4棋盘(8个不同的角色)中执行某些操作后,如何列出所有可能的棋盘?
π应该是,例如:
([1,2,3,4,5,6,7,8])
每次自动播放时都无法重复使用。
董事会应该像这个董事会
([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,-,-)
每轮一名玩家将一个中介放在棋盘上直到它满了。
答案 0 :(得分:2)
我假设你有一个类似board0_move_board/3
的谓词,这是一个三元组关系,它是一个B板,一个移动M,以及在B上移动M后得到的板。此外,我假设你有一个谓词board_move/2
将董事会与该董事会可能采取的行动联系起来,并在连续回溯时提供所有可能的行动。使用这些谓词,您可以获得所有可能的电路板:
findall(Board, (board_move(Board0, Move), board0_move_board(Board0, Move, Board)), Boards)