Foros del Web » Programación para mayores de 30 ;) » Java »

Java, generar un juego de elección

Estas en el tema de Java, generar un juego de elección en el foro de Java en Foros del Web. Buenas a todos, Necesito ayuda urgente por favor, Necesito crear un mini juego en Java en el que se le pida al usuario que ingrese ...
  #1 (permalink)  
Antiguo 18/09/2015, 20:18
 
Fecha de Ingreso: mayo-2015
Mensajes: 1
Antigüedad: 9 años
Puntos: 0
Java, generar un juego de elección

Buenas a todos,

Necesito ayuda urgente por favor,

Necesito crear un mini juego en Java en el que se le pida al usuario que ingrese un numero del 1 al 7, dependiendo del numero que elija ganara, perderá o empatara, además debe repetirse cuantas veces el usuario quiera y mostrar cuantas veces gano y si gano mas que la maquina mostrara mensaje de que fue el mejor o algo así,
Claro esta que juega contra la computadora y ella dará un numero al azar del 1 al 7 para que sea comparado con el que el usuario eligió.
Las reglas que se establecieron fueron:_

1 Le gana al 3 al 5 y al 7 y se repite sera empate
2 le gana al 4 al 1 y al 7 y se repite sera empate
3 le gana al 2 al 5 y al 7 y se repite sera empate
4 le gana al 3 al 1 y al 6 y se repite sera empate
5 le gana al 4 al 2 y al 6 y se repite sera empate
6 le gana al 1 al 2 y al 3 y se repite sera empate
7 le gana al 4 al 5 y al 6 y se repite sera empate

Les agradecería infinitamente si me ubican, pues no tengo la menor idea de que hacer, le he pensado mucho y nada.

De antemano les agradezco muchisimo, necesito ayuda.



He hecho muchas pruebas pero no tengo idea, ademas este no funciona y no se por que (he creado uno similar a este pero es el triple de extenso en la que los separo pero creí que era demasiados lento y demasiados condicionales) y por otra parte faltan cosas por agregar como el contador de que si gana o pierde no se como contar cuantas veces-

Este es uno que hice en Pseudocodigo, pero debo pasarlo a Java, eso sera luego solo debo entender que cosas debo hacer (Ademas de estudiar muchisimo mas y aprender)

Código Pseudocodigo:
Ver original
  1. Proceso SinNombre
  2.    
  3.     Definir opc, Ale, elec, i Como Entero
  4.     Definir RTA como Caracter
  5.    
  6. Repetir
  7.     Limpiar Pantalla
  8.  
  9. elec <- 0
  10.     Escribir "Opcciones = 1-Piedra, 2-Papel, 3-Tijera, 4-Spock, 5-Lagarto, 6-Troglodita, 7-Hielo"
  11.     Escribir "Teclee la opción con el número correspondiente"
  12.     Leer elec
  13.    
  14.     Ale<- Azar(7)
  15.  
  16.     Si elec = 1 y Ale = 3 o Ale = 5 o Ale =7 entonces
  17.         Escribir "Super! usted gana"
  18.     Sino
  19.         Si elec = 1 y Ale = 1 Entonces
  20.             Escribir "Caramba! Es un empate"
  21.         Sino
  22.             Si elec = 2 y Ale = 4 o Ale = 1 o Ale = 7 Entonces
  23.                 Escribir "Super! usted gana"
  24.             Sino
  25.                 Si elec = 2 y Ale = 2 Entonces
  26.                     Escribir "Caramba! Es un empate"
  27.                 Sino
  28.                     Si elec = 3 y Ale = 2 o Ale = 5 o Ale = 7 Entonces
  29.                         Escribir "Super! usted gana"
  30.                     Sino
  31.                         Si elec = 3 y Ale = 3 Entonces
  32.                             Escribir "Caramba! Es un empate"
  33.                         Sino
  34.                             Si elec = 4 y Ale = 3 o Ale = 1 o Ale = 6 Entonces
  35.                                 Escribir "Super! usted gana"
  36.                             Sino
  37.                                 Si elec = 4 y Ale = 4 Entonces
  38.                                     Escribir "Caramba! Es un empate"
  39.                                 Sino
  40.                                     Si elec = 5 y Ale = 4 o Ale = 2 o Ale = 6 Entonces
  41.                                         Escribir "Super! usted gana"
  42.                                     Sino
  43.                                         Si elec = 5 y Ale = 5 Entonces
  44.                                             Escribir "Caramba! Es un empate"
  45.                                         Sino
  46.                                             Si elec = 6 y Ale = 1 o Ale = 2 o Ale = 3 Entonces
  47.                                                 Escribir "Super! usted gana"
  48.                                             Sino
  49.                                                 Si elec = 6 y Ale = 6 Entonces
  50.                                                     Escribir "Caramba! Es un empate"
  51.                                                 Sino
  52.                                                     Si elec = 7 y Ale = 4 o Ale = 6 o Ale = 5 Entonces
  53.                                                         Escribir "Super! usted gana"
  54.                                                     Sino
  55.                                                         Si elec = 7 y Ale = 7 Entonces
  56.                                                             Escribir "Caramba! Es un empate"
  57.                                                            
  58.                                                         FinSi
  59.                                                     FinSi
  60.                                                 FinSi
  61.                                             FinSi
  62.                                         FinSi
  63.                                     FinSi
  64.                                 FinSi
  65.                             FinSi
  66.                         FinSi
  67.                     FinSi
  68.                 FinSi
  69.             FinSi
  70.         FinSi
  71.     FinSi
  72.    
  73.     Escribir "Quiere terminar ahora? S/N"
  74.     Leer RTA
  75. Hasta que RTA = S
  76.  
  77. FinProceso

