2011-03-09 18 views
5

Java için yeni ve android uygulamaları yapıyorum. Kullanıcının girdiği bilgilere göre bir dizi zar döndüren bir Java programını nasıl yaparsınız?Android uygulamamın rasgele bir sayı oluşturmasını nasıl sağlayabilirim?

Oluşturduğum Java programı sadece bir zar atıyor.

Java'yı birinden altıya rasgele nasıl çevirirsiniz?

Java'nın, kullanıcının istediği sayısına göre rasgele sayılar yapmasını nasıl sağlarsınız?

Son olarak, Java'nın kullanıcı tarafından girilen numaraya göre bir resim çizmesini nasıl sağlayabilirsiniz?

Uygulamam nasıl görünüyor.

Valid XHTML http://img852.imageshack.us/img852/4439/screenshotjavawarhammer.png.

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="fill_parent" 
    android:padding="5dip" android:background="@drawable/warhammerdicerollalpha" 
    android:layout_height="fill_parent"> 


    <TextView android:layout_width="fill_parent" 
     android:layout_height="wrap_content" android:text="@string/hello" /> 
    <EditText android:layout_height="wrap_content" 
     android:layout_width="match_parent" android:id="@+id/enternumberofdice"></EditText> 
    <Button android:text="Button" android:id="@+id/button1" 
     android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> 
    <TextView android:layout_width="fill_parent" 
     android:layout_height="wrap_content" android:id="@+id/generatenumber" /> 
    <TextView android:layout_width="wrap_content" 
     android:layout_height="wrap_content" android:text="LOL" android:id="@+id/text4"></TextView> 

</LinearLayout> 
+4

Cuma günü olsaydı, bu 'uzay-deniz' sorusunu yeniden etiketlerdim. –

+0

"Bir zar atmak" ile ne demek istiyorsun? Burada zar göremiyorum. – gigadot

+0

Tümü bir ile altı arasında bir sayı atmaya çalışıyorum. Bunu nasıl yaptın?? – lonesarah

cevap

14

ne dersiniz Random.nextInt():

İşte benim kod

package com.warhammerdicerrolleralpha; 

import java.util.Random; 


import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 

public class myMain extends Activity 
{ 
    /** Called when the activity is first created. 
    * @return */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 



    final Random myRandom = new Random(6); 



    Button buttonGenerate = (Button)findViewById(R.id.button1); 
    final TextView textGenerateNumber = (TextView)findViewById(R.id.text4); 




    buttonGenerate.setOnClickListener(new OnClickListener() 
    { 

      @Override 
      public void onClick(View v) 
      { 
      // TODO Auto-generated method stub 
      textGenerateNumber.setText(String.valueOf(myRandom.nextInt())); 
      }}); 

    } 

} 

Benim xml dosyası var?

Kullanımı: Bir görüntüyü güncellemek açısından

final Random rand = new Random(); 
int diceRoll = rand.nextInt(6) + 1; // uniformly distributed int from 1 to 6 

, siz (hepsi aynı boyut) görüntülemek ve farklı myImageView.setImageResource(R.drawable.dice_n) arasında seçim yapmak için bir switch kullanmak istiyorum 6 farklı görüntüler var.

+0

Ben farklı bir yöntem – lonesarah

+0

tanımlanmış bir iç sınıf içinde myRandom olmayan bir son değişkene başvuramıyorum Sonraki (5) 0 (dahil) için 5 (hariç) rastgele sayılar üretir. Yani nextInt (6) +1 – Maaalte

+0

kullanmanız gerekecek Teşekkürler Maaalte, şimdi düzeltdim. – fredley

0

long tohumlu bir Random nesnesini kullanın (System.currentTimeMillis() iyi bir tanesidir). Ardından nesnenizden nextInt(int n) yöntemini arayın ve kalıp boyutunu girin. (nextInt(int n) aralığının 0'da başladığını unutmayın, böylece kalıp boyutunda geçiş yapmak isteyeceksiniz, ardından elde edilen ruloya 1 ekleyin).

long tohumunun nedeni, sayı dağılımının (sözde) rasgeleliğini iyileştirmektir.

Zaten yapmadıysanız, kalıp boyutunu sabit olarak bildirmelisiniz. Rastgele here üzerinde Javadoc.

İlgili konular