2017-04-15 55 views
1

我想写一个代码来解决这个难题。 规则:交叉换色拼图逻辑解决方案

  • 如果单击绿色瓷砖变得红色
  • 如果您点击红色瓷砖它变成灰色
  • 如果您点击灰色瓷砖它变成绿色
  • 另外,如果你点击一个瓷砖,它的邻居垂直和水平也会改变颜色,就像十字。
  • 您可以点击任意多个图块。

对于〔实施例:

我在寻找其背后逻辑,到目前为止,我没有任何线索。我可以编码,这不是我要找的,而是解决方案背后的(数学)逻辑。例如,魔方的步骤使得有一个完整有序的立方体。我想制作一个自动尝试解决这个问题的程序。

回答

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; 
} 
+0

对不起,我queston是误导。我可以编码,这不是我要找的,而是解决方案背后的(数学)逻辑。例如,魔方的步骤使得有一个完整有序的立方体。我想制作一个自动尝试解决这个问题的程序。 – huksha