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 :

Grille de loto


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 584
    Par défaut Grille de loto
    Bonjour,
    je m'amuse a développez un petit site pendant mon temps libre, mais je commence à butter sur un problème qui a l'air pourtant simple.

    J'aimerais avoir une fonction qui me créer des grille de loto :

    je tir 6 numéros aléatoirement entre 1 et 55 (tous différents), et j'aimerais les mettre dans ma grille à la bonne colonne (0 à 9 première colonne...).

    Mais je n'arrive pas à insrérer les numéros (je dois chercher trop compliqué ).

    Voila la fonction actuellement :

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    function TabGrille(){
     
    /****************************/
    /*	 Génère les nombres 	*/
    /****************************/		
     
    		$i=1;
    		$j=1;
    		$tabGrille=array();
     
    		while ($i<=7){
    			$carte = rand(1, 55);
     
    			if (!in_array($carte, $tabGrille)) {
    				$tabGrille[] = $carte;       
    					$i++;
    			}
    		}
     
    		sort($tabGrille);
     
    		// Test l'unité du nombre
    		while ($j<=6){
    			if ($tabGrille[$j] <10){
     
    			}elseif ($tabGrille[$j] <20){
     
    			}elseif ($tabGrille[$j] <30){
     
    			}elseif ($tabGrille[$j] <40){
     
    			}elseif ($tabGrille[$j] <50){
     
    			}elseif ($tabGrille[$j] <60){
     
    			}
    			$j++;
    		}
     
    /************************/	
    /*	Dessine la grille	*/
    /************************/
     
    		echo '<div id=grille>';
    		echo '<TABLE>';
     
    		// for($i=0; $i<6; $i++){
    			// echo '<TR>';
    			// for($j=0; $j<6; $j++){
    				// echo '<TD></TD>';
    			// }
    			// echo '</TR>';
    		// }
    		//echo '</TABLE></div>';
     
    		echo "<TR><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>";
    		echo "<TR><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>";
    		echo "<TR><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>";
    		echo "<TR><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>";
    		echo "<TR><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>";
    		echo "<TR><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR></TABLE>";
    		echo "</div>";
     
    	}
    Merci d'avance pour vos réponses

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    => Affichage de données dans un tableau HTML
    L'astuce : utilisation du modulo

  3. #3
    Membre expérimenté
    Avatar de magicshark
    Homme Profil pro
    Dans une SS2I donc pas que JAVA
    Inscrit en
    Octobre 2011
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dans une SS2I donc pas que JAVA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 133
    Par défaut
    j'ai fait ça ;
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
     
    <?Php	
     
    function getNum($nbNum,$min,$max,$nbnumByTen){
    	$i = 1;
    	$tabGrille=array();
    	while ($i<=$nbNum){
    		$carte = rand($min, $max); 
    		if($carte > 9){
    			$diz = strval($carte);
    			$col = $diz{0} + 1;
    			$col = "col".$col;
    		}
    		else
    		{
    			$col = "col1";
    		}
    		//On vérifie que le numéro n'a pas déja été tiré.
    		if (!isset($tabGrille[$col]) || !in_array($carte, $tabGrille[$col])) {
    			//On définie la colonne
     
    			//on range le numero dans sa colonne
    			if(!isset($tabGrille[$col]) || count($tabGrille[$col])<$nbnumByTen){
    				$tabGrille[$col][] = $carte;      	 
    				$i++;
    			}
    		}
    	}	
    	//on trie les colonne
    	foreach($tabGrille as $key=>$value){
    		sort($tabGrille[$key]);
    	}		
    	return($tabGrille);
    }
     
    //nombre de numero à afficher
    $nbNum = 15;
    //nombre minimum
    $min = 1;
    //nombre maximum
    $max = 90;
    //nombre de numero maximum par colonne
    $nbnumByTen = 3;
     
    //on appel notre fonction
    $grille = getNum($nbNum,$min,$max,$nbnumByTen);
    ?>
    <table style="border:1px solid black">
     
    <?Php
    //on cherche combien de cilonne il y a
    $nbCol = (int)$max / 10;
     
    //ligne
    for($j = 0; $j < $nbnumByTen;$j++)
    {
    	echo"<tr style='border:1px solid black'>";
    	//col
    	for( $i = 1;$i <= $nbCol+1;$i++)
    	{
    		$key = "col".$i;
    		echo "<td style='text-align:center;width:50px;height:50px;border:1px solid black;'>";
    		if(isset($grille[$key][$j])){echo $grille[$key][$j];}
    		echo "</td>";
    	}
    	echo"</tr>";
    }
    ?>
    </table>
    tiens moi au courant si tu ne comprend pas tout.

    edit : j'ai rerefait le code n'était pas complètement paramétrable.

  4. #4
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    il y a un certain temps, j'avais aidé un autre posteur sure ce genre de problématique (un poil plus complexe) mais tu pourras t'en inspirer. Regarde ici

  5. #5
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 584
    Par défaut
    Merci pour vos réponses,
    je vais regarder tout ça, et vous tiens au courant, mais ça devrait aller maintenant

  6. #6
    Invité
    Invité(e)
    Par défaut
    => V-B. Affichage "en Colonne" - Solution 2

    Solution appliquée (et adaptée) :
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    <?php // FONCTION
    // --------------------------------
    // CONSTRUCTION DE LA GRILLE
    function TabGrilleLoto($numeros_OK_array, $num_complementaire, $date_tirage)
    {
    	// --------------------------------
    	$NbrLigne = 10;
    	// nombre de cellules a remplir
    	$NbreData = 49; // numéros de 1 à 49
    	// --------------------------------
    	// affichage
    		$i = 0;
    		$NbrCol = 0;
    ?>
    	<table border="1" cellpadding="5">
    	<tbody>
    		<tr>
    			<th colspan="5">LOTO du <?php echo $date_tirage; ?></th>
    		</tr>
    <?php
    		for ($i=0; $i<$NbrLigne; $i++) 
    		{
    ?>		<tr>
    <?php
    			$j = 0;
    			while (($i+($j*$NbrLigne))%$NbrLigne==$i && ($i+($j*$NbrLigne))<$NbreData) 
    			{
    				$k = ($i+($j*$NbrLigne))+1; // numéro, de 1 à 49
    				$tdstyle = '';
    				if(in_array($k, $numeros_OK_array)){ $tdstyle = ' style="background:green;"'; }
    				if($k == $num_complementaire){ $tdstyle = ' style="background:yellow;"'; }
    ?>
    			<td<?php echo $tdstyle;?>><?php echo $k; // DONNEE A AFFICHER dans la cellule ?></td>
    <?php				$j++;
    				// nombre de colonnes
    				$NbrCol = max($NbrCol,$j);
    			}
    			// ajout cellule vide (derniere colonne)
    			if ($j!=$NbrCol) { 
    ?>			<td>&nbsp;</td>
    <?php
    			}
    ?>		</tr>
    <?php
    		}
    ?>
    	</tbody>
    	</table>
    <?php
    }
    ?>
    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
    <?php // AFFICHAGE
    // --------------------------------
    // EXEMPLE DE RESULTAT DE TIRAGE DU LOTO :
    $numeros_OK_array = array(12,4,23,14,17,41);
    sort($numeros_OK_array); // on trie (facultatif)
    $num_complementaire = 33;
    $date_tirage = '09/06/2013';
    // --------------------------------
    ?>
    <h4>Résultat du tirage du LOTO du <?php echo $date_tirage; ?></h4>
    <ul>
    	<li>Numéros gagnants : <?php echo implode(', ', $numeros_OK_array); ?></li>
    	<li>Numéro complémentaire : <?php echo $num_complementaire; ?></li>
    </ul>
    <?php echo TabGrilleLoto($numeros_OK_array, $num_complementaire, $date_tirage); // Affichage de la grille ?>
    Dernière modification par Invité ; 09/06/2013 à 18h02.

Discussions similaires

  1. [Toutes versions] "résultats" de la grille "Loto Foot 15 n° 33
    Par neouu dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/04/2015, 23h50
  2. [Débutant] Création d'une grille de loto
    Par Snowhite dans le forum C#
    Réponses: 3
    Dernier message: 15/06/2012, 12h50
  3. créer une grille de loto
    Par guylainejm dans le forum Powerpoint
    Réponses: 1
    Dernier message: 30/01/2009, 14h03
  4. jaimerais savoir commen creer une grille.......
    Par zephyr dans le forum Flash
    Réponses: 5
    Dernier message: 29/04/2003, 12h14
  5. [VB6] [Interface] Grille avec combobox
    Par khany dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 15/01/2003, 09h55

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