Cross Color Change Puzzle逻辑解决方案

时间:2017-04-15 10:16:11

标签: colors logic puzzle

我想写一个代码来解决这个难题。 规则:

  • 如果您点击绿色图块,则会变为红色
  • 如果您点击红色图块,则会变为灰色
  • 如果您点击灰色图块,则会变为绿色
  • 另外,如果你点击一个瓷砖,它的邻居会垂直和水平地改变颜色,就像一个十字架。
  • 您可以根据需要点击图块。

例如:

我正在寻找它背后的逻辑,到目前为止我一点都不知道。我可以编写代码,它不是我想要的,而是解决方案背后的(数学?)逻辑。例如,Rubik的Cube步骤使得有一个完整的有序立方体。我想制作一个自动尝试解决此问题的程序。

1 个答案:

答案 0 :(得分:0)

如果你用数组做这个很简单,

int[][] box;

if(//if you click box[a][b])
{
    change_color(a,b);
    change_color(a-1,b);
    change_color(a+1,b);
    change_color(a,b-1);
    change_color(a,b+1);
}

change_color(int x,int y)
{
      if(box[x][y]==red)
      box[x][y]=grey;
      if(box[x][y]==grey)
      box[x][y]=green;
      if(box[x][y]==green)
      box[x][y]=red;
}
相关问题