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

C++ Discussion :

1 Jeu en 1 semaine ?


Sujet :

C++

  1. #21
    Membre averti
    Homme Profil pro
    Cadre informatique
    Inscrit en
    Avril 2013
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Cadre informatique

    Informations forums :
    Inscription : Avril 2013
    Messages : 183
    Points : 435
    Points
    435
    Par défaut
    Citation Envoyé par Kentin331 Voir le message
    Cependant, aucun de ces deux sujet ne nous intéresse, alors je me demandais si vous auriez une idée d'un truc avec à peu prrès la même difficulté de codage ?
    Pourtant, entre théorie des graphes et simulation d'états finis, le prof ne s'est pas foutu de votre trogne Effectivement cela fait partie des sujets complexes qui peuvent vous éclater si vous consentez a les faire. Enfin c'est vous qui voyez

  2. #22
    Membre éprouvé
    Avatar de Garvelienn
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2016
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2016
    Messages : 244
    Points : 993
    Points
    993
    Par défaut
    La simulation de fourmilière est vraiment marrante à coder car on voit les fourmis progresser au-fur-et-à-mesure qu'on code. Et si c'est bien codé, cela peut devenir rapidement un joyeux bazar avec plus de 20000 fourmis à la fois !

    Vous avez la possibilité de refuser les sujets et de faire le votre ? Curieux
    «Le management, tel qu’on l’apprend dans les écoles et tel qu’on l’applique ensuite, sous prétexte de «motivation du personnel», organise exactement le contraire, à savoir la démotivation organisée.» - Bernard Stiegler

  3. #23
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    Je les trouve également bien foutus ces sujets : à la fois très simples et pourtant « complexifiables » à loisir si le cœur (et l'horloge) vous en dit. Tels quels, les énoncés ne requièrent aucun algorithme de recherche de chemin par exemple.

    Il conviendra d'utiliser des automates (que vous avez dû voir en cours) pour modéliser les entités dynamiques si vous optez pour l'un des deux.

    Ça me donne envie de coder les fourmis, tiens.

  4. #24
    Membre expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Points : 3 156
    Points
    3 156
    Par défaut
    +1 sur les sujets, ils sont pédagogiques dans le sens où il vous font réellement résoudre un problème tout est laissant la porte ouverte à une représentation très visuelle. Cela enlève un peu la partie "gameplay" et je suppose que c'est ce qui vous déçoit. Mais cette partie est la moins intéressante à coder et apporte un lot de complexité (input utilisateur -> asynchronisme, multithreading) que vous risquez de ne pas pouvoir traiter en si peu de temps.
    Find me on github

  5. #25
    Membre averti
    Homme Profil pro
    Cadre informatique
    Inscrit en
    Avril 2013
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Cadre informatique

    Informations forums :
    Inscription : Avril 2013
    Messages : 183
    Points : 435
    Points
    435
    Par défaut
    Citation Envoyé par Matt_Houston Voir le message
    Je les trouve également bien foutus ces sujets : à la fois très simples et pourtant « complexifiables » à loisir si le cœur (et l'horloge) vous en dit. Tels quels, les énoncés ne requièrent aucun algorithme de recherche de chemin par exemple.
    Ah si si, si tu rajoutes la chute de gouttes de pluie (en mode prévisible bien entendu), tu as de quoi la rendre chevre ta fourmi

    Citation Envoyé par Matt_Houston Voir le message
    Ça me donne envie de coder les fourmis, tiens.
    Je n'aurais pas du lire ce topic moi aussi

  6. #26
    Membre éprouvé
    Avatar de Garvelienn
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2016
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2016
    Messages : 244
    Points : 993
    Points
    993
    Par défaut
    Citation Envoyé par Bysbobo Voir le message
    Je n'aurais pas du lire ce topic moi aussi
    Il n'y pas que moi alors. C'est virale !
    «Le management, tel qu’on l’apprend dans les écoles et tel qu’on l’applique ensuite, sous prétexte de «motivation du personnel», organise exactement le contraire, à savoir la démotivation organisée.» - Bernard Stiegler

  7. #27
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Qui c'est qui vient casser l'ambiance ? C'est jojo !

    Sur les fourmis : c'est fun à coder, pédagogique ... mais aussi éculé. Quand j'étais dans mes études ça l'était déjà, et pourtant ça remonte. Quant à la notion de "jeu" : si on considère la partie ludique de la prog ok, sinon le résultat final sera aussi fun qu'une défragmentation d'un HDD sous Window 95 (ce qui était plutôt envoutant, je l'avoue volontier ).

    Voilà voilà ...
    Plus je connais de langages, plus j'aime le C.

  8. #28
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 068
    Points : 12 111
    Points
    12 111
    Par défaut
    jojo, t'as perdu ton âme d'enfant.

  9. #29
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    Bonjour bonjour,

    Alors voilà, c'est décidé, nous allons faire les fourmis ( comme quoi vous savez être persuasifs ). Nous allons voir, en fonction du temps si l'on fait le déroulement normal de la chose, ou si nous rajoutons qques trucs drôles.

    Alors j'aurais une question, nous allons devoir utiliser une "machine à états" ( ou un truc dans le genre ), et selon l'état "e" de la fourmi a l'instant "i" ( ex : deplacement aléatoire, retour à la fourmilière, etc) nous allons devoir changer (ou non) son état. Et je n'ai pas trop compris comment est définit un état, en gros, comment le programme sais l'état de la fourmi ?

    Aussi, notre prof nous a dit que nous allions utiliser la library CONIO, pour nous servir du getXY comme pointeur ( je ne sais pas du tout si ce que je dis vous parle ). Si vous avez compris, pourriez vous m'expliquer en qques lignes sont fonctionnement ?

    Merci à vous,

    K

  10. #30
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 113
    Points : 32 960
    Points
    32 960
    Billets dans le blog
    4
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    enum class State {
     RandomMove,
     BackToHome,
    };
    Et voilà tu as 2 états.

    Si vous pouvez, j'utiliserais la SFML, je trouve plus simple la prise en main, et vous pourrez vous amuser bien plus avec le programme.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  11. #31
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    Merci,
    Dans ton code, comment le progm sais que RandomMove = déplacement random ? On doit sûrement l'initialiser qque part non ?

    Aussi, si tu devais me donner une définition de la SFML ? Que nous apporte-t-elle de plus que ce que nous faisons ?

    K

  12. #32
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 188
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 188
    Points : 17 136
    Points
    17 136
    Par défaut
    conio est une bibliothèque C propriétaire (et primitive) de windows pour manipuler l'affichage en mode console.

    la SFML est une bibliothèque C++ pour faire un affichage graphique (images, dessin, etc).

    La concurrence à conio, ce sont les *curse (dont ncurse).
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  13. #33
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    Aaaah d'aacord. Je ne sais pas si nous allons vraiment inclure des images, selon le temps qu'il nous restera. Nous projetions plutôt d'afficher un tableau de x*y, avec F pour fourmi et N pour nourriture. Mais il est vrai que ce doit être plus " joli " en utilisant le SFML .. Sauf qu'on y connait vraiment rien au SFML, donc on verra en fonction du temps
    K

  14. #34
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 113
    Points : 32 960
    Points
    32 960
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par Kentin331 Voir le message
    Dans ton code, comment le progm sais que RandomMove = déplacement random ?
    De la même manière qu'il sait que se déplacer vers le haut revient à modifier la valeur de y ou z, ou que dans un jeu de morpion il affiche un X ou O selon le joueur, ou ... en le programmant pour, avec des if, for et toute autre structure de controle.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  15. #35
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    conio en 2017.. passons.


    @Bousk : je pense que l'OP ne sais pas où placer les instructions qui implémentent le comportement défini par l'automate.

    Citation Envoyé par Kentin331 Voir le message
    Alors j'aurais une question, nous allons devoir utiliser une "machine à états" ( ou un truc dans le genre ), et selon l'état "e" de la fourmi a l'instant "i" ( ex : deplacement aléatoire, retour à la fourmilière, etc) nous allons devoir changer (ou non) son état. Et je n'ai pas trop compris comment est définit un état, en gros, comment le programme sais l'état de la fourmi ?
    Une manière parmi d'autres d'implémenter un automate simple est :
    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
    82
    83
    84
    class Actor {
    public:
        enum State {
            LookForMushrooms,
            EatMushroom,
            EnjoyGoodTrip,
            SufferBadTrip,
            Sleep
        };
     
        void changeState(TState stateNext) {
            // exits current state
            switch (stateCurrent) {
                case LookForMushrooms: { /* ... */ break; }
                case EatMushroom     : { /* ... */ break; }
                case EnjoyGoodTrip   : { /* ... */ break; }
                case SufferBadTrip   : { /* ... */ break; }
                case Sleep           : { /* ... */ break; }
            }
     
            statePrevious = stateCurrent;
            stateCurrent = stateNext;
            stateDuration = 0.;
     
            // enters next state
            switch (stateCurrent) {
                case LookForMushrooms: { /* ... */ break; }
                case EatMushroom     : { /* ... */ break; }
                case EnjoyGoodTrip   : { /* ... */ break; }
                case SufferBadTrip   : { /* ... */ break; }
                case Sleep           : { /* ... */ break; }
            }
        }
     
        void update(double deltaTime) {
            stateDuration += deltaTime;
     
            // updates current state
            switch (stateCurrent) {
                case LookForMushrooms: {
                    if (mushroomOnCurrentCell()) {
                        removeMushroomFromCurrentCell();
                        changeState(EatMushroom);
                    } else
                        moveToRandomNeighboringCell();
                    break;
                }
     
                case EatMushroom     : {
                    changeState((rand() % 10 > 3) ? EnjoyGoodTrip : SufferBadTrip);
                    break;
                }
     
                case EnjoyGoodTrip   : {
                    if (stateDuration > 10.) changeState(LookForMushrooms);
                    break;
                }
     
                case SufferBadTrip   : {
                    drainStamina(deltaTime);
                    if (stateDuration > 25.) changeState(Sleep);
                    break;
                }
     
                case Sleep           : {
                    if (stateDuration > 30.) changeState(LookForMushrooms);
                    break;
                }
            }
        }
     
    private:
        TState stateCurrent,
               statePrevious;
     
        double stateDuration;
    };
     
    /* ... */
     
    void Simulation::update(double deltaTime) {
        // advance all actors state
        for (auto actor : actors) actor->update(deltaTime);
    }

    Citation Envoyé par Kentin331 Voir le message
    Aaaah d'aacord. Je ne sais pas si nous allons vraiment inclure des images, selon le temps qu'il nous restera.
    Alors non, décider de réaliser un projet d'une semaine en ligne de commande ou en mode graphique ne se décide pas le vendredi à midi. Sauf si l'application est conçue de manière modulaire (traitement vs. présentation) et je ne pense pas que ce sera le cas de la vôtre. C'est pas un mal vous pourrez vous focaliser sur la simulation.


    Citation Envoyé par Kentin331 Voir le message
    Sauf qu'on y connait vraiment rien au SFML
    C'est pourquoi j'avais proposé de se renseigner à l'avance sur les potentielles solutions techniques.

  16. #36
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 113
    Points : 32 960
    Points
    32 960
    Billets dans le blog
    4
    Par défaut
    En ce cas il serait temps de s'orienter vers des sources plus précises, à commencer par ici-même vers le forum 2D/3D/Jeux
    http://alexandre-laurent.developpez....boucle-de-jeu/
    http://jeux.developpez.com/tutoriels/
    https://en.wikipedia.org/wiki/Finite-state_machine
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  17. #37
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    Page déjà citée plus haut, la suite serait : https://en.wikipedia.org/wiki/Automa...ed_programming .

  18. #38
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    Bonsoir !

    Juste pour donner des nouvelles, parce que j'ai pas beaucoup de temps pour moi ^^ On a décidé de rester en mode texte, en utilisant la bibliothèque CONIO et le gotoxy() pour certains déplacements. Nous devons avoir fini le jeu demain à midi, mais il nous reste encore une étape à faire.
    Pour le moment nous avons le programme qui tourne avec Une seule fourmi, et il fonctionne parfaitement. Excepté que lorsque nous voulons ajouter une autre fourmi, on a un beug.
    En gros notre programme principal boucle à chaque fois que la suite d'actions suivante est terminée :

    une fourmi bouge aléatoirement > elle trouve de la nourriture > elle la ramène a la fourmilière

    Ce qui fait que la premiere fourmi bouge, fait ces actions et s'arrete, la suivante s'y met, etc ..

    Donc voilà ^^ Je vais chercher comment faire, si vous avez des idées/conseils

    K

  19. #39
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 855
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 855
    Points : 218 548
    Points
    218 548
    Billets dans le blog
    118
    Par défaut
    Bonjour,

    Peut être ce tutoriel pourra vous aider : http://alexandre-laurent.developpez....boucle-de-jeu/
    En fait, dans la fonction update, vous allez parcourir votre liste de fourmis et exécuté l'action (le déplacement) qu'elle doit faire.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [VB6]manipuler les semaines en VB ?
    Par kamadji dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 02/05/2003, 12h33
  2. Calcul des numéros de semaine d'un calendrier
    Par Invité dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 06/11/2002, 21h29
  3. Une déclaration pour la survie du jeu vidéo en France
    Par Freakazoid dans le forum DirectX
    Réponses: 1
    Dernier message: 30/10/2002, 14h31
  4. Réponses: 3
    Dernier message: 19/04/2002, 00h11

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