¿Cómo construir un juego de dados en Android?

En este artículo, construiremos un proyecto de juego de dados usando Java y XML en Android. El juego de dados se basa en un juego de dos jugadores. Ambos jugadores tiran los dados y el jugador que obtenga el valor de fase más alto ganará el juego. Habrá una sola actividad en esta aplicación. Esta actividad mostrará el nombre de los dos jugadores y sus dados. El resultado se mostrará en la parte superior y habrá un botón de rollo en la parte inferior. qué

Build a Dice Game in Android

Implementación paso a paso

Paso 1: Crear un nuevo proyecto

Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Tenga en cuenta que seleccione Java como lenguaje de programación.

Paso 2:

  • Imágenes de dados: todas las imágenes de dados se enumeran a continuación. Guárdelos en su carpeta dibujable en recursos. Ve a la aplicación > res > dibujable y pega los siguientes archivos:
  • Modifique el archivo colors.xml:

XML

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#6200EE</color>
    <color name="colorPrimaryDark">#3700B3</color>
    <color name="colorAccent">#03DAC5</color>
    <color name="gradStop">#0F9D58</color>
    <color name="white">#FFFFFF</color>
</resources>
  • archivo de fondo.xml:

XML

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape>
            <gradient
                android:angle="90"
                android:startColor="#0E5131"
                android:endColor="#0F9D58"
                android:type="linear"/>
        </shape>
    </item>
</selector>
  • archivo btn_bg.xml:

XML

<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
  
    <corners android:topLeftRadius="20dp"
        android:topRightRadius="20dp"
        android:bottomLeftRadius="20dp"
        android:bottomRightRadius="20dp"/>
  
    <stroke android:color="@color/white"
        android:width="2dp"/>
  
    <solid android:color="#022127"/>
  
</shape>

Paso 3: trabajar con el archivo activity_main.xml

Los códigos XML se utilizan para construir la estructura de la actividad, así como su parte de estilo. Contiene un TextView en la parte superior de la actividad para mostrar el resultado del juego. Luego contiene dos ImageView , cada uno con un TextView para el nombre del jugador y la imagen de los dados lanzados. En la parte inferior de la actividad, hay un Botón para tirar los dados. actividad_principal.xml

XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/background"
    android:padding="20dp">
  
    <TextView
        android:id="@+id/tvVar2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="40dp"
        android:fontFamily="sans-serif-black"
        android:gravity="center"
        android:text="GFG | Android"
        android:textSize="40dp"
        android:textStyle="bold" />
  
    <TextView
        android:id="@+id/tvVar1"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:layout_below="@+id/tvVar2"
        android:fontFamily="sans-serif-smallcaps"
        android:gravity="center"
        android:text="WINNER : Player 1"
        android:textAlignment="center"
        android:textColor="@color/white"
        android:textSize="35dp" />
  
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tvVar1"
        android:layout_marginTop="40dp"
        android:orientation="vertical">
  
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="50dp"
            android:layout_gravity="center"
            android:layout_marginBottom="40dp"
            android:orientation="horizontal">
  
  
            <TextView
                android:layout_width="140dp"
                android:layout_height="50dp"
                android:layout_gravity="center"
                android:gravity="center"
                android:padding="10dp"
                android:text="Player 1"
                android:textAlignment="center"
                android:textColor="#000000"
                android:textSize="25dp" />
  
  
            <TextView
                android:layout_width="140dp"
                android:layout_height="50dp"
                android:layout_gravity="center"
                android:gravity="center"
                android:padding="10dp"
                android:text="Player 2"
                android:textAlignment="center"
                android:textColor="#000000"
                android:textSize="25dp" />
  
        </LinearLayout>
  
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:orientation="horizontal">
  
  
            <ImageView
                android:id="@+id/ivVar1"
                android:layout_width="140dp"
                android:layout_height="140dp"
                android:padding="10dp"
                android:src="@drawable/dice6" />
  
  
            <ImageView
                android:id="@+id/ivVar2"
                android:layout_width="140dp"
                android:layout_height="140dp"
                android:padding="10dp"
                android:src="@drawable/dice6" />
  
        </LinearLayout>
  
        <Button
            android:id="@+id/btVar1"
            android:layout_width="wrap_content"
            android:layout_height="65dp"
            android:layout_gravity="center"
            android:layout_marginTop="60dp"
            android:background="@drawable/btn_bg"
            android:gravity="center"
            android:padding="12dp"
            android:text="Roll the Dice"
            android:textAlignment="center"
            android:textColor="#ffffff"
            android:textSize="30dp" />
  
    </LinearLayout>
  
</RelativeLayout>

Paso 4: trabajar con el archivo MainActivity.java

Crearemos una array dentro del archivo Java que contendrá todas las imágenes de los dados. Luego llamaremos a onClickListener() para el botón y generaremos dos números aleatorios usando la función Random . Luego verificaremos los dos números y mostraremos el resultado respectivamente. Además, estableceremos las dos imágenes de la array. MainActivity.java

Java

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
  
import androidx.appcompat.app.AppCompatActivity;
  
import java.util.Random;
  
public class MainActivity extends AppCompatActivity {
      
    public static Button button;
    public static TextView textView;
    public static ImageView img1, img2;
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
          
        // array to store dice images
        final int dice[] = {R.drawable.dice1, R.drawable.dice2, R.drawable.dice3, 
                            R.drawable.dice4, R.drawable.dice5, R.drawable.dice6};
          
        // linking the roll button from its id..
        button = findViewById(R.id.btVar1);
          
        // linking the result textview from its id..
        textView = findViewById(R.id.tvVar1);
          
        // linking both the imageView of 
        // the dice images from its id..
        img1 = findViewById(R.id.ivVar1);
        img2 = findViewById(R.id.ivVar2);
          
        // call the on click function
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                  
                // generate two random numbers 
                // using Random function
                Random random = new Random();
                int num1 = random.nextInt(6);
                Random random1 = new Random();
                int num2 = random.nextInt(6);
                  
                // the bigger number will be displayed in the
                // textView as the winner otherwise draw..
                if (num1 > num2) {
                    textView.setText("WINNER : Player 1");
                } else if (num2 > num1) {
                    textView.setText("WINNER : Player 2");
                } else {
                    textView.setText("RESULT : Draw");
                }
                // set the images from the array by the index
                // position of the numbers generated
                img1.setImageResource(dice[num1]);
                img2.setImageResource(dice[num2]);
            }
        });
    }
}

Producción:

Publicación traducida automáticamente

Artículo escrito por namanjha10 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *