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

Java Discussion :

c'est la vie!


Sujet :

Java

  1. #1
    Membre chevronné
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Points : 1 855
    Points
    1 855
    Par défaut c'est la vie!
    Ce message n'est pas une demande d'aide et pourrait tout aussi bien s'inscrire dans un autre sous-forum.
    (donc le responsable de forum peut la déplacer)

    Bonjour à toutes et à tous.

    Le 11 avril John Conway est décédé du Covid-19
    Pour celles et ceux qui ne connaissent pas Conway sachez que parmi ses nombreuses créations il y en a une qui est particulièrement chère aux programmeurs: le jeu de la vie
    voir ici: https://fr.wikipedia.org/wiki/Jeu_de_la_vie

    Si vous ne savez quoi faire de vos longues soirées confinées je vous conseille d'en programmer un.

    Quelques conseils:
    - ne mélangez pas le graphique et le fonctionnel. Chaque génération sera d'abord manipulée dans un objet qui sera ensuite affiché.
    - comme objet de manipulation je conseille de créer un objet "matrice torique": c'est quoi? et bien un tableau à deux dimensions dans lequel le voisin de droite de la case la plus à droite est la première case à gauche (idem pour le voisin au dessus d'un case au sommet ce sera la case en bas). On peut ainsi dans ces objets mettre au point une méthode comme : incrémenter(x,y) qui opérera sans se poser des questions aux limites. (le jeu dans un espace torique est une variante du jeu de la vie)
    - Une telle matrice de jeu contiendra des 0 ou des 1 (1 quand il y a un pion "vivant")

    pour faire une génération:
    - copier cette matrice A dans une matrice B
    - pour chaque case qui contient 1 dans A faire un "splash" dans B (incrémenter tous les voisins)
    ensuite on parcours B et on note les cases qui contiennent rien, un pion, un mort ou un nouveau-né (selon le chiffre présent dans la case)
    - on met à jour A et on met à jour l'interface graphique.

    Bien sûr on peut opérer d'une autre manière (celle-ci est surtout à visée pédagogique).

    Bonne soirées confinées.
    J'ai des principes: je peux toujours trouver une bonne raison pour les contredire .... mais j'ai des principes!
    (mon excellent bouquin sur Java : https://eska-publishing.com/fr/livre...822407076.html)

  2. #2
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Novembre 2006
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2006
    Messages : 503
    Points : 1 332
    Points
    1 332
    Par défaut
    Salut professeur,

    Un grand merci pour ton message, triste tout de même.

    Je confirme, c'est absolument génial à programmer.
    Programmer un jeu, dissocier la partie logique de la partie graphique est essentiel.
    J'aime aussi beaucoup le sudoku, qui va aussi dans ce sens.

    J'ai trouvé, sans chercher plus, https://www.dcode.fr/jeu-de-la-vie, pour ceux qui veulent un exemple.
    Je me souviens très bien des trois cellules alignées en horizontal, qui passe en vertical à la génération suivante et qui se font massacrer par un groupe de population qui lui arrive dessus!
    Il y a aussi les objets qui clignotent.

    J'ai environ 20 ans de programmes sur mon PC (C, C++, Java), mais impossible de retrouver une référence.
    Et je l'ai programmé, peut-être même bien avant, en Basic, sur mon Amiga.
    Bref cela fait partie de mon bagage informatique.

    A conseiller et très facile à bien programmer. Il faudra aussi sauver et recharger les générations, voire y ajouter des objets.

    Si je trouve le temps ... je vais m'y remettre ... et avec des couleurs, comme pour montrer les cellules qui restent en vie, sur les écrans de dimension hors du commun de nos jours.
    Et pourquoi pas arriver sur un écran 4K, faire se rentrer dedans deux "galaxies".

    Youps, cela me revient!
    J'avais défini un monde qui dépassait des 4 côtés, un monde fermé, où un objet pouvait repasser de l'autre côté s'il se déplaçait.
    La préparation d'un monde se faisait avec un simple fichier, avec des espaces et des croix.

    Youps encore, j'y suis et encore plus loin dans ma mémoire!
    Entre 1989 et 1991: exercice qui faisait partie d'un cours de programmation C++ et Smalltalk en //, sur SunOS et Sun Microsystems.

    Cordialement

  3. #3
    Membre chevronné
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Points : 1 855
    Points
    1 855
    Par défaut
    je n'ose pas l'avouer: mon premier jeu de la vie je l'ai programmé en APL (et le code faisait 3 lignes! )
    J'ai des principes: je peux toujours trouver une bonne raison pour les contredire .... mais j'ai des principes!
    (mon excellent bouquin sur Java : https://eska-publishing.com/fr/livre...822407076.html)

  4. #4
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Novembre 2006
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2006
    Messages : 503
    Points : 1 332
    Points
    1 332
    Par défaut
    Je n'osais pas trop le dire, mais c'est vraiment facile comme programmation, presque trop.
    Mais passer un bon moment sur le code, pour bien le documenter et l'indenter correctement, c'est souvent positif.
    J'avais un collègue de travail, il y a plus de 30 ans, avec du code assembleur, qui s'amusait à nommer ces fonctions et variables en ôtant les voyelles.
    Par exemple la méthode laCelluleVaTElleMourir, devenait lClllVTllMrr

    J'ai trouvé https://github.com/EmmanuelADAM/JeuDeLaVieJava, relativement récent.
    Pour Java, je travaille toujours avec Eclipse .... mais jamais avec Java FX.
    Je vais voir, voire m'y mettre!

  5. #5
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    Par défaut
    Moi ça me rapelle ce gros bouquin que j'ai acheter dans les années 2000 https://www.eyrolles.com/Informatiqu...9782736134150/ ou le type a fait optimisation sur optimisation pour que le truc tourne "a fond". (Le jeu de la vie).

    C'était le bon temps.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre chevronné
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Points : 1 855
    Points
    1 855
    Par défaut
    Citation Envoyé par boijea Voir le message
    J'avais un collègue de travail, il y a plus de 30 ans, avec du code assembleur, qui s'amusait à nommer ces fonctions et variables en ôtant les voyelles.
    Par exemple la méthode laCelluleVaTElleMourir, devenait lClllVTllMrr
    j'ai connu ça... mais on a parfois des surprises avec ces méthodes de raccourci (je me souviens qu'un copain avait abouti à la variable "ruoput" -tiens c'était justement dans le code d'un interprète APL -)
    Citation Envoyé par boijea Voir le message
    J'ai trouvé https://github.com/EmmanuelADAM/JeuDeLaVieJava, relativement récent.
    pas fana: justement un exemple d'un mélange graphique/fonctionnel
    J'ai des principes: je peux toujours trouver une bonne raison pour les contredire .... mais j'ai des principes!
    (mon excellent bouquin sur Java : https://eska-publishing.com/fr/livre...822407076.html)

Discussions similaires

  1. La France un pays où la vie est onéreuse?
    Par Mat.M dans le forum Politique
    Réponses: 49
    Dernier message: 15/04/2008, 23h08
  2. Réponses: 3
    Dernier message: 03/04/2008, 08h29
  3. Est-ce que le session id est unique à vie ou pas ?
    Par davitz38 dans le forum Langage
    Réponses: 4
    Dernier message: 18/12/2007, 17h31
  4. Réponses: 7
    Dernier message: 08/03/2007, 09h23
  5. Réponses: 5
    Dernier message: 14/12/2006, 21h18

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