Última edición por AbrilJhonJairo; 18/09/2015 a las 20:35 Razón: Mas información
  #2 (permalink)  
Antiguo 19/09/2015, 10:32
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 366
Antigüedad: 12 años, 1 mes
Puntos: 31
Respuesta: Java, generar un juego de elección

Supongo que tu variable Ale es el aleatorio que juega y elec, la elección del usuario.

Así pues, el pseudocódigo sería algo así como:

Ale --> aleatorio.
elec -->Introducido
ultimaeleccion -->0

Considerar elec:
caso 1:
Si ultimaeleccion=elec
imprime empate
si no
si Ale =3,5,7
imprime "gana"
ultimaeleccion=elec

caso 2:
Si ultimaeleccion=elec
imprime empate
si no
si Ale =1,4,7
imprime "gana"
ultimaeleccion=elec

caso 3:
etc..

PD: Esto es como el Piedra, Papel, tijera, lagarto, Spok
  #3 (permalink)  
Antiguo 19/09/2015, 13:24
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 3 meses
Puntos: 52
Respuesta: Java, generar un juego de elección

@Kritik:

Tu respuesta es correcta y probablemente sea lo que @AbrilJhonJairo está buscando.

No obstante, te muestro una solución diferente, que no implica hace un switch, sino que usa un Map para asociar un número con aquellos a los que les gana, es decir, lo siguiente:

Cita:
Iniciado por AbrilJhonJairo
1 Le gana al 3 al 5 y al 7
2 le gana al 4 al 1 y al 7
3 le gana al 2 al 5 y al 7
4 le gana al 3 al 1 y al 6
5 le gana al 4 al 2 y al 6
6 le gana al 1 al 2 y al 3
7 le gana al 4 al 5 y al 6
Se traduce en lo siguiente:

Código F#:
Ver original
  1. let map =
  2.         Map([1, [3; 5; 7];
  3.              2, [4; 1; 7];
  4.              3, [2; 5; 7];
  5.              4, [3; 1; 6];
  6.              5, [4; 2; 6];
  7.              6, [1; 2; 3];
  8.              7, [4; 5; 6]])

Y luego es más fácil saber qué número le gana a cuál, simplemente mirando en ese mapa.

Como te dije antes, no uso java, pero conceptualmente es lo mismo que harías en java o en algun otro lenguaje OOP: http://ideone.com/JfN84i
  #4 (permalink)  
Antiguo 20/09/2015, 05:35
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 366
Antigüedad: 12 años, 1 mes
Puntos: 31
Respuesta: Java, generar un juego de elección

@agleiva eso reduciría y simplificaría mucho más el código.

Mi anterior pseudocódigo contiene:

Código:
Considerar elec:
 caso 1:
 Si ultimaeleccion=elec
 imprime empate 
 si no
 si Ale =3,5,7
 imprime "gana"
 ultimaeleccion=elec
Si cambiamos la línea:
Código:
si Ale =3,5,7
por una búsqueda en el HashMap... entonces resulta que todos los casos de la consideración de elec contendrían exactamente el mismo código. Y entonces... para qué evaluar elec?, Se quita y se deja solo 1 sola vez lo que hay dentro de cualquier caso pues serían todos iguales:

Código:
 Si ultimaeleccion=elec
 imprime empate 
 si no
 si Ale = (Búsqueda en HashMap (el que agleiva escribió) usando de índice elec)
 imprime "gana"
 ultimaeleccion=elec

Última edición por Kritik; 20/09/2015 a las 05:41

Etiquetas: juego
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:45.