1

テーブルからセルをランダムに選択するために、この方法を使用しています。

Math.floor(Math.random() * example.length)

問題なく動作します。

しかし、プロジェクトの後半でそのセルを再び選択できるように、選択を記憶する必要があります。

これを行う方法はありますか?

編集:テストスクリプトでこのメソッドを使用しています:

lvwPrivilegestable().click(
    atCell(atRow((int)Math.floor(Math.random() * orderTable.getRowCount())), 
    atColumn((int)Math.floor(Math.random() * orderTable.getColumnCount())))); 

そのため、テストを再生するときにテーブル内のセルをクリックすることができました。そして、後で同じセルをクリックしたいと思います。

答え:

カミュは正しかったようです。結果を変数に渡し、後でそれを読み取ることで問題が解決しました。もう少し複雑だと思いました。

編集:

さて、毎回異なるセルをランダムに選択する方法はありますか? 私の方法を使用すると、同じセルを選択する可能性があるためです。

4

1 に答える 1

0

乱数を記憶できる小さなユーティリティ オブジェクトを作成できます。

function replayRandom() {
var results = [];
var replay = false;

return {
  replay: function() {
    replay = true;
  },
  next: function() {
    if (!replay) {
      val = Math.random();
      results.push(val);
      return val;
    }
    val = results[0];
    results.shift();
    return val;
  }
};
}

例:

r = replayRandom();
r.next();
0.7939797908670404
>>> r.next();
0.6103413074215163
>>> r.replay();
>>> r.next();
0.7939797908670404
>>> r.next();
0.6103413074215163
于 2012-04-05T10:02:12.367 に答える