2014-10-05 2 views
2

В этом коде вторая строка проходит через массив и выводит то, что получает, и его случайные. Но иногда я получаю одно и то же дважды, например, «Штрауб», а затем «Страуб», а затем что-то вроде «Рушера». Я пытался сделать цикл «do while», но я не знаю, как настроить его там, где он не повторяется. Кстати, это быстрый язык программирования.Программирование iOS: создание arc4_random не повторяется, используя цикл do while

let types = ["Alex", "Straub", "Rusher", "Graser"] 

let type = types[Int(arc4random_uniform(UInt32(types.count)))] 

println(type) 

Если у вас есть какие-либо вопросы, пожалуйста, напишите их в разделе комментариев

+0

Когда вы выбросили кости, есть шанс получить тот же номер дважды в строке ... – zisoft

+0

Можете ли вы разместить больше своего кода? –

+0

@SteveRosenberg, который является всем кодом, который у меня есть, я хочу, чтобы имена отображались, но я не хочу, чтобы их повторяли. Я хочу, чтобы все они были случайными, но никто не повторял. – alex

ответ

1

Это позволяет избежать прямого повторения:

var lastIndex = -1 
var index = -1 

let types = ["Alex", "Straub", "Rusher", "Graser"] 

do { 
    index = Int(arc4random_uniform(UInt32(types.count))) 
} while index == lastIndex 

println(types[index]) 
lastIndex = index 
+0

Этот код генерирует один раз пару раз, это скажет Алекс Алекс Алекс Алекс Алекс, затем Страуб Мне нужно, чтобы он не повторялся, но все же несколько случайный – alex

Смежные вопросы