Как я могу случайно нарисовать из NSMutableArray и не использовать один и тот же номер дважды? - PullRequest
0 голосов
/ 31 января 2011

Для игры, которую я делаю, я передаю массив объектов с заданным числом, которые я собираюсь опознать.Я хотел бы сделать представление этих объектов случайным.Но мне также нужно сделать так, чтобы один и тот же объект не был представлен дважды.

Так что это решение, о котором я подумал неуверенно: я передаю массив объектов своему игровому контроллеру, размером 10В игровом контроллере я создаю случайное число от 0 до 9, а затем извлекаю из массива этот номер в качестве индекса ... Я не знаю, сработает ли это, хотя, потому что мне нужно убедиться, что то же самое случайное числоне используется в игровой сессии.

Есть какие-нибудь мысли о том, как я могу выполнить этот тип логики случайной игры?

Спасибо

Ответы [ 2 ]

3 голосов
/ 31 января 2011

Вам следует искать алгоритм перетасовки и перемешивать содержимое вашего массива.

Таким образом, вы можете просто вытолкнуть числа из массива, не беспокоясь, использовались ли они раньше - когда вы доберетесь до последнего номера,переставьте массив и повторите.

Вот пример: http://www.cocoanetics.com/2009/04/shuffling-an-nsarray/

2 голосов
/ 31 января 2011

Чтобы избежать появления одного и того же индекса более одного раза, я бы каждый раз удалял объект из массива.Если вы основали случайное число размера массива, все должно быть в порядке.Сделайте копию массива, если вы хотите иметь возможность воссоздать его, чтобы начать заново.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...