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

Défis Qt Discussion :

[LittleWhite] Participation au troisième défi Qt


Sujet :

Défis Qt

  1. #1
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 826
    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 826
    Points : 218 287
    Points
    218 287
    Billets dans le blog
    117
    Par défaut [LittleWhite] Participation au troisième défi Qt
    Bonjour à tous,

    J'annonce une possible participation de ma part pour le défi Qt de jeu d'échecs (Un jeu et des échecs parfait pour moi, n'est ce pas )

    Bref, en fait, je pense manquer de temps. Mais j'ai commencé ... qu'ai je donc commencé ?
    La réalité, c'est que je n'ai rien à montrer contrairement aux autres groupes. J'ai juste réfléchi à comment mon programme sera et là, je ne parle pas encore d'interface graphique .
    Vous pouvez trouver si joint une pièce jointe de ma toute première architecture pensée. Elle a évolué ... un peu, pas totalement. Du moins l'idée de base est là et tout se construira autour de celle-ci.

    Sinon, j'ai continuer l'analyse. Je cherche toujours à faire une belle communication dans le MVC et j'y réfléchis encore.

    Voilà pour le début. Il reste trop plein de temps .
    Images attachées Images attachées  
    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.

  2. #2
    Malikemal
    Invité(e)
    Par défaut
    Un nouvel adversaire

    Bah tu sais je ne suis pas très avancé non plus ! Concernant ton architecture, elle est simple et efficace je trouve. C'est un peu ce que j'avais imaginé de mon côté, bien que j'ai aussi fait des classes pour chaque pièce, avec une interface commune.

    Bonne chance

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 826
    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 826
    Points : 218 287
    Points
    218 287
    Billets dans le blog
    117
    Par défaut
    Aujourd'hui, j'ai regardé plus en détail comment faire fonctionner GNUChess (base de mon IA). Étant sous Linux, je peux l'installer et tester rapidement.

    En lisant le manuel, on apprend qu'à la base GNUChess ne produit pas d'interface utilisateur graphique (en fait, si, en console ). C'est vraiment ce qu'il nous faut, pour notre intelligence artificiel. J'ai regardé le reste du manuel pour voir et j'ai juste pu en conclure qu'il utilise la notation algébrique ou la version abrégée et qu'il a une sorte de console dynamique.
    Je test, car c'est en testant que l'on apprend le mieux. Et là, j'ai pu voir que oui, la notation algébrique et pas si facile que ça à comprendre surtout dans sa forme abrégée. Je peux aussi voir que si vraiment je ne sais pas codé les règles, je pourrai appelé GNUChess en renfort, car lui me dira quel son les mouvements légaux (comme la brique ? ). Mais c'est un peu de la triche.
    Non, la chose qui était surtout à noter que la sortie devra être parsé et que cela risque d'être légèrement compliqué. Enfin bref, c'est le but du jeu, non ?

    Les questions qui arrivent sont du genre, comment être sur qu'il est bien installé, ou encore comment faire pour l'installer en même temps que ma superbe application (du moins, c'est le futur que je lui souhaite). Sous Linux, on parlera surement de dépendance ... mais est ce vraiment la bonne manière. Comment faire avec Windows ?
    Voilà, le lot de question qu'apport GNUChess.

    C'est tout pour GNUChess. J'ai une bonne intention de l'ajouter. J'ai cherché pour une bibliothèque (genre libgnuchess) ou de la documentation pour l'interfacer, mais je n'ai rien trouvé dans mes premières recherche Google. Comme je suis content avec le comportement actuel, je ne m'en soucis pas plus.
    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.

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 826
    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 826
    Points : 218 287
    Points
    218 287
    Billets dans le blog
    117
    Par défaut
    Je continue mon analyse du jeu.
    La grande question qui restait en suspend, était : Comment faire communiquer mes différents blocs.

    Je pense avoir trouver une solution (j'espère).

    On peut sentir dans l'air, qu'il y a aura un simili de design pattern Observateur, pour informer l'affichage de quoi faire et quand le faire.

    Du coup, je présente mon nouveau schéma, qui est plus proche de la réalité (de ce que sera l'application après) que le schéma précédent.

    Je suis parti sur un principe, peut être un peu étonnant, qui est que le jeu attend le coup du controlleur. Plus précisément, c'est le jeu, qui appelle une fonction GetMove du controlleur.

    Sinon, dans les autres trucs, je peux répondre à Malikemal (voir son message), que, mes pions ne sont absolument pas des classes. Bon, je suis parti avec une autre idée dans la tête (que je n'ai pas encore dévoilée).

    Voilà pour le moment
    Images attachées Images attachées  
    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.

  5. #5
    Malikemal
    Invité(e)
    Par défaut
    Ça devient compliqué ! Plus que je ne peux l'imaginer pour l'instant du moins. J'ai deux questions : quelle est la différence entre StatusNotifer et GameNotifier ? Et que veux-tu dire par "le jeu attend le coup du contrôleur" (d'ailleurs il n'y a qu'un seul 'L' ) ?

    Bonne chance !

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 826
    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 826
    Points : 218 287
    Points
    218 287
    Billets dans le blog
    117
    Par défaut
    (Oui, cela fait trois jours que j'écris mal controleur )
    Sinon, pour les notifier, en fait, j'ai l'objectif de les faire en une seule classe mais il y aura bien deux instances. La différence, c'est les messages transportés et les destinataires.
    Le jeu va faire :
    controleur.GetMove() ...et le jeu (la classe jeu, attend que le controleur réponde).
    Moi, je pense / pensais que le cas le plus classique, c'est que le controleur apporte son coup, au jeu. (Genre, le controleur appelle -> move(src, dst) de la classe Jeu).
    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.

  7. #7
    Rédacteur

    Avatar de johnlamericain
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    3 742
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 3 742
    Points : 8 140
    Points
    8 140
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Les questions qui arrivent sont du genre, comment être sur qu'il est bien installé ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system(”which gnuchess”),
    Code de retour :

    -1 si la fonction system (langage C) échoue ;
    0 si le processus gnuchess a été trouvé et a un chemin valide pour être executé ;
    1 si le processus n'a pas été trouvé.

  8. #8
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 826
    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 826
    Points : 218 287
    Points
    218 287
    Billets dans le blog
    117
    Par défaut
    La commande which n'existant que sous Linux, j'ai l'impression que tu te moque un peu
    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.

  9. #9
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 609
    Points : 188 580
    Points
    188 580
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  10. #10
    Rédacteur

    Avatar de johnlamericain
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    3 742
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 3 742
    Points : 8 140
    Points
    8 140
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    La commande which n'existant que sous Linux, j'ai l'impression que tu te moque un peu
    Haa parcequ'il faut que ton appli soit multiplateforme ?

  11. #11
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 826
    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 826
    Points : 218 287
    Points
    218 287
    Billets dans le blog
    117
    Par défaut
    Et même compatible avec certain téléphone de Nokia (je me demande encore pourquoi des Nokia et pas de l'Android comme tout le monde )
    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.

  12. #12
    Malikemal
    Invité(e)
    Par défaut
    J'ai une question qui me trotte dans la tête depuis un moment ... A quoi va servir ta classe Joueur ? Je veux dire, si ce n'est représenter un joueur, comment vas-tu t'en servir ? Pour faire un historique de coups ?

  13. #13
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 826
    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 826
    Points : 218 287
    Points
    218 287
    Billets dans le blog
    117
    Par défaut
    Disons que le "joueur" n'est pas très précis. C'est un Controlleur, qui envoie ses commandes à l'aide du clavier, par exemple (ou de l'interface).
    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.

  14. #14
    Malikemal
    Invité(e)
    Par défaut
    Ok ... parce que de mon côté je n'ai même pas de classe "Joueur", c'est le controlleur qui s'occupe de tout

  15. #15
    Membre habitué Avatar de MotorX
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Août 2011
    Messages : 87
    Points : 134
    Points
    134
    Par défaut
    Tu comptes faire des animations ?

    Comme dans celui de windows , les pièces qui bougent et tout quoi ^^
    Mon twitter: Ici

  16. #16
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 826
    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 826
    Points : 218 287
    Points
    218 287
    Billets dans le blog
    117
    Par défaut
    Pour l'instant, je ne parle pas encore des interfaces graphiques. J'espère déjà mettre en place les règles et l'architecture, car les interfaces seront des trucs plugable, si je puis dire.
    Mais je prévois masse, pour les interfaces graphiques
    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.

  17. #17
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 826
    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 826
    Points : 218 287
    Points
    218 287
    Billets dans le blog
    117
    Par défaut
    J'ai été discret malgré que je voulais vous parler de "mon avancement".

    Actuellement, j'implémente les règles (le pion / tour et cavalier peuvent bouger). J'ai une interface graphique en console (type gnuchess) et un controlleur (utilisant le clavier).
    En conclusion, je suis en retard
    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.

  18. #18
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 826
    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 826
    Points : 218 287
    Points
    218 287
    Billets dans le blog
    117
    Par défaut
    Je me suis bien marré à faire jouer GNUChess contre GNUChess
    Cela m'a permis de mieux vérifier les règles implémenter par mon jeu d'échec et de me forcer à faire la prise en passant / la promotion / le roc et les conditions de victoires.
    Du coup, je peux attaquer l'interface graphique. Oui, à une semaine de la fin

    ---

    Note : Pour rappel, dans mon code, implémenter une interface graphique ,c'est définir une nouvelle classe, la faire hériter de mon renderer et l'ajouter en tant que listener au système d'observation des coups. Tellement que cela est efficace, on peut facilement faire une interface en une journée et avoir une double interface (console + fenêtre).
    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.

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 826
    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 826
    Points : 218 287
    Points
    218 287
    Billets dans le blog
    117
    Par défaut
    (les captures ne sont visibles que pour les visiteurs connectés)

    Voilà, j'ai rendu Pour une fois, avant minuit.

    J'ai pas eu le temps de faire tout ce que je souhaitais, mais bon, c'est normal

    Dans ma version, on peut voir GNUChess VS GNUChess (et moi j'aime pas leur style de jeu, mais bon ). En plus ces méchants, ils rockent souvent



    Comme je suis nul aux échecs, j'ai mis des aides :




    Et puis on peux charger un historique et reprendre une partie.

    Voilà pour moi.

    Ah ? Vous voulez peut être jouer. Alors voici : http://alexandre-laurent.developpez....i_DVP_Qt_3.zip
    Images attachées Images attachées    
    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.

  20. #20
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 17
    Points : 20
    Points
    20
    Par défaut Wouaaa :-)
    Pas mal, les propositions de mouvements, et en rouge/rose c'est le "meilleur coup" ?
    Tu as utilisé à fond GNU Chess ou tu as quand même implémenté quelques algo (vérifier si le prochain coup te met en échec, vérifier si c'est checkmate ou slatemate...)?

    Bon boulot en tout cas, l'historique, l'AI, ... je n'ai même pas encore eu le temps d'y regarder/penser.

    Bonne chance à toi!

    (Edit) Hum, il a pas l'air super le coup en rouge/rose maintenant que j'y songe

Discussions similaires

  1. Troisième défi Qt : un jeu d'échecs
    Par johnlamericain dans le forum Défis Qt
    Réponses: 60
    Dernier message: 07/09/2012, 14h19

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