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

Codes sources à télécharger Pascal Discussion :

Jeux mathématiques [Sources]


Sujet :

Codes sources à télécharger Pascal

  1. #1
    Membre du Club
    Avatar de Leprogrammateur
    Homme Profil pro
    Collégien
    Inscrit en
    Février 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Collégien
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2014
    Messages : 11
    Points : 66
    Points
    66
    Par défaut Jeux mathématiques
    Bonjour,

    Je vous propose un nouvel élément à utiliser : Jeux mathématiques en tp7

    C'est un jeu mathématique qui est en fait une boucle Repeat Until qui génère des nombres aléatoires entre 1 et 10 et il vérifie si votre résultat donnée est juste ou faux. S'il est faux il vous laisse une seconde chance.

    Voici le source :
    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
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    Program MultiplicaHER_3_2;
     
     
     
    Var
     
    n1,n2,cal,rep,n_m: integer;
     
    reponse: char;
     
     
     
    BEGIN
     
         Repeat
     
         Writeln('Combien de multiplication veut-tu faire?');
     
         Readln(n_m);
     
         Randomize;
     
               For cal:=1 to n_m do
     
                   Begin
     
                        n1:=trunc(11*random);
     
                        n2:=trunc(11*random);
     
                        Writeln(n1,'*',n2,'=');
     
                        Readln(rep);
     
                        If rep=n1*n2
     
                            Then
     
                                Writeln('la r‚ponse est juste.')
     
                            Else
     
                                Begin
     
                                     Writeln('la r‚ponse est fause.');
     
                                     Writeln('Recommence.');
     
                                     Begin
     
                                          Writeln(n1,'*',n2,'=');
     
                                          Readln(rep);
     
                                          If rep=n1*n2
     
                                             Then
     
                                                 Writeln('la r‚ponse est juste.')
     
                                             Else
     
                                                 Begin
     
                                                      Writeln('la r‚ponse est toujours fause.');
     
                                                 End;
     
                                     Writeln(n1,'*',n2,'=',n1*n2);
     
                                End; End;
     
                   End;
     
               Writeln('Une nouvelle s‚rie de 10 multiplication ? (O/N)');
     
               Readln(reponse);
     
         Until (reponse='N') or (reponse='n');
     
    END.
    Qu'en pensez-vous ?

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Mei,

    J'en pense qu'il faudrait utiliser la balise [code] pour avoir une présentation correcte.

    En parcourant en diagonale :

    - j'ai sauté jusqu'au plafond en voyant un randomize dans une boucle (normalement, cette initialisation ne doit être faite qu'une fois dans un programme)

    - il y a du code répété, créer une fonction/procédure.
    Si les cons volaient, il ferait nuit à midi.

  3. #3
    Membre du Club
    Avatar de Leprogrammateur
    Homme Profil pro
    Collégien
    Inscrit en
    Février 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Collégien
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2014
    Messages : 11
    Points : 66
    Points
    66
    Par défaut [code]
    Merci pour le randomize j'ai réglé le problème.
    Pour la fonction/procédure j'ai essayer mai ça bloque quand j'exécute le programme il me demande combien de multiplications je veut faire (je met le nombre) et ensuite je fais entrée sauf que il n'exécute pas la suite du programme. (Je vous met le script à la fin du message.)
    Pour la balise [code] je n'en n'ai jamais entendue parlé et je pense qu'il faut
    "un module complémentaire" pour turbo pascal pour avoir cette fonction.
    Cordialement leprogrammateur.

    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
    Program MultiplicaHER_3_5;
     
    Var
    n1,n2,cal,rep,n_m: integer;
    reponse: char;
     
    BEGIN
         Begin
              n1:=trunc(11*random);
              n2:=trunc(11*random);
              Writeln(n1,'*',n2,'=')
         End;
            Randomize;
            Repeat;
            Writeln('Combien de multiplication veut-tu faire?');
            Readln(n_m);
            For cal:=1 to n_m do
                        Begin
                             Readln(rep);
                             If rep=n1*n2
                                Then
                                    Writeln('la r‚ponse est juste.')
                                Else
                                    Begin
                                         Writeln('la r‚ponse est fause.');
                                         Writeln('Recommence.');
                                         Begin
                                              Writeln(n1,'*',n2,'=');
                                              Readln(rep);
                                              If rep=n1*n2
                                                 Then
                                                     Writeln('la r‚ponse est juste.')
                                                 Else
                                                     Begin
                                                          Writeln('la r‚ponse est toujours fause.');
                                                     End;
                                                     Writeln(n1,'*',n2,'=',n1*n2);
                                         End;        End;
                        End;
               Writeln('Une nouvelle s‚rie de multiplication ? (O/N)');
               Readln(reponse);
         Until (reponse='N') or (reponse='n');
    END.

  4. #4
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par Leprogrammateur Voir le message
    Merci pour le randomize j'ai réglé le problème.
    Non, ce n'est pas réglé : tu as placé l'instruction Randomize après le tirage au sort. Apparemment tu n'as pas encore bien compris à quoi elle sert.

    Autre observation : à quoi servent les mots begin et end dans cette partie de ton code ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
         Begin
              n1:=trunc(11*random);
              n2:=trunc(11*random);
              Writeln(n1,'*',n2,'=')
         End;
    Réponse : ils ne servent à rien.

    Sans vouloir t'offenser, tu pourrais peut-être étudier encore un peu avant de contribuer aux sources du forum.

    Bonne continuation !
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  5. #5
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Koa,
    Citation Envoyé par Roland Chastain Voir le message
    Sans vouloir t'offenser, tu pourrais peut-être étudier encore un peu avant de contribuer aux sources du forum.

    Bonne continuation !
    Même moi, je n'ai pas osé le dire.

    Au passage : on dit "programmeur", pas "programmateur", qui est utilisé pour des automatismes (par exemple : ce qui assure le fonctionnement d'une machine à laver ! ).
    Si les cons volaient, il ferait nuit à midi.

  6. #6
    Membre du Club
    Avatar de Leprogrammateur
    Homme Profil pro
    Collégien
    Inscrit en
    Février 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Collégien
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2014
    Messages : 11
    Points : 66
    Points
    66
    Par défaut MultiplicaHER 3.5
    C'est bon pour le randomize cette fois j'ai compris et ainsi que pour la fonction.
    J'ai une autre idée pour mon programme maintenant, je vais à la fin faire un message qui va affiché le nombre de multiplications juste et le nombre de fausse et j'ai l'idée de faire 2 nouvelle variable de type integer et à chaque fois qu'une réponse est juste j'attibue à la variable plus un et pareil quand c'est faux.
    A et pour le "Leprogrammateur" c'est parce que il n'y avais pas "Le programmeur":)
    Voilà le script:
    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
    Program MultiplicaHER_3_5;
     
    Var
    n1,n2,cal,rep,n_m: integer;
    reponse: char;
     
    function Alea(n:integer) : integer;
     
    Begin
         Alea:=trunc(n*random);
    End;
     
    BEGIN
         Randomize;
         Repeat
         Writeln('Combien de multiplication veut-tu faire?');
         Readln(n_m);
               For cal:=1 to n_m do
                   Begin
                        n1:=Alea(11);
                        n2:=Alea(11);
                        Writeln(n1,'*',n2,'=');
                        Readln(rep);
                        If rep=n1*n2
                            Then
                                Writeln('la r‚ponse est juste.')
                            Else
                                Begin
                                     Writeln('la r‚ponse est fause.');
                                     Writeln('Recommence.');
                                     Begin
                                          Writeln(n1,'*',n2,'=');
                                          Readln(rep);
                                          If rep=n1*n2
                                             Then
                                                 Writeln('la r‚ponse est juste.')
                                             Else
                                                 Begin
                                                      Writeln('la r‚ponse est toujours fause.');
                                                 End;
                                     Writeln(n1,'*',n2,'=',n1*n2);
                                End; End;
                   End;
               Writeln('Une nouvelle s‚rie de multiplication ? (O/N)');
               Readln(reponse);
         Until (reponse='N') or (reponse='n');
    END.

  7. #7
    Membre du Club
    Avatar de Leprogrammateur
    Homme Profil pro
    Collégien
    Inscrit en
    Février 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Collégien
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2014
    Messages : 11
    Points : 66
    Points
    66
    Par défaut MultiplicaHER 4.3
    Voilà, j'ai crée une nouvelle version de mon programme.
    Le problème c'est que je n'arrive pas à le compiler en .exe.
    Voilà le code:
    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
    Program MultiplicaHER_4_3;
     
    Var
    n1,n2,cal,rep,n_m,nm_j,nm_f,nmf_p: integer;
    reponse: char;
     
    function Alea(n:integer) : integer;
     
    Begin
         Alea:=trunc(n*random);
    End;
     
    BEGIN
         Randomize;
         Repeat
         Writeln('Combien de multiplication veut-tu faire?');
         Readln(n_m);
               For cal:=1 to n_m do
                   Begin
                        n1:=Alea(11);
                        n2:=Alea(11);
                        Writeln(n1,'*',n2,'=');
                        Readln(rep);
                        Begin
                        If rep=n1*n2
                            Then
                                Writeln('la r‚ponse est juste.')
                            Else
                                Begin
                                     Writeln('la r‚ponse est fause.');
                                     Writeln('Recommence.');
                                     nmf_p:=nmf_p+1;
                                     Begin
                                          Writeln(n1,'*',n2,'=');
                                          Readln(rep);
                                          If rep=n1*n2
                                             Then
                                                 Writeln('la r‚ponse est juste.')
                                             Else
                                                 Begin
                                                      Writeln('la r‚ponse est toujours fause.');
                                                      nm_f:=nm_f+1;
                                                 End;
                                     Writeln(n1,'*',n2,'=',n1*n2);
                                End; End;
                        End;
                   End;
               nm_j:=nm_j+1;
               Write('Tu as ');
               Write(nm_j);
               Write(' multiplications justes et ');
               Write(nm_f);
               Writeln(' de multiplications fausses.');
               Write('Tu as fais aussi ');
               Write(nmf_p);
               Writeln(' de premiŠre(s) erreur(s).');
               Writeln('Une nouvelle s‚rie de multiplication ? (O/N)');
               Readln(reponse);
         Until (reponse='N') or (reponse='n');
    END.

Discussions similaires

  1. Développement jeux vidéo : quelles bases à avoir absolument ?
    Par Ezechiel dans le forum Développement 2D, 3D et Jeux
    Réponses: 175
    Dernier message: 20/02/2018, 16h14
  2. Nouvelle FAQ Mathématiques pour les jeux : 82 réponses à vos questions
    Par raptor70 dans le forum Développement 2D, 3D et Jeux
    Réponses: 14
    Dernier message: 11/10/2010, 19h13
  3. [Jeux mathématique] Magique
    Par Pascal Jankowski dans le forum Enigmes
    Réponses: 33
    Dernier message: 21/08/2006, 09h16
  4. Editeur de MAP en delphi pour jeux directX
    Par PetitScorpion dans le forum DirectX
    Réponses: 5
    Dernier message: 09/07/2002, 18h47

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