Répondre à la discussion
Affichage des résultats 1 à 19 sur 19

Besoin d'aide Projet Le Jeu de la Vie C++ SVP

  1. #1
    Ninikills

    Besoin d'aide Projet Le Jeu de la Vie C++ SVP

    Bonjour , je suis en train de programmer un jeu de la vie, mais je me heurte a un problème lorsque je veux qu'un cellule morte devienne vivante et change de couleur lorsque je clic sur celle ci.*
    J'utilise SFML pour la fenêtre du jeu.
    Le code est assez long mais plutôt simple. j'espère que quelqu'un me donnera un coup de main je suis un peu desesperé j'imagine que cela doit être un problème assez simple auquel je n'ai pas du tout penser.*
    En gros dans mon main je detecte l'event mousebutton left is pressed, et j'utilise une de mes méthodes pour que la cellule sous le curseur passe de la mort a la vie, elle est aussi sensé passé de la couleur blanche a la couleur noire, or rien de ceci ne se passe.

    Il est ecrit ci dessous.
    Merci d'avance si vous décidez de vous y arrêter pour m'aider.


    Main
    #include <iostream>
    #include <SFML/Graphics.hpp>
    #include <SFML/Window.hpp>
    #include "Grid.h"
    *
    using namespace std;
    *
    *
    int main()
    {
    ****sf::RenderWindow window(sf::VideoMode(800,600,3 2),"GOL",sf::Style::Close);
    ****window.setFramerateLimit(1 0);
    *
    ****sf::Event e;
    *
    ****Grid grid(800,600);
    *
    *
    ****const int UPDATING=0, MODIFYING =1;
    ****int state=MODIFYING;
    *
    ****while(window.isOpen())
    ****{
    ********while(window.pollEvent (e))
    ********{
    ************if(e.type == sf::Event::Closed)
    ************{
    ****************window.close() ;
    ************}
    *
    ************if(e.type == sf::Event::KeyPressed)
    ************{
    ****************switch(e.key.c ode)
    ****************{
    ********************case sf::Keyboard::Escape:
    ************************window .close();
    ************************break;
    *
    ********************default:br eak;
    ****************}
    ************}
    *
    ************if(e.type == sf::Event::MouseButtonPressed)
    ************{
    ****************if(e.mouseButt on.button== sf::Mouse::Left)
    ****************{
    ********************int x;
    ********************int y;
    *
    ********************x=sf::Mous e::getPosition(window).x/20;
    ********************cout<<x;
    ********************y=sf::Mous e::getPosition(window).y/20;
    *
    ********************if(x >= 0 && y >= 0 && x <=39 && y <=29)
    ********************{
    ************************grid.M ettreCellA(!grid.cellVivanteA( x,y),x,y);
    ************************cout<< grid.cellVivanteA(x,y);
    ************************cout<< "hey";
    ************************
    ********************}
    *
    *
    ****************}
    ************}
    *
    *
    ********}
    *********
    *********
    *
    ********if(state==UPDATING)
    ********{
    ************grid.NextGeneratio n();
    ********}
    *
    *
    ********window.clear(sf::Color ::White);
    ********grid.draw(window);
    ********window.display();
    *
    *
    *
    *
    ****}
    *
    *
    ****return 0;
    }

    Cell.h(classe)
    #include <iostream>
    #include <SFML/Graphics.hpp>
    *
    *
    #define CELL
    #ifdef* CELL
    *
    using namespace sf;
    *
    class Cell
    {
    public:
    ********Cell();
    ********Cell(bool alive,int x,int y);
    ********bool cellVivante();
    ********void setCellstate(bool alive);
    ********void draw(sf::RenderWindow &window);
    ********sf::RectangleShape* getshape();
    *
    private:
    ****sf::RectangleShape m_shape;
    ****bool m_alive;
    *
    *
    };
    #endif // CELL

    Grid.h(classe)
    #define GRID
    #ifdef* GRID
    #include <iostream>
    #include <SFML/Graphics.hpp>
    #include "Cell.h"
    #include <vector>
    *
    *
    class Grid
    {
    *
    protected:
    *********int m_largeur;
    *********int m_hauteur;
    *********Cell m_cells[40][30];
    *
    public:
    ********Grid();
    ********Grid( int largeur, int hauteur);
    ********bool cellVivanteA(int x,int y);
    ********void MettreCellA(bool alive, int x,int y);
    ********void NextGeneration();
    ********void draw(sf::RenderWindow &window); //dessiner la fenetre
    *
    };
    #endif // GRID



    Cell.cpp*
    #include <iostream>
    #include "Cell.h"
    #include <SFML/Graphics.hpp>
    *
    using namespace std;
    *
    Cell::Cell()
    {
    *
    }
    *
    Cell::Cell(bool alive, int x , int y)
    {
    ****this->m_shape = sf::RectangleShape(sf::Vector2 f(20,20));
    ****this->m_shape.setPosition(x,y);
    ****this->m_alive=alive;
    *
    ****if(alive)
    ****{
    ********this->m_shape.setFillColor(sf::Colo r::Black);
    *
    ****}
    ****else
    ****{
    ********this->m_shape.setFillColor(sf::Colo r::White);
    ****}
    *
    *
    *
    }
    *
    bool Cell::cellVivante()
    {
    ****return m_alive;
    }
    *
    void Cell::setCellstate(bool alive)
    {
    ****if(alive)
    ****{
    ********this->m_shape.setFillColor(sf::Colo r::Black);
    ****}
    ****else
    ****{
    ********this->m_shape.setFillColor(sf::Colo r::White);
    ****}
    }
    *
    sf::RectangleShape* Cell::getshape()
    {
    ****return &m_shape;
    }
    *
    void Cell::draw(sf::RenderWindow &window)
    {
    ****window.draw(m_shape);
    }




    Grid.cpp
    #include <iostream>
    #include "SFML/Graphics.hpp"
    #include "Grid.h"
    *
    using namespace std;
    *
    Grid::Grid(int largeur, int hauteur )
    {
    *
    *****int x,y;
    *****for(x=0;x<m_largeur/20;x++)
    *****{
    *********for(y=0;y<m_hauteur/20;y++)
    *********{
    ************m_cells[x][y]=Cell(false,x,y);
    *********}
    *****}
    *
    *****this->m_hauteur=m_hauteur/20;
    *****this->m_largeur=m_largeur/20;
    }
    *
    bool Grid::cellVivanteA(int x,int y)
    {
    ***return m_cells[x][y].cellVivante();
    *
    *
    }
    *
    void Grid::MettreCellA(bool alive, int x ,int y)
    {
    ****m_cells[x][y].setCellstate(alive);
    *
    }
    *
    void Grid::draw(sf::RenderWindow &window)
    {
    ****int x,y;
    ****for(x=0;x<m_largeur;x++)
    ****{
    ********for(y=0;y<m_hauteur;y+ +)
    ********{
    ************m_cells[x][y].draw(window);
    ********}
    ****}
    }
    *
    void Grid::NextGeneration()
    {
    *
    }

    END

    -----


  2. Publicité
  3. #2
    pm42

    Re : Besoin d'aide Projet Le Jeu de la Vie C++ SVP

    La 1ère chose à faire est d'apprendre à utiliser la balise CODE du forum en lisant la doc puis de poster ton programme en l'utilisant.
    Là avec les *** c'est illisible et si quelqu'un voulait le faire tourner, il devrait les virer...

  4. #3
    JPL

    Re : Besoin d'aide Projet Le Jeu de la Vie C++ SVP

    Donc (je voulais te le dire de suite mais j’ai été interrompu) poste le code avec les indentations normales et encadre-le avec [Code]...[/code], ce qui correspond à l’icône # dans l’éditeur en mode avancé.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  5. #4
    Chanur

    Re : Besoin d'aide Projet Le Jeu de la Vie C++ SVP

    Je plussoie pm42 et Jack. Je n'ai pas essayé de lire en détail ton code.
    Mais je l'ai quand même un peu lu. Le problème vient que la méthode Cell::setCellstate() ne modifie pas m_alive.

    Cela dit, il y a plusieurs choses qui m'interpellent dans ton code :

    - il faut choisir entre français et anglais : tu as un attribut Cell::m_alive et une méthode Cell::cellVivante()
    le lecteur est tenu de comprendre le français ET l'anglais pour te lire.
    tu peux choisir l'anglais, pour que ton code soit lisible par tout le monde ou le français, pour que ce soit plus clair pour toi et pour faire d'un coup d'oeil la différence entre une fonction find_file (système) et une fonction chercher_fichier (perso). Peu importe, mais il faut choisir.

    - il faut définir les notions. Tu as une méthode Cell::setCellstate() sans dire nulle part ce qu'est l'état en question, et tu as dans le main() une variable state. Dans le premier cas "state" désigne le fait, pour une cellule d'être "alive" ou pas, dans le deuxième cas le fait que ton automate soit dans l'état UPDATING ou MODIFYING. Rien à voir. Si le double sens est inévitable (et ça ne semble pas le cas ici), il faut au minimum un commentaire pour l'expliquer.

    - quand une donnée est codée de différentes façons (par exemple ici m_alive qui est aussi codée comme couleur de remplissage d'un rectangle), il faut le dire explicitement et veiller à ce qu'il soit impossible que les deux diffèrent. C'est LE but de la méthode Cell::setCellstate(), sauf que justement elle ne le fait pas ...

    - il n'y a aucun commentaire ...
    il faut écrire un programme de telle façon qu'il soit lisible par quelqu'un qui connaisse à peine les rudiments du langage et rien du tout au problème traité : il faut TOUT expliquer.
    Dernière modification par Chanur ; 27/12/2017 à 20h19.
    Ce qui se conçoit bien s'énonce clairement ; et les mots pour le dire arrivent aisément.

  6. #5
    Jack

    Re : Besoin d'aide Projet Le Jeu de la Vie C++ SVP

    Citation Envoyé par Chanur Voir le message
    Je plussoie pm42 et Jack.
    Rendons à César ce qui appartient à César: il s'agissait de JPL et non de moi

  7. #6
    JPL

    Re : Besoin d'aide Projet Le Jeu de la Vie C++ SVP

    Je vais changer de pseudo : appelez-moi César !
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  8. #7
    Jack

    Re : Besoin d'aide Projet Le Jeu de la Vie C++ SVP

    Tu me fends le cœur.

  9. #8
    Chanur

    Re : Besoin d'aide Projet Le Jeu de la Vie C++ SVP

    Citation Envoyé par Jack Voir le message
    Rendons à César ce qui appartient à César: il s'agissait de JPL et non de moi
    Mes humbles excuses !
    Ce qui se conçoit bien s'énonce clairement ; et les mots pour le dire arrivent aisément.

  10. #9
    JPL

    Re : Besoin d'aide Projet Le Jeu de la Vie C++ SVP

    Dans sa grande bonté César les accepte et te pardonne !
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  11. #10
    brhmagupta

    Re : Besoin d'aide Projet Le Jeu de la Vie C++ SVP

    Bonjour,
    Voici le jeu de la vie de Conway programmé dans le langage EGO.
    Je crois que les instructions parlent d'elles-mêmes.
    La copie a soudé les labels aux instructions et en plus les a placés entre parenthèses en tête de ligne.

    ·Eff(1)·Pstyle(10)·Pinceau(3)· Rect(0,0,1151,863)·Pstyle(1)·P inceau(15)·DimTab(vie,40,40)·D imTab(inter,50,40)·Police(Aria l,25)[g:=2]
    ·Police(Arial,50)·Pos(280,20)J EU DE LA VIE DE CONWAY
    ·Police(Arial,30)·Pinceau(10)
    ·Objet(regle.tif,100,150,,2)
    ·Brosse(7)·Boite(267,165,877,2 00)
    ·Pinceau(5)·Pos(279,170)Exempl es de passage d'une génération à la suivante
    ·Police(Arial,30)·Pinceau(15)
    ·Pos(100,780)Appuyez sur RETOUR puis créez une société en cliquant sur les cases de votre choix.
    ·Pause(0)
    ·(recom)·Eff(12)·Pstyle(10)·Pi nceau(3)·Rect(0,0,1151,863)·Ps tyle(1)·Pinceau(11)
    ·Pos(180,10)Cliquez sur les cases pour créer une société puis sur la pastille rouge.
    ·DefAxes(155,10,20,-20)
    ·Pinceau(7)
    ·Rect(2,2,38,38)
    [i:=2]
    ·(horizon)·Aig([i],2,38,-90)
    [i:=i+1]
    ·Remonte(38,horizon)
    [i:=2]
    ·(vertical)·Aig(2,[i],38,0) .Aig(a,b,c,d) : Trace un segment de droite d'origine A,b de longueur c et faisant un angle d avec l'horizontale.
    [i:=i+1]
    ·Remonte(38,vertical)
    ·Pstyle(40)·Pinceau(9)
    ·Point(44,20)·Pstyle(1)
    ·(gener)·Inter()
    [x:=ewclicx , y:=ewclicy] Coordonnées x et y du clic souris.
    ·Ptc([x],[y],c)
    ·Si([c=9])·Brosse(12)·Boite(42,18,46,22 )·Saut(debut1)
    ·Si([c=7])·Saut(gener)
    ·Pinceau(11)·Brosse(11)·Disque ([tba(x)+0.5],[tba(y)+0.5],0.3,0.3)
    [vie{tba(x),tba(y)}:=1]
    ·Saut(gener)
    ·(debut1)·Axes(-)·Brosse(12)·Boite(170,8,1100, 40)·Pos(440,10)·Pinceau(10)Cli c souris pour arrêter.·Axes(+)
    ·(debut)
    ·TabCop(vie,inter)
    ·(retour)[i:=2 , j:=2 , autour:=0 , exit:=0]
    ·Evt(fini,2)·Police(Arial,10)· Pstyle(1)
    ·Brosse(12)·Boite(0,1,1,39)
    ·(tourne)
    ·Si([vie{i,j}=1 & vie{i-1,j-1}=1])[exit:=exit+1]
    ·Si([vie{i,j}=1 & vie{i-1,j}=1])[exit:=exit+1]
    ·Si([vie{i,j}=1 & vie{i-1,j+1}=1])[exit:=exit+1]
    ·Si([vie{i,j}=1 & vie{i,j+1}=1])[exit:=exit+1]
    ·Si([vie{i,j}=1 & vie{i,j-1}=1])[exit:=exit+1]
    ·Si([vie{i,j}=1 & vie{i+1,j}=1])[exit:=exit+1]
    ·Si([vie{i,j}=1 & vie{i+1,j-1}=1])[exit:=exit+1]
    ·Si([vie{i,j}=1 & vie{i+1,j+1}=1])[exit:=exit+1]
    ·Si([vie{i,j}=0 & vie{i-1,j-1}=1])[autour:=autour+1]
    ·Si([vie{i,j}=0 & vie{i-1,j}=1])[autour:=autour+1]
    ·Si([vie{i,j}=0 & vie{i-1,j+1}=1])[autour:=autour+1]
    ·Si([vie{i,j}=0 & vie{i,j+1}=1])[autour:=autour+1]
    ·Si([vie{i,j}=0 & vie{i,j-1}=1])[autour:=autour+1]
    ·Si([vie{i,j}=0 & vie{i+1,j}=1])[autour:=autour+1]
    ·Si([vie{i,j}=0 & vie{i+1,j-1}=1])[autour:=autour+1]
    ·Si([vie{i,j}=0 & vie{i+1,j+1}=1])[autour:=autour+1]
    ·Si([autour=3])[vie{i,j}:=2]
    ·Si([(exit<2 | exit>=4) & vie{i,j}=1])[inter{i,j}:=3]
    [exit:=0 , autour:=0]
    [i:=i+1]
    ·Si([i<40])·Saut(tourne)
    [i:=2 , j:=j+1]
    [exit:=0]
    ·Si([j<40])·Saut(tourne)
    [i:=2 , j:=2]
    ·(ajour)
    ·Si([vie{i,j}=2])[vie{i,j}:=1]
    ·Si([inter{i,j}=3])[vie{i,j}:=0]
    [i:=i+1]
    ·Si([i<40])·Saut(ajour)
    [i:=2 , j:=j+1]
    ·Si([j<40])·Saut(ajour)
    [i:=2 , j:=2]
    ·Police(Arial,20)
    ·(ajour1)
    ·Si([vie{i,j}=0])·Pinceau(12)·Brosse(12)·Disqu e([i+0.5],[j+0.5],0.35,0.35)
    ·Si([vie{i,j}=1])·Pinceau(11)·Brosse(11)·Disqu e([i+0.5],[j+0.5],0.3,0.3)
    [i:=i+1]
    ·Si([i<40])·Saut(ajour1)
    [i:=2 , j:=j+1]
    ·Si([j<40])·Saut(ajour1)
    ·(enjamb)
    ·TabR(inter,0)
    ·Axes(-)·Brosse(12)·Boite(470,830,100 0,850)·Pinceau(11)
    ·Police(Arial,25)
    ·Pos(500,830)GENERATION [g]
    [g:=g+1]
    ·Axes(+)
    ·Saut(retour)
    ·(fini)·Axes(-)
    ·Pstyle(40)·Pinceau(9)
    ·Point(100,420)·Pstyle(1)·Poli ce(Arial,30)
    ·Pos(45,480)·Pinceau(15)QUITTE R
    ·Pstyle(40)·Pinceau(10)
    ·Point(1045,420)·Pstyle(1)·Pin ceau(15)
    ·Pos(985,480)NOUVELLE·Pos(1000 ,520)SOCIETE
    ·(pasbon)·Inter()
    ·Ptc([ewclicx],[ewclicy],c)
    ·Si([c=9])·Fin()
    ·Si([c=10])·TabR(inter,0)·TabR(vie,0)[g:=1]·Saut(recom)
    ·Si([c<>9 & c<>10])·Saut(pasbon)
    Dernière modification par brhmagupta ; 21/01/2018 à 15h28.

  12. #11
    brhmagupta

    Re : Besoin d'aide Projet Le Jeu de la Vie C++ SVP

    A propos de la programmation du jeu de la vie, il n'est pas interdit de comparer le programme donné au début et qui ne fonctionne pas avec celui je donne ci-dessus, qui fonctionne très bien. et qui me semble mieux lisible ...

  13. #12
    brhmagupta

    Re : Besoin d'aide Projet Le Jeu de la Vie C++ SVP

    Citation Envoyé par brhmagupta Voir le message
    A propos de la programmation du jeu de la vie, il n'est pas interdit de comparer le programme donné au début et qui ne fonctionne pas avec celui je donne ci-dessus, qui fonctionne très bien. et qui me semble mieux lisible ...
    J'ajoute que j'avais présenté un exemple réalisé à l'aide mon langage EGO et montrant l'évolution d'une société périodique éternelle.
    Cet exemple a été supprimé pour une raison que j'ignore mais probablement justifiée et considéré comme "hors sujet" (?)

  14. #13
    pm42

    Re : Besoin d'aide Projet Le Jeu de la Vie C++ SVP

    Citation Envoyé par brhmagupta Voir le message
    J'ajoute que j'avais présenté un exemple réalisé à l'aide mon langage EGO et montrant l'évolution d'une société périodique éternelle.
    Cet exemple a été supprimé pour une raison que j'ignore mais probablement justifiée et considéré comme "hors sujet" (?)
    C'est le planeur : https://fr.wikipedia.org/wiki/Planeur_(jeu_de_la_vie)
    Ultra connu, cité dès la page Wikipedia générale du jeu de la vie, dans tous les articles...

    Il y a beaucoup de chose plus intéressantes : que ce soit une machine de Turing, qu'il puisse calculer tous les nombres premiers (conséquence de la machine de Turing mais plus facile à implémenter).
    Ou l'implémentation http://golly.sourceforge.net qui est capable de gérer n'importe quelle taille et d'aller très rapidement à des millions de générations.

    Une implémentation naïve dans un langage totalement inconnu et obsolète ne fait pas avancer le schimblick.

  15. #14
    brhmagupta

    Re : Besoin d'aide Projet Le Jeu de la Vie C++ SVP

    Citation Envoyé par pm42 Voir le message
    C'est le planeur : https://fr.wikipedia.org/wiki/Planeur_(jeu_de_la_vie)
    Ultra connu, cité dès la page Wikipedia générale du jeu de la vie, dans tous les articles...

    Il y a beaucoup de chose plus intéressantes : que ce soit une machine de Turing, qu'il puisse calculer tous les nombres premiers (conséquence de la machine de Turing mais plus facile à implémenter).
    Ou l'implémentation http://golly.sourceforge.net qui est capable de gérer n'importe quelle taille et d'aller très rapidement à des millions de générations.

    Une implémentation naïve dans un langage totalement inconnu et obsolète ne fait pas avancer le schimblick.
    Langage inconnu de vous et pas du tout obsolète ! Ceci s'explique par l'absence totale de publicité.
    Si je compare le jeu de la vie programmé dans ce lange "obsolète" et celui programmé dans un autre langage plus connu, le résultat est là !
    Pour ce qui concerne cette société périodique et éternelle, je l'ai trouvée par tâtonnement ignorant qu'elle existait déjà sinon, j'aurais cité mes sources !!!.

    Cela dit, je ne demande pas mieux que disserter sur la machine de Turing, ancêtre théorique des ordinateurs, et, éventuellement ses applications à la logique mathématique !

  16. #15
    Jack

    Re : Besoin d'aide Projet Le Jeu de la Vie C++ SVP

    Citation Envoyé par brhmagupta Voir le message
    A propos de la programmation du jeu de la vie, il n'est pas interdit de comparer le programme donné au début et qui ne fonctionne pas avec celui je donne ci-dessus, qui fonctionne très bien. et qui me semble mieux lisible ...
    Question de point de vue.
    Déjà, avec un peu d’indentation ça pourrait gagner en lisibilité.

    Sans connaitre le langage, l'instruction "saut" ne correspondrait-elle pas au vénérable "goto", gage de robustesse et de maintenabilité du code?

    Pour le reste, j'ai l'impression qu'on est reparti dans la même galère qu'il y a quelques temps avec un autre langage oublié qui commence par 'f' et qui finit par 'h'. Les habités de ce forum comprendront ...

  17. #16
    Stan_94

    Re : Besoin d'aide Projet Le Jeu de la Vie C++ SVP

    Citation Envoyé par Jack Voir le message
    Pour le reste, j'ai l'impression qu'on est reparti dans la même galère qu'il y a quelques temps avec un autre langage oublié qui commence par 'f' et qui finit par 'h'. Les habités de ce forum comprendront ...


    Chiche, moi je vous programme le jeu de la vie en ABAP...

  18. #17
    brhmagupta

    Re : Besoin d'aide Projet Le Jeu de la Vie C++ SVP

    Citation Envoyé par Jack Voir le message
    Question de point de vue.
    Déjà, avec un peu d’indentation ça pourrait gagner en lisibilité.

    Sans connaitre le langage, l'instruction "saut" ne correspondrait-elle pas au vénérable "goto", gage de robustesse et de maintenabilité du code?

    Pour le reste, j'ai l'impression qu'on est reparti dans la même galère qu'il y a quelques temps avec un autre langage oublié qui commence par 'f' et qui finit par 'h'. Les habités de ce forum comprendront ...
    Bonjour,
    Ce n'est pas parce que l'instruction "saut" est en français qu'elle perd en "robustesse" !
    Mais cela est vraiment secondaire par rapport au reste ! La simulation fidèle de réacteurs nucléaires, de simulation d'écrans pour former les controlleurs aériens en Australie, pour former les conducteurs de rames de métro à la RATP, pour aussi développer des banques de données interrogeables librement en langue naturelle etc. prouve bien la puissance logique de ce langage.
    Ce langage, naguère conçu pour l'Enseignement, a été enrichi de nombreuses possibilité en multimédia. mais il semble bien que le site que j'ai donné n'ait pas été lu ...
    Quoi qu'il en soit, je ne pensais vraiment pas, en signalant ce langage peu connu mais efficace, provoquer de telles réactions !
    Est-il vraiment impossible de débattre sur les forums sans déclencher immédiatement de vaines et inutiles polémiques ?
    Préféreriez vous peut-être, si vous les connaissez, qu'on parlât plutôt des langages APL, LISP. Eux non plus ne sont pas beaucoup utilisés mais sont-ils négligeables pour autant ?
    Et puis, un langage ancien doit-il être considéré comme obsolète ? Mais alors, ce cher FORTRAN devrait être considéré comme tel alors qu'il est encore utilisé de nos jours soixante ans après sa naissance !
    Plus généralement, je ne pense pas qu'il soit culturellement sain de porter des jugements sur quoi que ce soit alors qu'on ne dispose pas des informations indispensables.
    Bien à vous.

  19. #18
    pm42

    Re : Besoin d'aide Projet Le Jeu de la Vie C++ SVP

    Citation Envoyé par brhmagupta Voir le message
    Ce n'est pas parce que l'instruction "saut" est en français qu'elle perd en "robustesse" !
    En effet que ce soit en français ou en anglais, elle est à éviter au maximum sauf dans de rares cas (traitement d'erreurs par ex. Il y a des articles intéressant là dessus qui reviennent sur l'article de Djikstra, Goto Considered Harmful et expliquent le gain qu'apporte le goto à quelques endroits dans le noyaux Linux).

    Citation Envoyé par brhmagupta Voir le message
    Mais cela est vraiment secondaire par rapport au reste ! La simulation fidèle de réacteurs nucléaires, de simulation d'écrans pour former les controlleurs aériens en Australie, pour former les conducteurs de rames de métro à la RATP, pour aussi développer des banques de données interrogeables librement en langue naturelle etc. prouve bien la puissance logique de ce langage.
    Tout cela a été codé dans tous les langages. Cela prouve juste que c'est un langage comme un autre.


    Citation Envoyé par brhmagupta Voir le message
    Préféreriez vous peut-être, si vous les connaissez, qu'on parlât plutôt des langages APL, LISP. Eux non plus ne sont pas beaucoup utilisés mais sont-ils négligeables pour autant ?
    Et puis, un langage ancien doit-il être considéré comme obsolète ? Mais alors, ce cher FORTRAN devrait être considéré comme tel alors qu'il est encore utilisé de nos jours soixante ans après sa naissance !
    Lisp et Fortran sont toujours utilisés et surtout ont un héritage immense. APL est plus compliqué mais il est intéressant historiquement notamment à cause de sa concomitance avec PL/1 et aussi parce que c'est un des DSL (Domain Specific Language)...

    Citation Envoyé par brhmagupta Voir le message
    Plus généralement, je ne pense pas qu'il soit culturellement sain de porter des jugements sur quoi que ce soit alors qu'on ne dispose pas des informations indispensables.
    Polémique inutile qui suppose que les gens qui ne pensent pas comme vous ne sont pas bien informés.
    Ce n'est heureusement pas le cas.

  20. #19
    JPL

    Re : Besoin d'aide Projet Le Jeu de la Vie C++ SVP

    Fin du hors sujet sur ce langage qui n’a aucun rapport avec la demande initiale.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

Discussions similaires

  1. Projet de GPS (Besoin d'aide !)
    Par ELKB dans le forum Physique
    Réponses: 1
    Dernier message: 22/07/2014, 06h02
  2. besoin aide (projet led)
    Par kirou dans le forum Électronique
    Réponses: 14
    Dernier message: 02/02/2013, 15h41
  3. Projet sur le bus CAN ! besoin d'aide
    Par zhiliga dans le forum Électronique
    Réponses: 4
    Dernier message: 05/11/2010, 20h32
  4. besoin d'aide sur un projet
    Par laraki dans le forum Électronique
    Réponses: 2
    Dernier message: 02/03/2008, 02h37