[PHP] Deux situations qui me pose problème

Noobeuh -  
Pi_Xi Messages postés 2244 Date d'inscription   Statut Membre Dernière intervention   -
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. :)
A voir également:

22 réponses

Pi_Xi Messages postés 2244 Date d'inscription   Statut Membre Dernière intervention   149
 
Bonjour,

1) la première syntaxe est bonne, pas besoin de te répéter heureusement, ça compliquerait bien les programmes...! Au passage tu peux aussi écrire "&&" à la place de AND et "||" à la place de "OR"

2) pourquoi tu l'affiche pas $valeur_case[6] pour voir!??
=> print_r($tab); affiche le tableau pour info.
0
Profil bloqué
 
premier:
<?php
if ($variable_1 == 3 && ($valeur_2 == 2 || $valeur_2 == 8))
{
instruction A
}
?>
second:
tu n'as affecté aucune valeur à $valeur_case[6].Comment veut tu kil te rende quelque choz??
0
Pi_Xi Messages postés 2244 Date d'inscription   Statut Membre Dernière intervention   149
 
Il a utilisé array_search()..., puis il attribue une valeur aux valeurs NULL du tableau. Y'a une logique dans son raisonnement.

Enfin on apprend bcp par soit-même et il n'a pas besoin d'aide pour voir s'il y a qqch dans sa variable.
0
Noobeuh
 
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. ^^'
0
Pi_Xi Messages postés 2244 Date d'inscription   Statut Membre Dernière intervention   149
 
En fait tu verras que par défaut, les valeurs d'un tableau ne sont pas 'NULL'
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Noobeuh
 
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 ?
0
Pi_Xi Messages postés 2244 Date d'inscription   Statut Membre Dernière intervention   149
 
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.
0
Noobeuh
 
Bah, euh, voui.
Ok.
(pourtant hier ca marchait pas... T_T)
0
Pi_Xi Messages postés 2244 Date d'inscription   Statut Membre Dernière intervention   149
 
euhh je viens d'éditer ; c'est quoi qui marchait pas?

https://openclassrooms.com/fr/
0
Noobeuh
 
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.
0
Noobeuh
 
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?
0
Pi_Xi Messages postés 2244 Date d'inscription   Statut Membre Dernière intervention   149
 
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)
0
Noobeuh
 
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:
0
Pi_Xi Messages postés 2244 Date d'inscription   Statut Membre Dernière intervention   149
 
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;
  }

}
0
Noobeuh
 
:)

Je sais pas encore me servir bien des boucles. Merci. Beaucoup.
0
Noobeuh
 
Et sinon, ca corresponds à quoi i ? C'est une variable? Pourquoi ya pas le $ devant? n_n
0
Noobeuh
 
C'est bon, je me rapproche du bout du tunnel ! :' )

Encore merci.
0
Pi_Xi Messages postés 2244 Date d'inscription   Statut Membre Dernière intervention   149
 
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!
0
Noobeuh
 
Oui j'ai vu ça. =)
J'suis trop content, mon morpion marche enfin. :')
0
Pi_Xi Messages postés 2244 Date d'inscription   Statut Membre Dernière intervention   149
 
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.
0
Noobeuh
 
Euuuh ouaih, pourquoi pas après tout. n_n
0