Foros del Web » Programando para Internet » PHP »

PHP OO Agregar otro jugador

Estas en el tema de Agregar otro jugador en el foro de PHP en Foros del Web. Bueno esto es lo que tengo que hacer: Juego de carreras El programa simula una carrera de dos participantes. Cada jugador lanza un dado, si ...
  #1 (permalink)  
Antiguo 13/06/2014, 19:04
 
Fecha de Ingreso: junio-2014
Mensajes: 3
Antigüedad: 9 años, 10 meses
Puntos: 0
Pregunta Agregar otro jugador

Bueno esto es lo que tengo que hacer:

Juego de carreras

El programa simula una carrera de dos participantes.

Cada jugador lanza un dado, si en el dado cae:

Uno avanza 2 metros.
Dos avanza 1 metro.
Tres se regresa 2 metros.
Cuatro avanza 3 metros.
Cinco se regresa 3 metros.
Seis se regresa 1 metro.
En pantalla debe aparecer el nombre de cada jugador y debe aparecer el resultado del dado cada vez que se lance con el resultado de la acción (30 puntos), (por ejemplo “avanza 2 metros”) y los metros que lleva recorridos (30 puntos).

El juego termina cuando un jugador recorre 100 metros y debe aparecer como ganador, con un mensaje que diga “El ganador es __________ con una ventaja de ________ metros del jugador _________” (20 puntos).

Debe aparecer la cantidad de veces que se lanzó el dado (20 puntos).



Y esto es lo que tengo:

<html>
<head>
<title> Carrera </title>
</head>
<body>
<?php
$n=0;
$suma=0;
while($n < 1000)
{
$d=rand(1,6);
if($d == 1)
{
echo "Avanza 2 Metros";
$suma=$suma+2;
}
if($d == 2)
{
echo "Avanza 1 Metro";
$suma=$suma+1;
}
if($d == 3)
{
echo "Regresa 2 Metros";
$suma=$suma-2;
}
if($d == 4)
{
echo "Avanza 3 Metros";
$suma=$suma+3;
}
if($d == 5)
{
echo "Regresa 3 Metros";
$suma=$suma-3;
}
if($d == 6)
{
echo "Regresa 1 Metro";
$suma=$suma-1;
}
if($suma==100)
$n=1001;
echo $suma;
}
?>
</body>
</html>

Pero me falta el otro jugador, no se como ni en donde agregarlo y tambien no se como hacer lo ultimo que me piden, si me podrian ayudar por favor es que no entiendo esta parte

tengo que agregar otra variable $n, $suma y $d para el otro jugador?
y donde debo colocarlo?
  #2 (permalink)  
Antiguo 13/06/2014, 21:51
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: Agregar otro jugador

Antes de empezar a escribir codigo, deberias hacerte una idea de como vas a resolver el problema, por ejemplo donde guardar los datos del jugador.

Otra cosa que deberias plantearte es que pasa si a ese problema luego te dicen que son 20 jugadores los que corren la carrera, o que pasa si son N?

El codigo que hagas se tiene que poder extender y expandir lo mas posible.

Aqui te paso algunas sugerencias pero tu tendras que resolver las partes de codigo faltante.

Código PHP:
Ver original
  1. <html>
  2.     <head>
  3.         <title> Carrera </title>
  4.     </head>
  5.     <body>
  6. <?php
  7.     // Los jugadores se guardaran en una matriz, de esta forma la cantidad (2, 4, 6, N) no importa.
  8.     $jugadores = [];
  9.    
  10.     // Aca se generan los jugadores, como veras, solo con canbiar ese numero puedes tener cualquier cantidad.
  11.     for($nro=0; $nro<=2; $nro++)
  12.         $jugadores[] = ["nombre" => "Jugador $nro", "metros" => 0];
  13.    
  14.     // Debes definir una condicion de victoria, esto es cuando el primero llega a la meta, podrias decir algo asi:
  15.     $jugador_que_llego = -1; // El -1 es que nadie llego.
  16.    
  17.     // Ahora los haces correr la carrera hasta que alguien llegue.
  18.     while($jugador_que_llego == -1)
  19.     {
  20.         // Ahora le toca el turno a cada jugador.
  21.         foreach($jugadores as $nro=> &$jugador)
  22.         {
  23.             $dado = rand(1,6); // El jugador tira el dado.
  24.        
  25.             // Ya hay una estructura para evaluar un determinado valor, no hace falta agregar muchos ifs.
  26.             switch($dado)
  27.             {
  28.                 case 1 :
  29.                     echo $jugador["nombre"]." avanza 2 metros<br>";
  30.                     $jugador["metros"] += 2;
  31.                 break;
  32.                
  33.                 // ...
  34.             }
  35.            
  36.             // Defines la condicion de llegar a la meta.
  37.             if($jugador["metros"] >= 100)
  38.             {
  39.                 $jugador_que_llego = $nro;
  40.                 break;                      // Aca hago que la carrera termine cuando un jugador llega a la meta.
  41.             }
  42.         }
  43.     }
  44.    
  45.     // Aca, en $jugadores[$jugador_que_llego] tengo el jugador que gano la carrera.
  46. ?>
  47. </body>
  48. </html>

Por cierto, esto no es OO, es procedural, OO serian las clases jugador y dado .
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios

Etiquetas: html, variable
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 15:32.