Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 01/02/12, 13:37:48
Array

[xs_avatar]
KrLx_roller KrLx_roller no está en línea
Usuario muy activo
· Votos compra/venta: (3)
 
Fecha de registro: oct 2008
Mensajes: 515
Modelo de smartphone: Xiaomi Mi 10 Pro
Tu operador: Jazztel
Juego multijugador por turnos

Estoy desarrollando un juego que tiene una base de juego parecida al Monopoly (por poner un ejemplo entre muchos otros), es decir, un juego por turnos y con varios jugadores.

Empieza el primer jugador, éste hace lo que el juego le dice que haga, si lo hace bien pasa al siguiente jugador. Si lo hace mal, se le añade una letra a ése único jugador y pasa al siguiente. Para que se entienda, el primer jugador que complete la palabra ERROR, será el perdedor. Si falla una vez tendrá la E, a la siguiente ronda del juego si vuelve a fallar tendrá una R y así sucesivamente.

He estado pensando en cómo hacerlo, y el único modo que se me ocurre es mediante IF. Todo IF. Es decir, que lo vaya comprobando todo: si hay más de un jugador pase al siguiente, que compruebe el numero de letras del jugador actual para añadir la siguiente... Lo que pasa es que no se si esto es perjudicial para el rendimiento del juego.

Lo que quiero saber es si hay algún método para hacer esto algo más sencillo, y no con tantos IF.

Gracias de antemano.

Un saludo!
Responder Con Cita


  #2  
Viejo 01/02/12, 16:02:34
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
Sin ver el problema concreto no se decirte, aunque si el discriminante es el número de letras siempre puedes hacer un switch mejor que IFs seguidos.

De todas formas no te preocupes por el rendimiento, hacer 5 IFs por jugador (las letras de la palabra ERROR) no le supone nada al procesador.
Responder Con Cita
  #3  
Viejo 01/02/12, 17:25:18
Array

[xs_avatar]
KrLx_roller KrLx_roller no está en línea
Usuario muy activo
· Votos compra/venta: (3)
 
Fecha de registro: oct 2008
Mensajes: 515
Modelo de smartphone: Xiaomi Mi 10 Pro
Tu operador: Jazztel
El problema que tengo es que no se como hacer que pase al siguiente jugador. En pantalla se muestra el texto Jugador1 con sus 3 letras ERR, éste pulsa un botón y, si existe un segundo jugador, que el texto en pantalla cambie a Jugador2 con sus correspondientes letras, y así sucesivamente.
Responder Con Cita
  #4  
Viejo 04/02/12, 13:32:16
Array

[xs_avatar]
KrLx_roller KrLx_roller no está en línea
Usuario muy activo
· Votos compra/venta: (3)
 
Fecha de registro: oct 2008
Mensajes: 515
Modelo de smartphone: Xiaomi Mi 10 Pro
Tu operador: Jazztel
He intentado hacerlo con bucles pero se me descontrola, no se como hacerlo... Aquí te expongo un ejemplo "gráfico" de cómo tendría que ser con tan solo 2 jugadores:

Código:
Jugador 1 ||       X         V  // Si el jugador 1 falla 'X' se le añade la letra 'E' y pasa al jugador 2
                           E

Jugador 2 ||       X         V // Si el jugador 2 falla 'X' se le añade la letra 'E' y pasa al jugador 1
                           E

Jugador 1 ||       X         V // Si el jugador 1 falla 'X' se le añade la letra 'R' y pasa al jugador 2
                          ER

Jugador 2 ||       X         V // Ahora el jugador 2 lo hace bien 'V' por tanto no se le añade letra y pasa al jugador 1 de nuevo
                          ER


Jugador 1 ||       X         V // El jugador 1 vuelve a fallar y se le añade la 'R', turno del jugador 2
                        ERR

Jugador 2 ||       X         V // El jugador 2 vuelve a hacerlo bien, no se le añade ninguna letra y turno del jugador 1
                         ER

Jugador 1 ||       X         V // El jugador 1 vuelve a fallar, se le añade la letra 'O' y turno del jugador 2
                        ERRO

Jugador 2 ||       X         V // El jugador 2 vuelve a dar en el clavo y turno del jugador 1
                          ER

Jugador 1 ||       X         V // El jugador 1 vuelve a fallar, completa la palabra 'ERROR' y por tanto es el perdedor del juego
                        ERROR
Espero que hayas entendido el objetivo y funcionamiento del juego. Gracias por ayudarme.

Un saludo!
Responder Con Cita
  #5  
Viejo 04/02/12, 15:03:54
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
Una clase jugador, en dicha clase están las letras que lleva acumuladas cada jugador, con un método set y otro get (lo suyo realmente sería una función que añade la letra correspondiente automáticamente, pero lo simplifico con set)

En la clase principal tienes 2 instancias de jugador (o de tantos jugadores como tengas), la activity se pinta según los datos del jugador actual, puedes añadirle letras y consultar sus letras, por lo tanto puedes saber cuando ese jugador pierde. Cuando termina su turno cambias al otro jugador.

Lo único que tienes que controlar en la Activity es quien es el jugador actual y cambiarlo al final del turno.

Esto realmente es el A, B, C de Java, como ya te he dicho varias veces no se puede (o no se debe) programar en Android sin conocer Java al detalle, o por lo menos como funciona la POO.
Responder Con Cita
  #6  
Viejo 04/02/12, 17:26:03
Array

[xs_avatar]
FartBomb FartBomb no está en línea
Miembro del foro
 
Fecha de registro: feb 2012
Mensajes: 60
Modelo de smartphone: samsung galaxy y
Tu operador: Movistar
usa un switch
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 19:38:43 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /