Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: sora_ori en 4 Junio 2014, 20:10 pm



Título: [Ayuda] Pequeño juego en PHP
Publicado por: sora_ori en 4 Junio 2014, 20:10 pm
Hola,

Necesito de vuestra ayuda y acudo a vosotros porque siempre me echais una mano. Estoy haciendo un juego en Php, Mastermind.

Es un juego en el que el jugador apuesta 5 colores y tiene que adivinar la combinación secreta. El límite son 10 intentos para sacar la combinación.


Solo tengo este pobre código:

Código
  1. <?php
  2.  
  3. $pegs = array ('R','N','A','M','B');
  4. $correct = 0;
  5. $colors = 0;
  6. $guess=array();
  7. $code_colors = array_fill_keys($pegs, 0);
  8. $guessed_colors = array_fill_keys($pegs, 0);
  9.  
  10. if (empty($_POST)) {
  11.    $code = array();
  12.    for ($i = 0; $i < 4; $i++) {
  13.        $code[] = $pegs[rand(0,5)];
  14.    }
  15. } else {
  16.    $guess = str_split($_POST['guess']);
  17.    $code = unserialize($_POST['code']);
  18.    if ($guess == $code) {
  19.        // Se ha acertado el código
  20.        echo "Has adivinado el código. Bien hecho!<br />";
  21.    } else {
  22.        foreach ($code as $peg) {
  23.            $code_colors[$peg]++;
  24.        }
  25.        for ($i = 0;$i < 4;$i++) {
  26.            if ($guess[$i] == $code[$i]) {
  27.                // Un acierto
  28.                $correct++;
  29.                // contador
  30.                $code_colors[$guess[$i]]--;
  31.            } else {
  32.                // Registro de colores adivinados
  33.                $guessed_colors[$guess[$i]]++;
  34.            }
  35.        }
  36.        $true_colors = array();
  37.        foreach ($pegs as $peg) {
  38.            if ($code_colors[$peg] > 0 && $code_colors[$peg]  == $guessed_colors[$peg] ) {
  39.                $true_colors[$peg] = $code_colors[$peg];
  40.            }
  41.        }
  42.        $colors = count($true_colors);
  43.  
  44.    }
  45. }
  46.  
  47. ?>
  48. VALORES POSIBLES: <?php echo implode(',', $pegs) ?><br />
  49. Colores correctos: <?php echo $colors ?><br />
  50. Clavijas correctas: <?php echo $correct ?><br />
  51. <form method='post'>
  52. Su combinacion : <input name='guess' value='<?php echo implode('', $guess) ?>'/>
  53. <input type='hidden' name='code' value='<?php echo serialize($code) ?>' />
  54. <input type='submit' value='guess' />
  55. </form>
  56. <a href='3d10-mastermind.php'>Reiniciar juego</a>
  57.  

(http://i62.tinypic.com/1jq845.png)



Gracias!


Título: Re: [Ayuda] Pequeño juego en PHP
Publicado por: #!drvy en 4 Junio 2014, 21:10 pm
¿ Cual es el problema ? o donde esta tu duda...

Saludos


Título: Re: [Ayuda] Pequeño juego en PHP
Publicado por: sora_ori en 4 Junio 2014, 21:36 pm
Que no me funciona correctamente y no sé como hacer que el jugador tenga solamente 10 intentos.


Saludos