Pourriez-vous m'aider dans mon ébauche du jeu de la vie deConway

Fermé
myrmounet Messages postés 11 Date d'inscription vendredi 22 août 2014 Statut Membre Dernière intervention 22 avril 2021 - Modifié par KX le 10/01/2017 à 06:55
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 22 août 2014 à 20:10
Bonjour,





Bonjour à tous et à toutes, je me suis penché sur une version plutôt simpliste du Jeu de La Vie de Conway, et ceci en le faisant plutôt basiquement.
La plupart des versions de ce jeu que j'ai trouvé sont bien plus complexes que le code que j'ai tapé.
Donc je me demandais si vous pouviez éclairée ma lanterne concernant mon code.
voilà:


import javax.swing.*;
public class GameofLife {
  static int NbLig=10;
  static int NbCol =10;
  static boolean[][]tablo1 = new boolean[NbCol][NbLig];
  static boolean intermediaire[][]=new boolean[NbCol][NbLig];
  static String resultat="";
  static public int x=0;public static int y=0;
  public static int NbAutour;
 public static void lifeinit()
 {int ICol=0;
 int ILig=0;
  for (ILig=0;ILig<NbLig;ILig++) 
  for (ICol=0; ICol<NbCol;ICol++)
   tablo1[ICol][ILig]=Math.random()<=0.5;
 
 }
 static String makescreen()
 {int ICol;
 int ILig;
  String resultat = ""; 
 for (ILig=0; ILig<NbLig; ILig++)
 { for (ICol=0; ICol<NbCol; ICol++)
  
   if(tablo1[ICol][ILig])
    resultat += " O ";
   else resultat +=" X ";
 resultat =resultat+"\r\n";
 }
 return resultat;
 }
 public static int compte(int x, int y){
  int ILig=x;
  int ICol=y;
 for (ILig=ILig-1;ILig<=ILig+1;ILig++)
  {for (ICol=ICol-1;ICol<=ICol+1;ICol++)
   if (ILig>=0&&ILig<NbLig&&ICol>=0&&ICol<NbCol)
    if(tablo1[ICol][ILig])
     NbAutour ++;}
 NbAutour = NbAutour-1;
 return NbAutour;}
 public static void alivedead()
 {int Cb=0;
 int Lig;
 int Col;
 for (Lig=0;Lig<NbLig;Lig++)
  {for (Col=0;Col<NbCol;Col++)
   {Cb=compte(Col, Lig);
   if (Cb==3)
    intermediaire[Col][Lig]=true;
   if (Cb <=2&&Cb>=4)
    intermediaire[Col][Lig]=false;
}}}
 public static void main(String[]args)
 {int Col; int Lig;
  lifeinit();
  JOptionPane.showMessageDialog(null, makescreen());
  int iteration=0;
  for (iteration =0;iteration <=4; iteration ++)
  {alivedead();

  for (Lig=0;Lig<NbLig;Lig++)
   {for (Col=0;Col<NbCol;Col++)
    tablo1[Col][Lig]=intermediaire[Col][Lig];}
  JOptionPane.showMessageDialog(null, makescreen());
 }

 }}


Merci pour toutes indications salvatrices pour le faire tourner.
A voir également:

1 réponse

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
22 août 2014 à 20:10
Bonjour,

"La plupart des versions de ce jeu que j'ai trouvé sont bien plus complexes que le code que j'ai tapé."
Peut-être que les autres versions fonctionnaient, ce n'est pas le cas de la tienne, ou alors tu n'as pas compris l'intérêt de l'étude.

Le premier truc qui saute aux jeux, c'est que tu affiches tes données une seule fois et avec un showMessageDialog ! Pour un programme qui doit s'animer comme une vidéo pour voir ce qu'il se passe c'est particulièrement gênant de devoir appuyer sur OK à chaque fois...

Voici ce que l'on devrait pouvoir reproduire avec ton programme :
https://www.youtube.com/watch?v=XcuBvj0pw-E
0