samedi 2 juin 2018

How do I make my Random generator of poker cards to end when cards are over?

Android version:4.2

I am developing an android App. I need to generate images from drawable folder randomly and set text to say wich card its been selected. I wish my app to enumerate every card randomly selected without repetitons until the 52 card deck ends.

My xml code is:

<ImageView
        android:id="@+id/imageView"
        android:layout_width="300dp"
        android:layout_height="300dp"
        android:layout_centerInParent="true"
        android:scaleType="centerInside"
        tools:layout_editor_absoluteX="16dp"
        tools:layout_editor_absoluteY="16dp" />

In my drawable I have 52 images of poker cards with different names.

public class MainActivity extends AppCompatActivity {

   ImageView imageView;

   TextView txt1;

   Button button;

   Random r;

   Integer[] images = {
           R.drawable.ace_of_hearts,
           R.drawable.two_of_hearts,
           R.drawable.three_of_hearts,
           R.drawable.four_of_hearts,
           ...

I am using this code to generate random cards on button click and display card name.

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

    imageView = (ImageView) findViewById(R.id.imageView);

    txt1 = (TextView) findViewById(R.id.mytext);

    button = (Button) findViewById(R.id.btn1);

    r = new Random();

    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //remove duplicates
            do {
                pickedImage = r.nextInt(images.length);
            } while (pickedImage == lastPicked);


            lastPicked = pickedImage;
            //display random image
            imageView.setImageResource(images[pickedImage]);
            txt1.setText(images[pickedImage]);
            }
    });
}




Aucun commentaire:

Enregistrer un commentaire