Prolog

2012-04-07 29 views
5

için bir 4x4 anakart üzerindeki olası tüm eylemleri listele Bir olasılıkla bir oyuncunun 4x4 kartında bir eylem gerçekleştirdiği (örneğin 8 farklı piyon ile) olası tüm panoları nasıl listeleyebilirim?Prolog

cular, örneğin olmalıdır:

([1,2,3,4,5,6,7,8]) 

ve tek oynamak her zaman otomatik olarak yeniden kullanılabilir olamaz.

kurulu tam olana kadar

([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,-,-) 

Ve her aşama için bir oyuncu gemide bir pion koyar Bu panoda gibi olmalıdır.

cevap

2

Sana bir tahta B, bir hareket M ve M Ek B. yapılır taşındıktan sonra çıkan yönetim kurulu arasında bir üçlü ilişki olduğunu board0_move_board/3 gibi bir yüklemi, var varsayalım, sana bir yüklemi board_move/2 olduğunu varsayalım o Bir tahta, o tahtada mümkün olan bir hamle ile ilgilidir ve geriye dönük olarak mümkün olan tüm hamleleri verir. ,

findall(Board, (board_move(Board0, Move), board0_move_board(Board0, Move, Board)), Boards) 
+0

Evet sana kurulu ile bir oyuncu hamle bağlayan ve yapılması bu hareketle birlikte tahta sonuçları "board0_move_board/3" olarak tarif ilk yüklemi var: Bu yüklemler ile, tüm olası panoları alabilirsiniz ama ben ikinci betik board_move/2..at en azından şimdi tanımlamak yolu ile yok. ve ayrıca bu şekilde benim gibi doldurmak gerekir "hamle ((Renk, _), Yönetim Kurulu, NewBoardsList): – user1319472

+0

herkes yardım için mi? – user1319472