Я делаю игру типа бинго.У меня есть 5x5 сетка кнопок изображений, каждая из которых имеет свое собственное текстовое представление.Когда приложение запускается или сбрасывается, я хочу, чтобы каждое текстовое представление отображало случайную строку без какой-либо одной строки, отображаемой дважды во время игры.В настоящее время у меня есть строки в массиве ресурсов, с 127 элементами:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="tile_text">
<item>String 1</item>
<item>String 2</item>
<item>String 3</item>
...all the way to String 127
</string-array>
</resources>
И для отображения случайной строки при каждом просмотре текста:
public String[] myString;
Resources res = getResources();
myString = res.getStringArray(R.array.tile_text);
Random random = new Random(System.currentTimeMillis());
int[] textViews = {
//I have all my textviews added to this array
};
for(int v : textViews) {
TextView tv = (TextView)findViewById(v);
tv.setText(myString[random.nextInt(myString.length)]);
}
Вышеприведенное работает хорошо, но даже с200 строк в массиве на выбор, некоторые элементы по-прежнему отображаются дважды.Есть ли способ заставить массив перемешать и не выбирать одну и ту же строку дважды для каждой игры?Я искал и нахожу информацию о случайных строках, но ничего о неповторяющихся случайных строках, поэтому извиняюсь, если это повторяющийся вопрос.