NetLogo每次从特定列表中获取不同的随机数

时间:2017-02-25 15:06:43

标签: random netlogo

让我们说我有名单

function reset() {
  //iterate through all sqr buttons and clear their values
  var buttonId;
  for (var i = 1; i < squares.length; i++) {
    buttonId = "sqr" + i;
    document.getElementById(buttonId).value = "";
  }

  //reset squares to empty Array
  squares = [];

  // reset the global variable for the game being over
  gameOver = false;
}

我希望从这个数组中生成随机数,该数字与前一个数字不同。

示例:勾选一个 - 生成0          勾选2 - 生成2          勾选三 - 生成1          勾选四 - 产生3

现在我有了

let mylist [0 1 2 3]

但是,例如,返回两个连续的0号滴答。

任何提示?谢谢。

1 个答案:

答案 0 :(得分:0)

一种方法是存储最后一个刻度中使用的数字,将其与当前刻度中选择的数字进行比较,如果它们相同则选择不同的数字。

globals [
  previous_number
]

to generate  

  let current_number previous_number
  let mylist [ 0 1 2 ]
  while [ current_number = previous_number ] [
    set current_number one-of mylist
  ]
  set previous_number current_number
  print current_number

end