Una aplicación simple de adivinar el número en la que la aplicación genera el número aleatorio entre 1 y 100 y el usuario tiene que adivinar ese número. Es una aplicación simple y básica que utiliza bibliotecas y widgets básicos.
Acercarse:
Paso 1: Creación de un nuevo proyecto
- Haga clic en la opción Archivo en la esquina superior izquierda.
- Luego haga clic en nuevo y abra un nuevo proyecto y asígnele un nombre (aquí se llama Guess the number).
- Ahora seleccione la actividad vacía con lenguaje como Java. No cambies ninguna otra opción.
Nota: De forma predeterminada, habrá dos archivos activity_main.xml y MainActivity.java .
Paso 2: Diseño de la interfaz de usuario
- Agregue el siguiente código en el archivo activity_main.xml . Aquí se agregan dos TextViews, un EditText y un Button. Las vistas de texto se utilizan para mostrar el mensaje y el widget de texto de edición es utilizado por el usuario para ingresar el número adivinado y se requiere el botón para enviar el valor ingresado.
actividad_principal.xml
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
androidx.constraintlayout.widget.ConstraintLayout
xmlns:android
=
"http://schemas.android.com/apk/res/android"
android:layout_width
=
"match_parent"
android:layout_height
=
"match_parent"
tools:context
=
".MainActivity"
>
<
RelativeLayout
android:layout_width
=
"409dp"
android:layout_height
=
"729dp"
android:background
=
"#F3A68E"
app:layout_constraintBottom_toBottomOf
=
"parent"
app:layout_constraintEnd_toEndOf
=
"parent"
app:layout_constraintHorizontal_bias
=
"1.0"
app:layout_constraintStart_toStartOf
=
"parent"
app:layout_constraintTop_toTopOf
=
"parent"
>
<
TextView
android:id
=
"@+id/textView"
android:layout_width
=
"wrap_content"
android:layout_height
=
"wrap_content"
android:layout_alignParentStart
=
"true"
android:layout_alignParentLeft
=
"true"
android:layout_alignParentTop
=
"true"
android:layout_marginStart
=
"77dp"
android:layout_marginLeft
=
"77dp"
android:layout_marginTop
=
"47dp"
android:background
=
"#FF9100"
android:text
=
"GUESS THE NUMBER"
android:textSize
=
"30sp"
/>
<
TextView
android:id
=
"@+id/textView2"
android:layout_width
=
"391dp"
android:layout_height
=
"68dp"
android:layout_alignParentStart
=
"true"
android:layout_alignParentLeft
=
"true"
android:layout_alignParentTop
=
"true"
android:layout_marginStart
=
"21dp"
android:layout_marginLeft
=
"21dp"
android:layout_marginTop
=
"147dp"
android:text
=
"I am thinking a number between 1 to 100. Can you guess what it is ?"
android:textSize
=
"24sp"
app:layout_constraintEnd_toEndOf
=
"parent"
app:layout_constraintStart_toStartOf
=
"parent"
/>
<
EditText
android:id
=
"@+id/editId"
android:layout_width
=
"348dp"
android:layout_height
=
"67dp"
android:layout_alignParentTop
=
"true"
android:layout_alignParentEnd
=
"true"
android:layout_alignParentRight
=
"true"
android:layout_marginTop
=
"271dp"
android:layout_marginEnd
=
"30dp"
android:layout_marginRight
=
"30dp"
android:ems
=
"10"
android:gravity
=
"center"
android:hint
=
"ENTER"
android:inputType
=
"numberDecimal"
/>
<
Button
android:id
=
"@+id/button"
android:layout_width
=
"wrap_content"
android:layout_height
=
"wrap_content"
android:layout_alignParentEnd
=
"true"
android:layout_alignParentRight
=
"true"
android:layout_alignParentBottom
=
"true"
android:layout_marginEnd
=
"152dp"
android:layout_marginRight
=
"152dp"
android:layout_marginBottom
=
"266dp"
android:onClick
=
"clickFunction"
android:text
=
"GUESS"
android:textSize
=
"30sp"
app:layout_constraintEnd_toEndOf
=
"parent"
app:layout_constraintStart_toStartOf
=
"parent"
/>
</
RelativeLayout
>
</
androidx.constraintlayout.widget.ConstraintLayout
>
Después de agregar el código anterior en el archivo activity_main.Xml, la interfaz de usuario será como:
Paso 3: trabajar con el archivo Java
- Abra MainActivity.java , dentro de la clase, agregue un método getRandomNumber() que devolverá el número aleatorio entre 1 y 100.
- El método OnCreate() se invoca cuando se inicia la aplicación, por lo tanto, la función getRandomNumber() se llama desde adentro para que se genere un número aleatorio.
- El valor de EditText se toma usando el siguiente código:
EditText variable = (EditText)findViewById(R.id.editId);
aquí editId es id para EditText y variable es un nombre de variable.
- En variable , los datos almacenados están en forma de string, por lo que se convierten en enteros mediante el siguiente código:
UserGuessing = Integer.parseInt(variable.getText().toString());
- La función OnClick se invoca cuando el usuario hace clic en el botón. Aquí se toma el valor ingresado por el usuario y se usan condiciones if-else para saber si el usuario adivina el número correcto o no y si el número adivinado es incorrecto, pídale al usuario que intente nuevamente.
- Al final, muestre Toast, que le dará una pista al usuario para que adivine el número correcto.
El código Java para MainActivity.java es:
MainActivity.java
package com.example.guessthenumber; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends AppCompatActivity { int result; static int getRandomNumber(int max, int min) { return (int)((Math.random() * (max - min)) + min); } public void makeToast(String str) { Toast.makeText( MainActivity.this, str, Toast.LENGTH_SHORT) .show(); } public void clickFunction(View view) { int userGuessing; EditText variable = (EditText)findViewById( R.id.editId); userGuessing = Integer.parseInt( variable .getText() .toString()); if (userGuessing < result) { makeToast("Think of Higher Number, Try Again"); } else if (userGuessing > result) { makeToast("Think of Lower Number, Try Again"); } else { makeToast( "Congratulations," +" You Got the Number"); } } @Override protected void onCreate( Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); int min = 1; int max = 100; result = getRandomNumber(min, max); } }
Producción:
- Si el número adivinado es menor que el número aleatorio
- Si el número adivinado es mayor que el número aleatorio
- Si el número adivinado es igual al número aleatorio
Publicación traducida automáticamente
Artículo escrito por arjun_rajput y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA