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<html>
<head>
<title> Carrera </title>
</head>
<body>
<?php
// Los jugadores se guardaran en una matriz, de esta forma la cantidad (2, 4, 6, N) no importa.
$jugadores = [];
// Aca se generan los jugadores, como veras, solo con canbiar ese numero puedes tener cualquier cantidad.
for($nro=0; $nro<=2; $nro++)
$jugadores[] = ["nombre" => "Jugador $nro", "metros" => 0];
// Debes definir una condicion de victoria, esto es cuando el primero llega a la meta, podrias decir algo asi:
$jugador_que_llego = -1; // El -1 es que nadie llego.
// Ahora los haces correr la carrera hasta que alguien llegue.
while($jugador_que_llego == -1)
{
// Ahora le toca el turno a cada jugador.
foreach($jugadores as $nro=> &$jugador)
{
$dado = rand(1,6); // El jugador tira el dado.
// Ya hay una estructura para evaluar un determinado valor, no hace falta agregar muchos ifs.
switch($dado)
{
case 1 :
echo $jugador["nombre"]." avanza 2 metros<br>";
$jugador["metros"] += 2;
break;
// ...
}
// Defines la condicion de llegar a la meta.
if($jugador["metros"] >= 100)
{
$jugador_que_llego = $nro;
break; // Aca hago que la carrera termine cuando un jugador llega a la meta.
}
}
}
// Aca, en $jugadores[$jugador_que_llego] tengo el jugador que gano la carrera.
?>
</body>
</html>
Por cierto, esto no es OO, es procedural, OO serian las clases jugador y dado .