我對Android/Java編程比較陌生。 我正在創建一個基於文本的社交遊戲,並創建了一個完整的ID,名稱,角色的SQLite數據庫。在Android中爲玩家分配一個隨機角色
角色將由應用程序分配並存儲在相關的SQLite表中。 7(2個獨特的角色,作用相同的2和相同的角色3)
我被困在哪裏得到 -
由於角色是隨機的,我是從1想,也許一個隨機數發生器開始以及如何實現此功能,任何幫助/建議將不勝感激。
我對Android/Java編程比較陌生。 我正在創建一個基於文本的社交遊戲,並創建了一個完整的ID,名稱,角色的SQLite數據庫。在Android中爲玩家分配一個隨機角色
角色將由應用程序分配並存儲在相關的SQLite表中。 7(2個獨特的角色,作用相同的2和相同的角色3)
我被困在哪裏得到 -
由於角色是隨機的,我是從1想,也許一個隨機數發生器開始以及如何實現此功能,任何幫助/建議將不勝感激。
由於您的實際任務是角色分配,你不找實隨機數。你有一組固定的可用號碼,你想要得到的每個號碼恰好一次與沒有重複。
實現這一目標的最簡單的方法是將所有可用號碼的列表,然後shuffle它:
import java.util.*;
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7);
Collections.shuffle(numbers);
System.out.println(numbers);
}
}
你可以使用任何類型的列表,所以你可以,如果你」產品總數跳過數只對你的角色感興趣:
import java.util.*;
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
List<String> roles = Arrays.asList("M", "M", "A", "D", "C", "C");
Collections.shuffle(roles);
System.out.println(roles);
}
}
查看關於ideone的working example。
在它的最簡單的本質......你只是想產生像這樣一個隨機數:
Random rand = new Random();
final int MAX_INT = 7;
int n = rand.nextInt(MAX_INT) + 1;
//7 is the maximum and the 1 is our minimum
謝謝!我將如何去將每個隨機數聲明爲一個字符串? (例如,1 = M,2 = M,3 = A,4 = D,5 = C,6 = C 1) –
switch(rand.nextInt(MAX_INT)+ 1){case1: case 2: mRole = M; 休息; 情況3: mRole = A; 休息; //等 } – Charlie
數字是唯一的嗎?我想要填補所有角色。所以(1,2)= M,(3)= A,(4)= D,(5,6)= C –