begin process at 2010 09 09 14:38:45
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > LOTO (EN C)

LOTO (EN C)


 Information sur la source

Note :
8 / 10 - par 4 personnes
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Niveau :Débutant Date de création :15/06/2001 Vu :7 510

Auteur : Benoit.S

Ecrire un message privé
Site perso
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

Je débute en C, j'ai realisé ce prog pour montrer rapidement le principe fonctionnement de la fonction randomize()..le code n'est pas du tout optimisé comprenez moi je débute et meme si ce code n'a pas grand interet ca peut surement servir a quelqu'un!

Source

  • #include <stdio.h>
  • #include <stdlib.h>
  • int main()
  • {
  • clrscr (); /* on efface l'ecran */
  • printf("\t\t\t -- BS * Loto v2.0 --");
  • printf("\nCe programme genere aleatoirement des numeros de loto.");
  • printf("\nTape une touche pour generer la liste des numeros...");
  • getch (); /* Attend l'appuie d'une touche */
  • num ();
  • }
  • int num () /* debut de la fonction de generation de numeros */
  • {
  • int n1, n2, n3, n4, n5, n6, nc; /* On declare les variables */
  • int x; /* variable de sortie */
  • do
  • {
  • randomize (); /* on initialise les nombres aleatoire */
  • /* Il y a 49 chiffre au loto + 1 car on compte le 1er chiffre */
  • n1 = random (49) + 1; /* 1er numéro */
  • n2 = random (49) + 1; /* 2eme numéro */
  • n3 = random (49) + 1; /* 3eme numéro */
  • n4 = random (49) + 1; /* 4eme numéro */
  • n5 = random (49) + 1; /* 5eme numéro */
  • n6 = random (49) + 1; /* 6eme numéro */
  • nc = random (49) + 1; /* numéro complémentaire */
  • }
  • /* tant que n1 = n2, n1 = n3....on regenere d'autres nméros car on a pas le droit au loto de cochez 2 fois le meme numéros */
  • while ((n1 == n2) || (n1 == n3) || (n1 == n4) || (n1 == n5) || (n1 == n6) || (n1 == nc) || (n2 == n3) || (n2 == n4) || (n2 == n5) || (n2 == n6) || (n2 == nc) || (n3 == n4) || (n3 == n5) || (n3 == n6) || (n3 == nc) || (n4 == n5)
  • || (n4 == n6)|| (n4 == nc) || (n5 == n6) || (n5 == nc) || (n6 == nc));
  • printf("\n\nNumeros : [%d] [%d] [%d] [%d] [%d] [%d] | [%d]", n1, n2, n3, n4, n5, n6, nc); /* On affiches les numéros générés */
  • printf("\n\nSi les numeros ne te plaise pas, tape 1 pour en generer d'autres, sinon tape 0");
  • printf("\npour quitter.\n");
  • scanf("%d", &x); /* On lit le caractere dans le tampon */
  • if (x == 0) /* SI 0 ==> fermeture */
  • {
  • puts("\t\t\t\t=[Tu peux fermer le programme]=");
  • exit(1);
  • }
  • if (x == 1) /* Si 1 c reparti ! */
  • {
  • num(); /* On regenere */
  • }
  • }
#include <stdio.h>
#include <stdlib.h>

int main()
{
	clrscr (); /* on efface l'ecran */

	printf("\t\t\t -- BS * Loto v2.0 --");
	printf("\nCe programme genere aleatoirement des numeros de loto.");
	printf("\nTape une touche pour generer la liste des numeros...");

	getch (); /* Attend l'appuie d'une touche */
	num ();

}

