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 :

le projet Dig To Frag


Sujet :

C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5
    Par défaut le projet Dig To Frag
    Bonjour a tous.
    Voila je vient de terminer avec un pote un projet d'un server d'affrontement d'IA qui s'appelle Dig To Frag.

    J'aimerai bien savoir ce que vous en pensez, si vou voyez des amelioration a faire, des choses a corriger, ou tout simplement si sa vous interesse de participer ^^.

    Vous n'avez qu'a lire la doc, coder votre IA (C / C++) et l'essayer contre les IA des autres, puis les competitions viendron :)

    On c'est pas mal inversti dans ce projet et je n'aimerai pas le voir couler :), pour l'instant il marche bien, ya deja quelques IA mais personne connait le projet ^^. Alor j'espere que les gens ne lacheront pas ^^.

    ps : 22 inscrits pour l'instant, 8 IA sur le server. on vous attend ^^

    http://bigserver.homedns.org/dig_to_frag/

    :: BigBourin ::

  2. #2
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 292
    Par défaut
    C'est rigolo. Si j'avais le temps, je ressortirais bien mes vieilles références sur le Reinforcement Learning. Au détail que sans un accès permanent au serveur pour entrainer l'IA, ou de possibilité de sérialiser ses connaissances, ce genre d'approche va être difficile à mettre en oeuvre.

    C'est d'ailleurs dommage que l'on ne puisse pas soumettre plusieurs IA qui implémentent des algos et autres heuristiques différents.

    Enfin, pour revenir dans le thême du forum. Si je puis me permettre, le C supporte parfaitement les constantes (plutôt que les define). Et il permet de définir des choses const-correctes. Ainsi la fonction de log doit permettre de recevoir un "const char*" pour éviter des bidouilles à la noix pour obtenir des "char*" à partir de chaines standard C++.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Par défaut
    pour que ça soit pris au sérieux, vaudrait mieux éviter les fautes d'orthographe

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5
    Par défaut
    Luc Hermitte : Il est entierement possible de soumettres plusieurs IA

    sans un accès permanent au serveur
    Le server est toujour up (sauf coupure de courrant)

    et pour la fonction de log : C'est l'une des premieres fonction que j'ais codé et recupéré d'un encien projet ^^, alor c'est fait a l'arrache je fait du C que depuis 1 ans, et du C++ depuis 2 mois (plus ou moins)

    nikko34 : Les fautes d'orthographe seront corrigés , c'est prévu, faut attendre que darkwizard rentre de vacances ^^

  5. #5
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 292
    Par défaut
    Finalement, j'ai trouvé le code du serveur sur le site.
    Petites remarques tant que j'y suis,
    A- il est possible avec le code actuel de référencer vos variables globales et donc de savoir où sont les autres, ce qu'il y a autour de nous, de modifier le résultat aléatoire, ... (avec un extern par variable globale, c'est réglé)
    -> les espaces de noms anonymes sont la solution (vu que le serveur est en C++) pour localiser à une unité de traduction (1e UdT == 1 .cpp + tous les .h inclus) les variables globales du .cpp.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    namespace { // anonymous namespace
        int joueur_courant; // j'ai oublié le nom exact
        _MAP_ ** le_monde;
    } // // anonymous namespace
    B- Le préfixage par underscore est résevé aux fournisseurs de compilos et à l'implémentation de la bibliothèque standard (1_ -> C; 2_ -> C++)

    C- Vu que le serveur est en C++, simplifiez vous la vie
    -> std::string pour les chaînes de caractères
    -> boost::multi_array pour les tableaux à deux dimensions (ou plus)
    -> abstraction+encapsulation, cela change la vie. Pour l'instant, c'était plus du C avec des minis classes.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5
    Par défaut
    Pour ce qui est du problemme des variables globales, je savait pas qu'on pouvait faire ca depuis un module, et j'ais donc fait un systeme de grep sur le fichier source, quand on post sa vérifie les triches ^^ (en attendant mieu).
    Je pense que je vais essayer la methode du namespace ^^, je connaisait pas, sa marche aussis pour les déclarations de fonctions ?.

    Pour ce qui est des methodes avancé de c++, comme dit plus haut, je fait du c++ depuis 2 mois et ce qu'il m'interresait bcp c'etait surtout les classes, et la surcharge des fonctions, alor j'ais pas vrément chercher a aller plus loin pour pas perdre du temps a apprendre de nouvelles sintaxes.

  7. #7
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    e connaisait pas, sa marche aussis pour les déclarations de fonctions ?.
    Oui, pour n'importe quoi qui est déclarable.

    Les namespaces anonymes sont l'équivalent de static en C, si ça te parle plus. D'ailleurs static est également utilisable en C++.

  8. #8
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 292
    Par défaut
    Citation Envoyé par bigbourin
    Je pense que je vais essayer la methode du namespace ^^, je connaisait pas, sa marche aussis pour les déclarations de fonctions ?.
    C'est exactement le même combat. Et ce peut être problématique si tu as des fonctions qui manipulent tes variables globales.
    Tant que tu n'as qu'un seul fichier tu vas t'en sortir. Si tu commences à découper, il va sérieusement falloir songer à se débarrasser de ces variables globales.

    Pour ce qui est des methodes avancé de c++, comme dit plus haut, je fait du c++ depuis 2 mois et ce qu'il m'interresait bcp c'etait surtout les classes, et la surcharge des fonctions, alor j'ais pas vrément chercher a aller plus loin pour pas perdre du temps a apprendre de nouvelles sintaxes.
    Ce ne sont pas des méthodes avancées. Ce sont au contraire les bases du C++.
    Et honnêtement, tu vas perdre plus de temps à débugguer tes char*, qu'à apprendre à utiliser des types comme std::string.
    Si tu veux faire du C++, oublies tout ce que tu sais faire en C, et prend un vrai bon bouquin de C++ qui n'attend pas que lecteur connaisse le C.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

Discussions similaires

  1. Qu'est ce qu'un grand projet ?
    Par Geronimo dans le forum Débats sur le développement - Le Best Of
    Réponses: 62
    Dernier message: 04/04/2013, 14h52
  2. [Delphi] Association composants-projet
    Par Pierre Castelain dans le forum Composants VCL
    Réponses: 6
    Dernier message: 31/07/2002, 16h20
  3. Parametrage des options de projet
    Par ares7 dans le forum EDI
    Réponses: 7
    Dernier message: 22/07/2002, 15h33
  4. Réponses: 6
    Dernier message: 21/06/2002, 14h48
  5. Les fichiers d'un projet
    Par Manolo dans le forum C++Builder
    Réponses: 4
    Dernier message: 07/05/2002, 17h51

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