2011-01-31 5 views
0

私が作っているゲームでは、私はユーザー識別を持つ予定のオブジェクトの配列を渡しています。私はこれらのオブジェクトのプレゼンテーションをランダムにしたいと思います。しかし、私は同じオブジェクトが2回提示されないようにする必要もあります。NSMutableArrayからランダムに描画し、同じ番号を2回使用しないでください。

これは私が仮に考えていた解決策です:私はサイズ10のゲームコントローラにオブジェクトの配列を渡します。ゲームコントローラでは、0〜9の間の乱数を作成し、配列から引き出しますその数字をインデックスとして...ゲームセッションで同じ乱数が使われていないことを確認する必要があるので、それがうまくいくかどうかはわかりません。

このタイプのランダムゲームロジックをどのように達成できるかについてのご意見はありますか?

おかげ

答えて

3

あなたはシャッフルアルゴリズムを探し、あなたの配列の内容をシャッフルする必要があります。

この方法では、以前に使用されていたかどうか心配することなく、数値を配列から取り除くことができます。最後の数字に達したら、配列を再整理して繰り返します。

はここに例を示しますhttp://www.cocoanetics.com/2009/04/shuffling-an-nsarray/

2

同じインデックスは、私は、アレイからのたびにオブジェクトを削除したい複数回出てくるのを避けるために。あなたが配列のサイズの乱数をベースにするなら、あなたは大丈夫でしょう。アレイを再作成して最初からやり直す場合は、アレイのコピーを作成します。

関連する問題