如何将板值从A更改为B

时间:2019-03-24 16:29:27

标签: prolog

这是我在Prolog中的第一个程序,我遇到了一个问题,有人要求我将板的值从A更改为B,如下所示:

面板尺寸:6列x 6行

单元格的初始值:A

最终细胞值:B

条件:

  

当A翻转时,它变成B,其邻居翻转为Z。如果其邻居是A,则它们成为B,反之,如果是B,则它们成为A。

在邻居中,它们表示同一行和同一列中的框。这意味着如果我们更改一个单元格的值,其他四个单元格的值也会随之改变。

我一直到处看,观看视频并阅读可用的示例,以了解如何进行。 我不是在要求代码本身,我想了解是否有人可以向我解释如何开始/思考。

我已经尝试过了:

    :- dynamic ligne/2. 

matrix([ 
[1,2,3,4,5,6], 
[7,8,9,10,11,12], 
[13,14,15,16,17,18], 
[19,20,21,22,23,24], 
[25,26,27,28,29,30], 
[31,32,33,34,35,36] 
]). 
ligne(X, Ligne) :- 
        matrix(M), 
        nth0(X, M, Ligne), 
        assert(ligne(X, Ligne)). 
colonne(X, Colonne) :- 
        matrix(M), 
        maplist(nth0(X), M, Colonne). 

voi_vert(X, Y, Z) :- 
       ligne(X, Ligne), 
      Y is X+1, 
       nth0(Y, Ligne, Z), !.

0 个答案:

没有答案