une Base Solide en Programmation

C++/Java/Delphi/Assembleur
 
AccueilPortailFAQRechercherS'enregistrerMembresGroupesConnexion

Partagez | 
 

 Nombres Aléatoires

Aller en bas 
AuteurMessage
Benayada Houari
Administrateur
Administrateur
avatar

Masculin
Nombre de messages : 89
Age : 32
Localisation : Chlef
Loisirs : Sport
Date d'inscription : 14/03/2007

MessageSujet: Nombres Aléatoires   Lun 6 Aoû - 20:20

Pour générer des nombres aléatoires if faut tapez:
Code:

srand(time(NULL));
nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
La première ligne (avec srand) permet d'initialiser le générateur de nombre aléatoires.
nombreMystere est une variable qui contiendra le nombre au hasard.
Attention:
L'instruction srand ne doit être exécutée qu'une seule fois (au début du programme). Il faut obligatoirement faire un srand une fois, et seulement une fois.
Vous pouvez ensuite faire autant de rand() que vous voulez pour générer des nombres aléatoires. Mais il ne faut PAS que l'ordinateur lise l'instruction srand 2 fois par programme, ne l'oubliez pas.
MAX et MIN sont des constantes
RMQ:Il faut utiliser la bibliothèque <time.h>
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Admin
Administrateur
Administrateur
avatar

Masculin
Nombre de messages : 232
Age : 31
Localisation : A COTé 2MON PC
Loisirs : KUNG FU
Date d'inscription : 05/03/2007

MessageSujet: Re: Nombres Aléatoires   Mar 7 Aoû - 22:49

tres bien
mais je souhaite que tu nous donnes un programme complet qui utilise cette fonction
moi je vais faire un si le temps me permet

_________________
www.abdoullah.co.cc(en construction)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://hbpcclub.forumactif.fr
Benayada Houari
Administrateur
Administrateur
avatar

Masculin
Nombre de messages : 89
Age : 32
Localisation : Chlef
Loisirs : Sport
Date d'inscription : 14/03/2007

MessageSujet: Jeu version 1   Mer 8 Aoû - 14:50

