java

Mastermind en Java – Programación de juego

El juego Mastermind en Java trata de hacer una implementación, por consola, de un juego del mismo nombre pero con algunas modificaciones. Es algo así:

Realizar el juego en Java por consola en donde el programa piense una contraseña aleatoria (el usuario puede elegir si la misma puede o no contener repetidos, la clave serán dígitos del 0 al 9) y el usuario trate de adivinarla.

Si el usuario no acierta, el programa debe dar pistas por cada dígito de la contraseña:

  • En caso de que el dígito esté en donde debería estar, se coloca un * como pista
  • En caso de que el dígito sea parte de la contraseña, pero no esté en la posición correcta, se va a indicar con un _
  • Finalmente, si el dígito no forma parte de la contraseña entonces se indica con un espacio en blanco

Cuando el usuario acierte la contraseña se debe indicar el número de intentos.

Veamos cómo implementar este juego en Mastermind en Java; será muy fácil y entretenido.

Generación de contraseña aleatoria

Comencemos viendo el método que va a generar la contraseña aleatoria que el usuario debe adivinar. Se ve así:

See the gist on github.

Es una función que recibe un parámetro indicando si la contraseña debería contener repetidos, en caso de que no, generamos un nuevo carácter aleatorio mientras ese ya exista.

Como ves, la cadena aleatoria solo tendrá dígitos del 0 al 9 según la muestra de la línea 2.

El método también recibe un argumento indicando la longitud deseada de la contraseña.

Preguntar al usuario preferencias para Mastermind en Java

Ahora veamos los métodos que sirven para obtener las preferencias del usuario. En primer lugar vamos a preguntarle si la contraseña puede contener caracteres repetidos.

En segundo lugar vamos a ver un método para obtener la suposición del usuario, es decir, la contraseña que cree que es.

Para todo esto vamos a usar un Scanner en Java.

See the gist on github.

Estamos separando todo en métodos así la programación será más sencilla.

Generación de pistas para el usuario

Otro método importante es aquel para obtener las pistas y mostrarlas al usuario, es decir, obtener una cadena que tendrá un asterisco, guión bajo o espacio en blanco.

Para ello he diseñado el siguiente método que recibe la contraseña original y verifica. Al inicio declaro una cadena vacía que contendrá las pistas; después simplemente recorro la cadena y compruebo las tres opciones posibles:

See the gist on github.

De este modo al final tendremos una cadena con pistas.

Comenzar juego

Y finalmente veamos cómo se hace el loop o ciclo para jugar, además de los intentos en el método Main:

See the gist on github.

Utilizamos los métodos mencionados anteriormente y hacemos un ciclo infinito en la línea 13. Después, comprobamos si lo que el usuario ingresó coincide con la contraseña usando el método equals en Java.

Cuando el usuario acierta, se indican los intentos. En caso de que no acierte, se suma el número de intentos y se vuelven a obtener las pistas para la suposición que fue brindada por el usuario,

Mastermind en Java – Juego completo

Ahora veamos el código completo poniendo juntos todos los métodos. Queda como se ve a continuación:

See the gist on github.

Si quieres puedes ejecutarlo directamente en este enlace: jugar en línea.

Yo lo he jugado y probado un poco, aquí mis resultados:

Mastermind en Java – Ejecución del juego por consola

Conclusión

Dejo algunos enlaces de interés. Te invito a ver más tutoriales sobre Java o ver el código fuente de videojuegos.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Compartir
Publicado por
parzibyte

Entradas recientes

Imprimir PDF con Bot de Telegram

La impresión de un PDF en cualquier impresora se puede automatizar con un bot de…

1 día hace

Enviar mensaje con bot de Telegram usando JavaScript (lado del cliente)

Hoy te enseñaré cómo enviar un mensaje a un usuario desde un bot de Telegram…

2 días hace

PHP: incrustar imagen en base64

El día de hoy te enseñaré algo muy sencillo pero útil al programar con PHP:…

2 días hace

Plugin ESC POS – Actualización 3.4.0: imprimir HTML

El plugin para imprimir en impresoras térmicas alcanza hoy su versión 3.4.0 agregando soporte para…

3 días hace

JavaScript (lado del cliente): leer pixeles de imagen

En ocasiones es necesario leer los pixeles y colores de una imagen con JavaScript del…

1 semana hace

PHP y JavaScript: llenar select con AJAX

Siguiendo con los tutoriales de listas desplegables o select con JavaScript, vamos a ver cómo…

1 semana hace

Esta web usa cookies.