2017-04-15 69 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