IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Concours Hippique en PHP


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif Avatar de Michel6359
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 40
    Par défaut Concours Hippique en PHP
    Bonjour
    Etant en déplacement pour le travail , Je reviens vers vous concernant mon problème.

    Je suis occupé de construire un concours hippique entre amis.

    Chacun rentre un pronostique de 8 chevaux
    Apres selon l'arrivée je dois déterminer si arrivée ordre ou désordre .

    Exemple : Arriver 1 - 2 - 3 - 4 - 5

    Un pronostique exemple ► 1 - 7 - 8 - 2 - 10 - 3 - 11 - 4 - 5
    Ici nous avons dans l'ordre l'arrivée en ordre en 8 chevaux ► 1 - 2 - 3 - 4 - 5
    Comment faire en php pour qu'il puisse reconnaître
    ► 1 - 2 - 3 = Tierce ordre = 100 points
    ► 1 - 2 - 3 - 4 = Quarté ordre = 200 points
    ► 1 - 2 - 3 - 4 - 5 = Quinté ordre = 500 points
    et la même chose en désordre

    Comment faire également pour qu'il trouve dans la combinaison si 4/5 , donc si 4 chevaux
    sur les 5 de l'arrivée en écartant la combinaison du quarté ordre et désordre .

    Exemple : 1 - 7 - 8 - 9 - 10 - 3 - 11 - 4 - 5 = 4 chevaux dans prono 1 - 3 - 4 -5

    Merci d'avance beaucoup pour votre aide.

    Michel

  2. #2
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 309
    Par défaut
    Bonjour,

    la fonction array-intersect devrait simplifier le travail pour le 4/5 et le désordre.
    Pour le résultat dans l'ordre, je transformerais les résultats en chaîne de caractères (avec un séparateur entre chaque numéro) puis je comparerais les chaînes.

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Pour l'ordre, utiliser array_​intersect_​assoc peut être utile : c'est la même fonction que array_intersect, mais en prenant en compte les index.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  4. #4
    Membre actif Avatar de Michel6359
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 40
    Par défaut
    Bonjour à tous
    Merci pour votre aide

    Il ne trouve pas correctement surtout en ordre


    Le participant ► TEST ► a les chevaux suivant ►7 6 17 14 9 4 11 10 pour une arrivée ► 7-6-14-17-4

    Normalement il devrait avoir Le tiercé ordre en 4 chevaux ► 7 - 6 - 17 - 14 il devrait avoir 50 point est la 0.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
     
    <?php ###### REQUETE AFFICHAGE DES PRONOSTIQUE #####
         while($datas = mysql_fetch_assoc($reponse)) { //on parcourt les différents participants/pronostiques
         //récupération des pronostiques du participant en cours
         $C1 ='7';$C2 ='6';$C3 ='14';$C4 ='17';$C5 ='4';
    	 $tab_pronos = array($datas['CH1'],$datas['CH2'],$datas['CH3'],$datas['CH4'],$datas['CH5'],$datas['CH6'],$datas['CH7'],$datas['CH8']); 
    	 $tab_res = array($C1, $C2, $C3, $C4, $C5);
         $ordre = count(array_intersect_assoc($tab_res, $tab_pronos));
         $desordre = count(array_intersect($tab_res, $tab_pronos));
    	 ?>            
    <tbody>
    <tr>
                      <td bgcolor="#FFFFFF"><?php echo ''.$datas['date_enregistrement'].'';?></td>
                      <td bgcolor="#FFFFFF"><?php echo ''.$datas['PARTICIPANT'].'';?></td>
                      <td bgcolor="#FFFFFF"><?php echo ''.$datas['CH1'].'';?></td>
                      <td bgcolor="#FFFFFF"><?php echo ''.$datas['CH2'].'';?></td>
                      <td bgcolor="#FFFFFF"><?php echo ''.$datas['CH3'].'';?></td>
                      <td bgcolor="#FFFFFF"><?php echo ''.$datas['CH4'].'';?></td>
                      <td bgcolor="#FFFFFF"><?php echo ''.$datas['CH5'].'';?></td>
                      <td bgcolor="#FFFFFF"><?php echo ''.$datas['CH6'].'';?></td>
                      <td bgcolor="#FFFFFF"><?php echo ''.$datas['CH7'].'';?></td>
                      <td bgcolor="#FFFFFF"><?php echo ''.$datas['CH8'].'';?></td> 
                      <td bgcolor="#FFFFFF"><?php echo ''.$C1.'-'.$C2.'-'.$C3.'-'.$C4.'-'.$C5.'';?></td>
                      <td bgcolor="#FFFFFF"><?php echo 'chevaux trouvé <strong>'.$ordre.'</strong>';?><?php //if ($ordre > 2)      { echo "50";  } else { echo "0"; }?> </td>
                      <td bgcolor="#FFFFFF"><?php if ($desordre > 2 )   { echo "50";  } else { echo "0"; }?></td>
                      <td bgcolor="#FFFFFF"><?php if ($ordre > 3)   { echo "200"; } else { echo "0"; }  ?></td>
                      <td bgcolor="#FFFFFF"><?php if ($desordre > 3)   { echo "100"; } else { echo "0"; }?></td>
                      <td bgcolor="#FFFFFF"><?php if ($ordre > 4)   { echo "500"; } else { echo "0"; }  ?></td>
                      <td bgcolor="#FFFFFF"><?php if ($desordre > 4)   { echo "250"; } else { echo "0"; }?></td>
    </tr>
    </tbody>
    <?php } ?>
    </table>

  5. #5
    Membre actif Avatar de Michel6359
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 40
    Par défaut
    Re Bonjour

    En faite il arrête de comparer lorsqu'il a trouvé 3 chevaux qu'il ne ce suivent pas , voilà ce que j'ai pu voir.

    Pour le lien et voir le résultat en message privée c possible , sa parle mieux .

    Merci

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Par défaut
    Normalement il devrait avoir Le tiercé ordre en 4 chevaux
    : certes c'est ce que tu voudrais obtenir à priori, mais array_intersect_assoc ne le permet pas

    > 7 6 17 14 9 4 11 10
    - 7 6 14 17 4
    -----------------------
    : 1 1 0 0 0


    tu vois bien que les clés 2,3 des tableaux sont différentes

  7. #7
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Par défaut
    Tiens, kado, cela devrais faire ton affaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
     
    $prono = array(7,6,17,14,9,4,11,10);
    $arrive = array(7,6,14,17,4); 
    //$ordre = count(array_intersect_assoc($arrive, $prono));
    //$desordre = count(array_intersect($arrive,$prono)); 
    //echo $ordre." ".$desordre;
     
    $total = 0; 
    for ($a = 0;$a<count($arrive);$a++){
     
        $nothave = 1;
        for ($p=0;$p<count($prono);$p++){  
            if($arrive[$a] - $prono[$p] === 0){ 
                $nothave = 0;
                $prono = array_slice($prono,$p,count($prono));  
                $total+=1;
            }  
        }
        if($nothave) break;
    }
     
    echo $total;

Discussions similaires

  1. Quel est le meilleur script PHP de portail (CMS) ?
    Par Lana.Bauer dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 187
    Dernier message: 18/10/2012, 07h45
  2. [MySQL] Un classement pour un concours en php
    Par nO_life dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 13/08/2008, 14h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo