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

Turbo Pascal Discussion :

Jeu de la vie (automate cellulaire) [Turbo Pascal]


Sujet :

Turbo Pascal

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Jeu de la vie (automate cellulaire)
    Bonjour,

    j'ai commencé a apprendre le Pascal il y a deux semaines de cela et je me suis lancé dans le projet de créer l'algorithme du jeu de la vie dont voici mon 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
    rogram algo_jeu_de_la_vie; 
    label boucle;
    CONST n=10; (* taille des tableaux (parametrable) *)
    var a,b,count,z : integer;
        tab1      : Array[0..n-1, 0..n-1] of integer; (* declaration tableaux *)
        tab2      : Array[0..n-1, 0..n-1] of integer;
    begin
       a:=0;
       b:=0;
       for a:=0 to (n-1) do
       begin
          for b:=0 to (n-1) do (* double for (= passage par toute les cases du tableau) *)
           begin
    	  randomize; (* mise des cases a une valeur aleatoire *)
    	  tab1[a, b]:=(random(2)); 
           end;
       end;
       for a:=0 to (n-1) do
       begin
          for b:=0 to (n-1) do
          begin
    	 write(tab1[a,b]:2);
          end;
          writeln;
       end;
    end.
    Or quand je l'exécute ne s'affiche qu'un tas de zéros
    Ya-t-il quelqu'un qui sait où mon code buggue.
    Bien à vous qui me lisez...

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Solution
    En fait l'erreur était simpliste voici la solution que j'ai trouvé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
    program algo_jeu_de_la_vie; 
    label boucle;
    CONST n=10; (* taille des tableaux (parametrable) *)
    var a,b,count,z : integer;
        tab1      : Array[0..n-1, 0..n-1] of integer; (* declaration tableaux *)
        tab2      : Array[0..n-1, 0..n-1] of integer;
    begin
       a:=0;
       b:=0;
       randomize;
       for a:=0 to (n-1) do
       begin
          for b:=0 to (n-1) do (* double for (= passage par toute les cases du tableau) *)
           begin
    	 tab1[a, b]:=(random(2));  (* mise des cases a une valeur aleatoire *)	  
           end;
       end;
       for a:=0 to (n-1) do
       begin
          for b:=0 to (n-1) do
          begin
    	 write(tab1[a,b]:2);
          end;
          writeln;
       end;
    end.
    pour faire plus clair:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     a:=0;
       b:=0;
       randomize;
       for a:=0 to (n-1) do
       begin
          for b:=0 to (n-1) do (* double for (= passage par toute les cases du tableau) *)
           begin
    	 tab1[a, b]:=(random(2));  (* mise des cases a une valeur aleatoire *)	  
           end;
    moralité ne jamais mettre un randomize dans la boucle for mici qui (ben moi )

  3. #3
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    petite suggestion d'amelioration :

    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
     
    const
      cTabSize = 10;
      cTabHigh = cTabSize-1;
     
    type
      TTab = array[0..cTabSize-1, 0..cTabSize-1] of integer;
     
     
    procedure GenerateTab(var aTab: TTab);
    var X,Y : integer;
    begin
      for X := 0 to cTabHigh do
        for Y := 0 to cTabHigh do
          aTab[X, Y] := (random(255) * random(255)) and $1;
          // Plus de hasard! il nous en faut plus! toujours plus!
          // remarquez le "and $1" plutôt qu'un "mod 2", plus performant
          // cela nous permet de ne pas perdre trop de perf avec le double random
    end;
     
    procedure ShowTab(const aTab: TTab);
    var X,Y : integer;
    begin
      for X := 0 to cTabHigh do
      begin
        for Y := 0 to cTabHigh do
          write(aTab[X,Y]:2);
        writeln;
      end;
    end;
     
    var
      tab1, tab2 : TTab;
     
    begin
      randomize;
     
      GenerateTab(Tab1);
      ShowTab(Tab1);
     
    end.
    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Automate cellulaire (jeu de la vie)
    Par Achrouuuf dans le forum Octave
    Réponses: 9
    Dernier message: 25/11/2011, 14h41
  2. Automate cellulaire (jeu de la vie)
    Par bastienUPMC dans le forum MATLAB
    Réponses: 7
    Dernier message: 21/11/2011, 13h13
  3. Réponses: 7
    Dernier message: 03/02/2010, 23h03
  4. [Conception] Jeu de la vie
    Par deuscapser dans le forum Général Java
    Réponses: 16
    Dernier message: 09/03/2006, 12h47
  5. [VB] projet à réaliser: Jeu de la vie
    Par mauriiice dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 02/12/2005, 20h06

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