Voila un programme(c'est un jeu) qui utilise les nombres aléatoires.

Tous d'abord je veux dire que j'ai trouvé l'idée (et pas le programme-code-) dans un site.
--L'ordinateur tire au sort un nombre entre 1 et 100
--Il vous demande de deviner le nombre. Vous rentrez donc un nombre entre 1 et 100
--L'ordinateur compare le nombre que vous avez rentré avec le nombre "mystère" qu'il a tiré au sort. Il vous dit si le nombre mystère est supérieur ou inférieur à celui que vous avez entré
--Puis, l'ordinateur vous redemande le nombre.
... Et il vous indique si le nombre mystère est supérieur ou inférieur.
Et ainsi de suite, jusqu'à ce que vous ayez trouvé le nombre mystère.

Je pense que avez compris le principe de jeu...
(Allez au travail...sans regarder le code au-dessous)...
Ici dans ce programme le nombre mystère est la varaible b, et le nombre que vous avez entré est la variable a...
Enfin je suis trés intréssant au programmation des jeux...
Alors, j'espère que vous m'envoyer des idées pour améliorer ce jeu plus plus...

Code:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(int argc, char *argv[])
{
    const long max=100,min=1;
  int a,b=0;
  srand(time(NULL));
  a=(rand()%(max-min+1))+min;
  do
  {
      printf("Quel est le nombre ? ");
      scanf("%ld",&b);
      if (b<a)
            printf("C'est plus \n");
      else if (b>a)
            printf("C'est moins \n");
  }
  while (a!=b);
      printf("Bravon Vous avez trouve le nombre mystere !!!\n");
  system("PAUSE");   
  return 0;
}
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Benayada Houari
Administrateur
Administrateur
avatar

Masculin
Nombre de messages : 89
Age : 32
Localisation : Chlef
Loisirs : Sport
Date d'inscription : 14/03/2007

MessageSujet: Jeu version 2   Mer 8 Aoû - 16:37

Dans Cette version j'ai ajouté un compteur, qui compte combien tu vas essayer pour trouvé le nombre...

Code:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(int argc, char *argv[])
{
    const long max=100,min=1;
  int a=0,b=0,coup=0;
  srand(time(NULL));
  a=(rand()%(max-min+1))+min;
  do
  {
      printf("Quel est le nombre ? ");
      scanf("%ld",&b);
      coup++;
      if (b<a)
            printf("C'est plus \n");
      else if (b>a)
            printf("C'est moins \n");
  }
  while (a!=b);
      printf("Bravon Vous avez trouve le nombre mystere en %ld coup!!!\n",coup);
  system("PAUSE");   
  return 0;
}
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Benayada Houari
Administrateur
Administrateur
avatar

Masculin
Nombre de messages : 89
Age : 32
Localisation : Chlef
Loisirs : Sport
Date d'inscription : 14/03/2007

MessageSujet: Jeu Version 3   Mer 8 Aoû - 20:07

Dans cette version, j'ai utilisé une boucle entour de tous le programme, l'utilité de cette boucle est de questionner le joueur s'il veut jouer une autre partie, et il va répond par o)ui (jouer une autres partie) on n)on (sortir du jeu)...

Code:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(int argc, char *argv[])
{
    char r;
  do
  {
  const long max=100,min=1;
  int a=0,b=0,coup=0;
  srand(time(NULL));
  a=(rand()%(max-min+1))+min;
  do
  {
      printf("Quel est le nombre ? ");
      scanf("%ld",&b);
      coup++;
      if (b<a)
            printf("C'est plus \n");
      else if (b>a)
            printf("C'est moins \n");
  }
  while (a!=b);
      printf("Bravon Vous avez trouve le nombre mystere en %ld coup!!!\n",coup);
  printf("Jouer une autres fois ?");
  scanf("%ls",&r);
}
while (r!='n');
    system("PAUSE");   
  return 0;
}
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Admin
Administrateur
Administrateur
avatar

Masculin
Nombre de messages : 232
Age : 31
Localisation : A COTé 2MON PC
Loisirs : KUNG FU
Date d'inscription : 05/03/2007

MessageSujet: Re: Nombres Aléatoires   Mer 8 Aoû - 22:59

tres bien
mais s.t.p quand les membres veulent complier ce programme sous borland c
il ne sera pas etre compilé
alors teste tes programmes sous borland c avant les poster parce que la majorité utilise ce compilateur

_________________
www.abdoullah.co.cc(en construction)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://hbpcclub.forumactif.fr
Benayada Houari
Administrateur
Administrateur
avatar

Masculin
Nombre de messages : 89
Age : 32
Localisation : Chlef
Loisirs : Sport
Date d'inscription : 14/03/2007

MessageSujet: Compil   Jeu 9 Aoû - 19:44

Non, Il suffit juste de enlever l'instruction
Code:
system("pause")
pour que le programme  marche sous BORLAND C++
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Benayada Houari
Administrateur
Administrateur
avatar

Masculin
Nombre de messages : 89
Age : 32
Localisation : Chlef
Loisirs : Sport
Date d'inscription : 14/03/2007

MessageSujet: Jeu version 4   Jeu 9 Aoû - 19:46

Jeu aux niveaux

Code:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(int argc, char *argv[])
{
    char r;
  do
  {
  int niveau=0,max=0,min=1;
  printf("Choisissez le niveau :\n");
  printf("1.NIVEAU 1 (entre 1 et 100)\n");
  printf("2.NIVEAU 2 (entre 1 et 1000)\n");
  printf("3.NIVEAU 3 (entre 1 et 10000)\n");
  scanf("%ld",&niveau);
  switch (niveau)
  {
      case 1:
          max=100;
          break;
      case 2:
          max=1000;
          break;
      case 3:
          max=10000;
          break;
  }
    int a=0,b=0,coup=0;
  srand(time(NULL));
  a=(rand()%(max-min+1))+min;
  do
  {
      printf("Quel est le nombre ? ");
      scanf("%ld",&b);
      coup++;
      if (b<a)
            printf("C'est plus \n");
      else if (b>a)
            printf("C'est moins \n");
  }
  while (a!=b);
      printf("Bravon Vous avez trouve le nombre mystere en %ld coup!!!\n",coup);
  printf("Jouer une autres fois ?");
  scanf("%ls",&r);
}
while (r!='n');
    system("PAUSE");   
  return 0;
}
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Benayada Houari
Administrateur
Administrateur
avatar

Masculin
Nombre de messages : 89
Age : 32
Localisation : Chlef
Loisirs : Sport
Date d'inscription : 14/03/2007

MessageSujet: Jeu version 5   Jeu 9 Aoû - 19:47

L'utilisation du fonction non-prototype pour générer les nbrs aléatoires
Code:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int genere(int max,int min)
{
    int a0=0;
    srand(time(NULL));
    a0=(rand()%(max-min+1))+min;
    return a0;
}
  int main(int argc, char *argv[])
{
    char r;
  do
  {
  int niveau=0,max=0,min=1;
  printf("Choisissez le niveau :\n");
  printf("1.NIVEAU 1 (entre 1 et 100)\n");
  printf("2.NIVEAU 2 (entre 1 et 1000)\n");
  printf("3.NIVEAU 3 (entre 1 et 10000)\n");
  scanf("%ld",&niveau);
  switch (niveau)
  {
      case 1:
          max=100;
          break;
      case 2:
          max=1000;
          break;
      case 3:
          max=10000;
          break;
  }
    int a=0,b=0,coup=0;
  a=genere(max,min);
  do
  {
      printf("Quel est le nombre ? ");
      scanf("%ld",&b);
      coup++;
      if (b<a)
            printf("C'est plus \n");
      else if (b>a)
            printf("C'est moins \n");
  }
  while (a!=b);
      printf("Bravon Vous avez trouve le nombre mystere en %ld coup!!!\n",coup);
  printf("Jouer une autres fois ?");
  scanf("%ls",&r);
}
while (r!='n');
    system("PAUSE");   
  return 0;
}
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
chaouge
soldat
soldat


Masculin
Nombre de messages : 22
Age : 30
Localisation : my town
Loisirs : leisure
Date d'inscription : 28/11/2007

MessageSujet: Re: Nombres Aléatoires   Jeu 29 Nov - 0:15

Benayada Houari a écrit:
Pour générer des nombres aléatoires if faut tapez:
Code:

srand(time(NULL));
nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
La première ligne (avec srand) permet d'initialiser le générateur de nombre aléatoires.
nombreMystere est une variable qui contiendra le nombre au hasard.
Attention:
L'instruction srand ne doit être exécutée qu'une seule fois (au début du programme). Il faut obligatoirement faire un srand une fois, et seulement une fois.
Vous pouvez ensuite faire autant de rand() que vous voulez pour générer des nombres aléatoires. Mais il ne faut PAS que l'ordinateur lise l'instruction srand 2 fois par programme, ne l'oubliez pas.
MAX et MIN sont des constantes
RMQ:Il faut utiliser la bibliothèque
pourquoi on a mis (max - min + 1) + min ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Admin
Administrateur
Administrateur
avatar

Masculin
Nombre de messages : 232
Age : 31
Localisation : A COTé 2MON PC
Loisirs : KUNG FU
Date d'inscription : 05/03/2007

MessageSujet: Re: Nombres Aléatoires   Jeu 29 Nov - 23:03

tu peut mette se que tu veut mais en met cette fonction pour mettre les choses un peut difficile(pour que le joueur ne peut pas deviner la truck facilement avec +eurs fois)

_________________
www.abdoullah.co.cc(en construction)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://hbpcclub.forumactif.fr
Benayada Houari
Administrateur
Administrateur
avatar

Masculin
Nombre de messages : 89
Age : 32
Localisation : Chlef
Loisirs : Sport
Date d'inscription : 14/03/2007

MessageSujet: Re: Nombres Aléatoires   Ven 30 Nov - 20:28

Slt chaouge
Pour ta question sur la fonction rand(), je t'explique:
La fonction rand() retourne un numéro aléatoire entre : 0 et 32767, et pour vérifier, essayer ce code:
Code:

printf("%d",RAND_MAX);
Ok, notre nombre alors est entre 0 et 32767, mais on veut le limiter par exmple entre MIN et MAX (par exemple MIN=5 et MAX=10, ou MIN=5 et MAX=100, comme tu veux...), Alors on fait l'opération MODULO ( % ),
Code:
printf("%d",rand()%MAX);

pour ne pas dépasser MAX que l'on a fixer au-dessus, si le nombre dépasse le MAX il revient au 0...
Bien, mais notre domaine est [MIN=5 , MAX=10], et pas [0 , MAX=10], alors on ajoute MIN à la formule :
Code:
printf("%d",rand()%MAX+MIN);
Bien Bien,mais si tu regarde le code, on a génère un problem comme ça, notre domaine maitenant est [MIN , MAX+MIN],
cad le MAX est décalé MIN fois a droite, cad notre domaine maitenant est [MIN=5 , MAX=10+MIN], mais on veut [MIN=5 , MAX=10], que ce qu'on faire à votre avis?, alors nous allons soustracter de MAX la valeur que l'on a ajoutée, et on obtient à la fin notre domaine [MIN=5 , MAX=10+MIN-MIN] ===> [MIN=5 , MAX=10]
Code:
 printf("%d",rand()%(MAX-MIN)+MIN);
PS: Comme ça le programme génère des nombres entre MIN et MAX-1, Alors on ajoute +1
Code:
 printf("%d",rand()%(MAX-MIN+1)+MIN;

Exemple:
Nous voulons créer un programme génère un nombre aléatoire entre 50 et 100
alors:
MIN=50, MAX=100

Code:
printf("%d",rand()); /* Le code génère un nombre entre 0 et 32767 */

Code:
printf("%d",rand()%MAX); /* Le code génère un nombre entre 0 et MAX-1 (de 0 à 99)*/

Code:
printf("%d",rand()%MAX+MIN); /* Le code génère un nombre entre MIN et (MAX-1)+MIN (de 50 à 149) */

Code:
printf("%d",rand()%(MAX-MIN)+MIN ); /* Le code génère un nombre entre MIN et (MAX-1) (de 50 à 99) */

Code:
printf("%d",rand()%(MAX-MIN+1)+MIN); /* Le code génère un nombre entre MIN et MAX (de 50 à 100) */

ET TOUT CA N'OUBLIE PAS D'INCLURE LA LIBRAIRIE time.h
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
chaouge
soldat
soldat


Masculin
Nombre de messages : 22
Age : 30
Localisation : my town
Loisirs : leisure
Date d'inscription : 28/11/2007

MessageSujet: Re: Nombres Aléatoires   Ven 30 Nov - 22:18

jazaka allahou khairan Benayada Houari
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Nombres Aléatoires   

Revenir en haut Aller en bas
 
Nombres Aléatoires
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» pour jouer avec les chiffres et les nombres
» Réinitialiser nombres de messages
» nombres de visites
» Trait qui sépare le nombre de messages au nombres de sujets ect
» Bloquer l'accès à un forum avant un certains nombres de messages.

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
une Base Solide en Programmation :: HBPCCLUB ACADEMY :: C-
Sauter vers: