随机指示,无重复..(错误描述)

Bar*_*der 0 c c# arduino

嘿那里,所以我把一个随机模式生成的东西拼凑起来.

我的代码到目前为止:

  int permutes = 100;
  int y = 31;
  int x = 63;

  while (permutes > 0) {
    int rndTurn = random(1, 4);

    if (rndTurn == 1) { y = y - 1; } //go up
    if (rndTurn == 2) { y = y + 1; } //go down
    if (rndTurn == 3) { x = x - 1; } //go right
    if (rndTurn == 4) { x = x + 1; } //go left

    setP(x, y, 1);
    delay(250);
  }
Run Code Online (Sandbox Code Playgroud)

我的问题是,我如何才能让代码不再回归?

例如,代码说"向左走",但下一个循环说"走右",我怎么能阻止这个?

注意:setP打开特定像素.

干杯人!

cle*_*tus 6

这取决于你的意思.

如果你的意思是"避免回到我以前最常见的一步"那么你必须记住最后一次运动的方向.那就是如果你向上移动你的下一个动作就不能倒下.

如果你的意思是"避免回到你曾经去过的地方",那么你将不得不记住你曾经去过的每个地方.这可以使用哈希表有效地实现,该哈希表使用具有表示具有适当的Equals/HashCode函数的坐标的类的键.

  • 此外,您还需要实现回溯,因为可能会出现无法移动的地方. (2认同)