2017-01-19 73 views
0

我對Android/Java編程比較陌生。 我正在創建一個基於文本的社交遊戲,並創建了一個完整的ID,名稱,角色的SQLite數據庫。在Android中爲玩家分配一個隨機角色

角色將由應用程序分配並存儲在相關的SQLite表中。 7(2個獨特的角色,作用相同的2和相同的角色3)

我被困在哪裏得到 -

由於角色是隨機的,我是從1想,也許一個隨機數發生器開始以及如何實現此功能,任何幫助/建議將不勝感激。

+0

數字是唯一的嗎?我想要填補所有角色。所以(1,2)= M,(3)= A,(4)= D,(5,6)= C –

回答

0

由於您的實際任務是角色分配,你不找隨機數。你有一組固定的可用號碼,你想要得到的每個號碼恰好一次沒有重複

實現這一目標的最簡單的方法是將所有可用號碼的列表,然後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

0

在它的最簡單的本質......你只是想產生像這樣一個隨機數:

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 
+0

謝謝!我將如何去將每個隨機數聲明爲一個字符串? (例如,1 = M,2 = M,3 = A,4 = D,5 = C,6 = C 1) –

+0

switch(rand.nextInt(MAX_INT)+ 1){case1: case 2: mRole = M; 休息; 情況3: mRole = A; 休息; //等 } – Charlie

相關問題