Colors 交叉颜色变化难题的逻辑解决方案
我想写一个代码来解决这个难题。 规则:Colors 交叉颜色变化难题的逻辑解决方案,colors,logic,Colors,Logic,我想写一个代码来解决这个难题。 规则: 如果单击绿色平铺,它将变为红色 如果单击红色平铺,它将变为灰色 如果单击灰色平铺,它将变为绿色 此外,如果您单击一个平铺,它的垂直和水平邻接也会改变颜色,如十字 您可以单击任意数量的平铺 对于exmaple: 我在寻找它背后的逻辑,到目前为止我还没有线索。我可以编写代码,这不是我想要的,而是解决方案背后的(数学?)逻辑。例如,魔方的步骤,使有一个完整的有序立方体。我想制作一个自动尝试解决这个问题的程序。如果你用数组来解决这个问题,它非常简单 i
- 如果单击绿色平铺,它将变为红色
- 如果单击红色平铺,它将变为灰色
- 如果单击灰色平铺,它将变为绿色
- 此外,如果您单击一个平铺,它的垂直和水平邻接也会改变颜色,如十字
- 您可以单击任意数量的平铺
我在寻找它背后的逻辑,到目前为止我还没有线索。我可以编写代码,这不是我想要的,而是解决方案背后的(数学?)逻辑。例如,魔方的步骤,使有一个完整的有序立方体。我想制作一个自动尝试解决这个问题的程序。如果你用数组来解决这个问题,它非常简单
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;
}
如果使用数组执行此操作,则非常简单
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;
}
对不起,我的提问有误导性。我可以编写代码,这不是我想要的,而是解决方案背后的(数学?)逻辑。例如,魔方的步骤,使有一个完整的有序立方体。我想制作一个自动尝试解决这个问题的程序。对不起,我的问题有误导性。我可以编写代码,这不是我想要的,而是解决方案背后的(数学?)逻辑。例如,魔方的步骤,使有一个完整的有序立方体。我想做一个程序,自动尝试解决这个问题。