int num () /* debut de la fonction de generation de numeros */
{
	int n1, n2, n3, n4, n5, n6, nc; /* On declare les variables */
	int x; /* variable de sortie */

	do
	{

	 randomize (); /* on initialise les nombres aleatoire */

	 /* Il y a 49 chiffre au loto + 1 car on compte le 1er chiffre  */
	 n1 = random (49) + 1; /* 1er numéro */
	 n2 = random (49) + 1; /* 2eme numéro */
	 n3 = random (49) + 1; /* 3eme numéro */
	 n4 = random (49) + 1; /* 4eme numéro */
	 n5 = random (49) + 1; /* 5eme numéro */
	 n6 = random (49) + 1; /* 6eme numéro */
	 nc = random (49) + 1; /* numéro complémentaire */
	}
        /* tant que n1 = n2, n1 = n3....on regenere d'autres nméros car on a pas le droit au loto de cochez 2 fois le meme numéros */
	while ((n1 == n2) || (n1 == n3) || (n1 == n4) || (n1 == n5) || (n1 == n6) || (n1 == nc) || (n2 == n3) || (n2 == n4) || (n2 == n5) || (n2 == n6) || (n2 == nc) || (n3 == n4) || (n3 == n5) || (n3 == n6) || (n3 == nc) || (n4 == n5)
	|| (n4 == n6)|| (n4 == nc) || (n5 == n6) || (n5 == nc) || (n6 == nc));

	 printf("\n\nNumeros : [%d] [%d] [%d] [%d] [%d] [%d] | [%d]", n1, n2, n3, n4, n5, n6, nc); /* On affiches les numéros générés */
	 printf("\n\nSi les numeros ne te plaise pas, tape 1 pour en generer d'autres, sinon tape 0");
	 printf("\npour quitter.\n");

	  scanf("%d", &x); /* On lit le caractere dans le tampon */

	  if (x == 0) /* SI 0 ==> fermeture */
	  {
		puts("\t\t\t\t=[Tu peux fermer le programme]=");
		exit(1);
	  }

	  if (x == 1) /* Si 1 c reparti ! */
	  {

		num(); /* On regenere */
	  }

}
 

 Conclusion

un dernier truc, si quelqu'un a une astuce pour simplifier le code apres le "while" qu'il me le fasse savoir!



 Sources de la même categorie

A5PAINTING,LE PAINT A LA DÉBUTANT par Chiheb2010
RETOURNER PLUSIEURS ARGUMENTS AVEC LES TUPLES par Davy974
Source avec Zip CALCULE LES TAXES par SanDum
Source avec Zip IMPLÉMENTATION DAWG par Ze1wina
Source avec Zip Source avec une capture NAVIGATEUR C++ BUILDER par hackhamster

Commentaires et avis

Commentaire de cmarsc le 11/05/2004 20:17:35

salut,
pour clrscr (), getch() il faut &lt;conio.h&gt;

Commentaire de cmarsc le 11/05/2004 21:14:02

il faut egalement &lt;time.h&gt; avec randomize
tu as un prototype int num()  il faudrait écrire int num(void);  (c'est du C et non du C++) et le placer avant main.
main return 0; et int num  return ? (int)

Commentaire de cleg123 le 10/08/2004 18:26:50

Beaucoup plus court et plus efficace ( d'accord sans la sortie écran formattée... )

int main(int nb, char **argv)
{
unsigned char tab[49];
int i,max,indice;

for(i=0;i<49;i++)
        { tab[i] = 1; }

srand(time(0));

for( max=1 ;  max < 8 ;  )
{
   indice = rand()%49;
   if( tab[indice] != 0 )
     {
       printf("Numéro %1d : %2d \n",max, (indice+1) );
       tab[indice] = 0; // On flambe ce numéro.
        max++;
     }
}

return(0);
}


L'idée reste ultra simple : en fait on initialise un tableau de 49 [nombre de numéros possible en fait ] et on génére aléatoirement l'indice du tableau qui va sortir. Si la valeur du tableau à l'indice qui vient de sortir vaut 1 alors le numéro n'est pas sorti donc on affiche puis on réinitialise la case à 0 ( en clair ce numéro ne pourra plus sortir ). On continue tant que l'on a pas nos 7 chiffres. Sur ce type de programme, cette structure fonctionne à merveille mais cela cache en fait une liste chainée...

Commentaire de mhidoo le 24/01/2005 23:36:57

SALUT
moi je vouderais faire une fonction de mélange d'un paquet de carte de 104 cartes, mais avec ce que j'ai fais j'ai toujours le mm paquet mélangé
aidez moi svp (je ss debutant en C)

Commentaire de cmarsc le 16/02/2005 13:26:14

salut,
#include <time.h>
#include <stdlib.h>
il faut initialiser le générateur de nombres pseudo aléatoire
srand((unsigned) time(NULL));

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Septembre 2010
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
27282930   

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,123 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales