2014-04-06 70 views
0

我製作這個紙牌遊戲的應用程序,當用戶點擊卡時,這張圖片將變成隨機的其他卡。這裏有一個例子:紙牌遊戲應用程序 - 隨機卡,但不是相同的卡兩次

public class MainActivity extends Activity { 

int[] cards={R.drawable.aceofspades,R.drawable.aceofhearts,R.drawable.aceofclubs}; 
static Random r = new Random(); 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

} 


public void imageClick(View view) { 

     int n=r.nextInt(cards.length); 

    { 
    ImageView image = (ImageView) findViewById(R.id.imageDice1); 
    image.setImageResource(cards[n]); 
    } 


} 

} 

我想改變代碼,以便它是不可能的,同樣的卡會顯示兩次,而不是直到所有的卡片通過。所以在這種情況下,當牌是「aceofspades」時,下一張牌和之後的牌不應該是「aceofspades」。 用戶將看到的第一個圖像是「R.drawable.cardback」。 我想要一個代碼,在顯示所有卡片時將圖像更改回「cardback」。 任何幫助表示讚賞。

+0

只是爲了表明你應該真的把圖像資源保存在一個數組中,所以你不必輸入52 if語句。其次,你應該使用if else語句,因爲即使它發現匹配,你的程序也會繼續檢查計數器。 – CarbonAssassin

回答

1

您需要將卡片(或只是值1至52)放在數組或列表中,然後shuffle他們。你所描述的要求恰恰是洗牌所要做的。