Ver Mensaje Individual
  #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: 12 años
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