[PHP] Deux situations qui me pose problème

Boujour, donc voilà j'ai deux problème concernant un code php.
Le premier:
Puis je utiliser cette syntaxe:

if ($variable_1 == 3 AND ($valeur_2 == 2 OR $valeur_2 == 8))
{
instruction A
}

Oui suis je obligé de me répéter:

if ($variable_1 == 3 AND $valeur_2 == 2)
{
instruction A
}

elseif ($variable_1 == 3 AND $valeur_2 == 8)
{
instruction A
}

?

Deuxième question:

$colonne_1 = array($valeur_case[0], $valeur_case[3], $valeur_case[6]);
$valeur_case[0] = 1;
$valeur_case[3] = 1;

$numero_case_vide = array_search(NULL, $colonne_1);
$colonne_1[$numero_case_vide] = 2;

Avec ce code, j'obtiens $colonne_1[2] = 2
Mais est ce que la variable $valeur_case[6] vaut 2 ? ><

Merci d'avance pour vos réponses. :)
Configuration: Windows XP
Firefox 2.0.0.11

22 réponses

  1. Ouaih. Sinon j'pensais commencer à coder le prochaine AOE aussi. ; D
    1. Essaye le Master Mind ;o)

      Un exo qui m'avait bcp amusée, c'est de programmer un générateur de carrés magiques ^^ mais on pas pas jouer avec :o(

      Y'a le sudoku aussi, c'est à la mode.
      1. Oui j'ai vu ça. =)
        J'suis trop content, mon morpion marche enfin. :')
        1. lol...

          Y'a pas le "$" parce que g écrit ça dans le speed et j'ai tappé le "for" comme en C, dsl.

          Je te rassure, c'est pas le nombre imaginaire i² = -1 ;oP

          Les boucles ça fait partie des bases, ça s'apprend très vite et c'est fort utile!
          1. Et sinon, ca corresponds à quoi i ? C'est une variable? Pourquoi ya pas le $ devant? n_n
            1. if($numero_case_vide == 0)
              {
              $valeur_case[0] = 4;
              }
              
              elseif $numero_case_vide == 1)
              {
              $valeur_case[3] = 4;
              }
              
              else // $numero_case_vide == 2
              {
              $valeur_case[6] = 4;
              } 
              équivaut à:
              for(i=0;i<3;i++){
              
                if($numero_case_vide == i)
                {
                  $valeur_case[i*3] = 4;
                }
              
              }
              1. Je fume pas, ça liquéfie le cerveau.
                Oui je cherchais une solution. Je l'ai trouvé mais elle va me ralonger beaucoup le code.
                Mais bon. J'suis plus à une centaine de ligne près. :fou:
                1. ah je savais pas que tu cherchais une solution, mdr

                  C'est quoi le problème? Tu veux faire quoi?

                  Faut arrêter la beuh hein ;o)
                  1. J'ai trouvé une solution:

                    $colonne_1 = array($valeur_case[0], $valeur_case[3], $valeur_case[6]);
                    // en gros j'ai 2 case qui ont une valeur et la dernière vaut toujours NULL

                    $numero_case_vide = array_search(NULL, $colonne_1);
                    if($numero_case_vide == 0)
                    {
                    $valeur_case[0] = 4;
                    }

                    elseif $numero_case_vide == 1)
                    {
                    $valeur_case[3] = 4;
                    }

                    else // $numero_case_vide == 2
                    {
                    $valeur_case[6] = 4;
                    }

                    Mais ca fait sacrément plus long qu'avant. Et je vais devoir répéter l'opération pour colonne_2, colonne_3, ligne_1, 2 et 3, et diagonale_1 et 2.

                    Penses tu qu'il y aurait un autre moyen de procéder?
                    1. Merci pour le lien, je bosse déjà avec ce tuto. :)

                      C'est donc ça. La variable $valeur_case[6] disparait et j'ai :

                      $colonne_1 = array($valeur_case[0], $valeur_case[3], 2)

                      Bon au moins je sais pourquoi ca marche pas. :D
                      Encore merci.
                      1. ah ben si tu nous dit pas tout, on peut pas te répondre hein...!

                        Au début, tu attribue donc à $valeur_case[6] la valeur "NULL" ; mais ensuite, tu écrase $valeur_case[6] avec la valeur '2'. Ca ne veux pas dire que tu attribue la valeur '2' à $valeur_case[6], tu n'y a pas touché à cette variable.
                        1. Si un peu plus haut dans le code j'ai la ligne suivante:

                          $valeur_case = array (NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);

                          La valeur de $valeur_case[6] est bien égale à NULL non?

                          $colonne_1 = array($valeur_case[0], $valeur_case[3], $valeur_case[6]);
                          $valeur_case[0] = 1;
                          $valeur_case[3] = 1;

                          $valeur_case[6] = NULL ?
                          1. En fait tu verras que par défaut, les valeurs d'un tableau ne sont pas 'NULL'
                            1. Merci Pi_Xi pour tes réponses.
                              J'ai pas le moyen de vérifier là c'est pour ça, je le ferai ce soir.
                              Bonne journée, et à plus tard peut être. ^^'
                              • 1
                              • 2