1
我在做賓果型遊戲。我有一個5x5的圖像按鈕,每個都有自己的textview。當應用程序啓動或重置時,我希望每個文本視圖顯示一個隨機字符串,而不會在遊戲過程中顯示任何一個字符串兩次。我現在有一個字符串在資源數組,其中127個項目:Android隨機不重複字符串
<?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>
,並顯示每個TextView的一個隨機字符串:
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串數組可供選擇,有些項目仍顯示兩次。有沒有一種方法可以讓陣列洗牌,而不是每場比賽兩次選擇相同的字符串?我已經搜索,我發現隨機字符串的信息,但沒有關於非重複的隨機字符串,所以,如果這是一個重複的問題道歉。
謝謝,正是我一直在尋找!我還在for循環之外添加了alreadyUsed.clear(),以便它可以從所有字符串中再次選擇每個新遊戲,但它不會在每場比賽中多次添加相同的字符串。 – heavy5rescue