|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
![]() ![]() |
Bonjour,
Qui ne tente rien n'a rien alors je vous livre une idée que j'ai, pour améliorer les défi du site qui se développe de plus en plus. Le langage reste à définir mais je pencherais plutôt pour du java.. L'idée est de réunir chaque semaine des personnes sur un même défi, lié évidement à la programmation. l'environnement est le suivant : développez présente une arène de combat et ces règles du jeux (l'application "hôte"), chaque semaines, chaque participant peux inscrire son bot dans l'arène, et une fois par semaine a lieux un championnat. Les bots sont disposé 10 par arène, chaque gagnant monte pour rencontré les autres gagnant de chaque arène, ainsi chaque semaine on pourra distinguer 3 bots, (Bronze, Argent, Or). Pour moi le plus simple serrait de construire les règles à peut près comme ceci (de façon simpliste) - Chaque bot reçois 100 point de vie dans l'arène. - Chaque bots est capable de "tiré" sur les autres (a définir plus précisément) - Chaque bots peut se déplacer ( à définir plus en détail) On peut imaginé que les bots est des radars, que l'arène contienne des piege, de la nourriture, des objets... il n'y a que l'imagination comme barrière. Les bots pourront faire appèle a des fonctions de l'arène, défini dans les règles du jeux (ex : ou je suis.) voila voila, évidement c'est une ébauche.. mais j'avais trouvé quelques projet qui faisait ça sur le net, maintenant abandonné, j'avais trouvé ça très sympas.. surtout si chaque semaine, on peut amélioré sont bot et le refaire concourir. Qu'en pensez vous ?
__________________
modérateur webmasters - développements web & php faq jQuery - règles du forum - faqs web mon espace persoSuivez mon blog
|
|
00
|
|
|
#2 |
![]() ![]() ![]() ![]() Thomas LevesqueDéveloppeur .NET Inscription : février 2004 Messages : 17 799 ![]() |
Bref, tu veux réinventer RoboCode quoi
__________________
Pas de questions techniques par MP ! Le forum est là pour ça... |
|
00
|
|
|
#3 |
![]() ![]() |
Oui oui, exactement, je ne connais pas ce programme, je me basai plutôt sur http://www.madkit.net/warbot/ (warbot) qui est écrit à l'aide de madkit.
Peut être pas ré-inventer comme tu dit mais créer quelques chose qui correspondrais au attente de la communauté de développez, et spécifiquement créer pour le besoin du site, et ce que je décrit plus haut. Comme me dit souvent mon colloc, ce n'est pas une erreur de refaire ce qui existe déjà.. et on le voie bien sur la toila avec les milliers de blog qui existe. J'ai commencer à plancher sur une solution : Je pencherais pour du Java, avec le framworke JADE, les bot serait donc des agents, en java.
__________________
modérateur webmasters - développements web & php faq jQuery - règles du forum - faqs web mon espace persoSuivez mon blog
|
|
00
|
|
|
#4 | |
![]() ![]() ![]() ![]() Thomas LevesqueDéveloppeur .NET Inscription : février 2004 Messages : 17 799 ![]() |
Citation:
En fait, l'idéal pour que tout le monde puisse participer "à armes égales", ce serait que ce soit indépendant de la technologie utilisée : une architecture client-serveur, avec un protocole de communication qui puisse être implémenté avec n'importe quelle technologie (webservice, socket ou autre). L'idée peut être intéressante en tous cas, faut voir si ça motive du monde... Tu peux toujours créer un projet hébergé sur DVP
__________________
Pas de questions techniques par MP ! Le forum est là pour ça... |
|
|
00
|
|
|
#5 | |
![]() ![]() |
Citation:
Et pour les temps de réponse, comment être sûr que tout les bots sont bien à égalité sur les temps d'action, que chaque "tic" soit bien identique. En tout cas, le débat est lancer..
__________________
modérateur webmasters - développements web & php faq jQuery - règles du forum - faqs web mon espace persoSuivez mon blog
|
|
|
00
|
|
|
#6 | |
![]() ![]() ![]() ![]() Thomas LevesqueDéveloppeur .NET Inscription : février 2004 Messages : 17 799 ![]() |
Citation:
Mais bon, tu peux toujours faire un truc 100% Java si tu veux, je proposais juste ça pour toucher plus de monde...
__________________
Pas de questions techniques par MP ! Le forum est là pour ça... |
|
|
00
|
|
|
#7 |
![]() ![]() Inscription : juin 2004 Messages : 5 850 ![]() |
Non, c'est sûrement plus simple puisque tout ce passe sur l'entrée et la sortie standard.
Ce genre de programme existe déjà, malheureusement je me rappel plus du nom
__________________
gege2061's blog |
|
00
|
|
|
#8 |
![]() ![]() |
Je n'ai pas les connaissances pour faire ce genre de programme, mais en pure java ça devrais pouvoir ce faire, avec les super article de DVP sur JADE
J'attends toujours l'intervention de ram-0000... il avait une petite idée aussi, mais j'en sais pas plus ![]() Je vous tiens informer de l'avancer du sujet (je devrais peut être ouvrir un sujet dans les projets DVP..)
__________________
modérateur webmasters - développements web & php faq jQuery - règles du forum - faqs web mon espace persoSuivez mon blog
|
|
00
|
|
|
#10 |
![]() ![]() |
Donc j'ai regardé un peut robocode mais ça me parait très tight comme approche.. avec un seul robot a contrôler, le jeux va vite se boucher à quelques approche pragmatique. Je penche plutôt pour une solution avec plusieurs agent, avec une "base", un agent immobile, un explorateur, et un char : comme dans warbot.
__________________
modérateur webmasters - développements web & php faq jQuery - règles du forum - faqs web mon espace persoSuivez mon blog
|
|
00
|
|
|
#11 |
![]() ![]() |
Je me concentre sur les technos à utiliser.. j'ai épurer quelques forums et pas mal d'article, voilà ce que je pense choisir pour ce petit projet :
Langage : JAVA - Pour pouvoir utiliser JADE qui ma l'aire très bien pour jouer avec des agents. Environnement de développement : netbeans - Essentiellement parce qu'il intègre un RAD pour créer la partie graphique. Framework : - JADE pour les agents java. - Qt Jambi pour la partie graphique (intégrer a la nouvelle version de netbeans.. ça tombe bien) Équipe : moi (lol) Pour la partie graphique de l'appli.. je me tate, entre Swing et Qt. Reste à poser un petit cahier des charges. Je vous tiens au courant de l'avancer du sujet, dès que je commence à avoir quelques chose qui marche, je compte mettre aussi un SVN public en place, pour avoir de l'aide et des conseils.
__________________
modérateur webmasters - développements web & php faq jQuery - règles du forum - faqs web mon espace persoSuivez mon blog
|
|
00
|
|
|
#12 | ||
![]() ![]() ![]() ![]() Thomas LevesqueDéveloppeur .NET Inscription : février 2004 Messages : 17 799 ![]() |
Citation:
Citation:
__________________
Pas de questions techniques par MP ! Le forum est là pour ça... |
||
|
00
|
|
|
#13 |
![]() ![]() |
Oui, peut être que Swing est plus sûr.. dommage, j'aimais bien l'idée, mais en c++ j'ai pas trouvé de librairie multi agent, comme madkit ou jade.
j'ai un nouvelle élément, assez important, le projet pourrait se décomposer en deux partie, une partie "arène", qui est l'arbitre des parties, et les joueurs qui communiquent avec le serveur par le réseau. faut que je fasse des jolie schémas pour illustrer parce que je sais pas trop si c'est réalisable.. Donc pour le serveur on est toujours sur du java+jade mais le client peut être écrit dans un langage différent. Comme je m'y connais pas du tout en réseau, ça va être très sympa...
__________________
modérateur webmasters - développements web & php faq jQuery - règles du forum - faqs web mon espace persoSuivez mon blog
|
|
00
|
|
|
#14 |
![]() ![]() |
Afin d'illustrer mon précédent post :
![]() - Le client envoie une demande de LOGIN - Quand le client est connecté, Il peut participer à un match. Le protocole du client / Serveur et Les règles du jeux reste entièrement à être déterminer dans le cahier des charge. Pour avoir un équité sur les temps, plus particulièrement sur le nombre d'action possible en un temps T, je pense que le mieux et de limité le nombre d'action possible dans un temps T par le serveur. On peut illustrer cela de la façon suivante : T0 - Le client envoie une demande au serveur A1 T1 - Le serveur exécute la demande et renvoie le résultat. T2 - Toute demande rejeté par le serveur Le cycle T0, T1, T2 ce succède jusque la fin du match. Le temps T2 reste à déterminer. Sinon j'ai quelque intérogation : - Est ce le serveur qui doit envoyer le résultat des "capteur" du robot au client, ou est ce que le client doit demander l'état de ces capteurs au serveur pour les avoirs ? - Comment le serveur doit envoyer les informations du monde au client ? (position des autres robots, obstacles..) sans que le client puisse tricher avec ces informations.. c'est juste pour pouvoir faire un client qui sache afficher le monde par exemple, pour "regarder" son robot jouer.
__________________
modérateur webmasters - développements web & php faq jQuery - règles du forum - faqs web mon espace persoSuivez mon blog
|
|
00
|
|
|
#15 |
![]() ![]() ![]() Ingénieur développement logiciels Inscription : janvier 2004 Messages : 8 880 ![]() |
J'ai l'impression que tu cherches trop compliqué. Déjà un tel programme d'arène est complexe à réaliser, alors si en plus tu veux implémenter un protocole de communication entre un serveur (à coder) et des multiples clients (aussi à coder), ça va devenir gigantesque.
Pourquoi ne pas simplement uploader pour chaque participation un (ou plusieurs) fichier texte contenant le "code" du comportement avec n points d'entrées définis par le type de jeu et seulement ensuite lancer le match côté serveur et servir sous simple forme texte le résultat une fois fini ? Le codage se "résume" à un petit interpréteur, à une tenue des résultats et à une gestion d'uploads et de matchs. Ça ne servira à rien de voir en temps réel le comportement d'un joueur ... faire simple. |
|
00
|
|
|
#16 |
![]() ![]() |
Oui, c'est sûr que c'est beaucoup plus complexe... surement trop. qu'en pense les autres ? sinon je part sur mon idée du début, une application en java, avec juste un système pour intégrer les robots et une petite interface graphique pour suivre le match, Le jeux consiste à implémenter les cerveaux des différentes entité.
Je vais peut être commencer par ça, mais l'idée d'un serveur est quand même pas mal, juste immense à faire.
__________________
modérateur webmasters - développements web & php faq jQuery - règles du forum - faqs web mon espace persoSuivez mon blog
|
|
00
|
|
|
#17 |
|
Expert Confirmé
![]() Sylvain Ingénieur développement logiciels Inscription : octobre 2007 Messages : 1 249 ![]() |
Le projet a l'air très intéressant ma foi.
Sinon, je me permets de proposer quelques idées. En fait, pour commencer, pas besoin je pense de faire une arène trop complexe. Juste un cadrillage de n cases. Etape 1 : Le serveur envoie aux clients la position des autres robots dans l'arène et leur point de vie (au format XML par exemple pour laisser au développeur le choix de sa technologie). Etape 2 : Les client envoient au serveur (en XML toujours) l'action effectuée par leurs robots durant le tour. Etape 3 : on répète l'étape 1... Il faut limiter à une seule je pense les actions des robots pendant un tour et en limiter le choix. Par exemple, pour commencer il pourrait y avoir 3 actions : "se déplacer à la case x,y en limitant la distance de déplacement", "tirer sur la case x,y en limitant la portée" et une troisième qui pourrait être "ne rien faire" ou "se défendre". Voilà, je pense que c'est un truc tout simple qui pourrait être fait pour commencer et rien ne n'empêche par la suite d'approfondir les règles, d'ajouter des items sur la carte ou d'augmenter le choix d'actions possibles.
__________________
"tatatatatatatatataaa !! tata taaa !! tata taaa !! tatatata tataaa !! tata taaa !! tata taaa !!" |
|
|
00
|
|
|
#18 |
![]() ![]() |
Bon bon bon.. je viens de discuter de ça avec quelques geek autour de moi, et je pense qu'on arrive à quelques chose de faisable :
On garde le projet Client - Serveur mais on va pas s'embêter à refaire la roue, donc pour le protocole le mieux serait de partir sur du SOAP - XML, encapsuler via des raquette http, et pour controler les bots on fera appèle à des web services.. je pense que ça ira à tout le monde : Pas de contrainte de langue coté client (à par faire du SOAP en HTTP) et le serveur se découpe en plusieurs web services.. voila voila, je pense qu'on tient le bon bout !
__________________
modérateur webmasters - développements web & php faq jQuery - règles du forum - faqs web mon espace persoSuivez mon blog
|
|
00
|
|
|
#19 |
|
Membre émérite
![]() Inscription : mai 2007 Messages : 895 ![]() |
![]() Le bon bout c'est péjoratif. Il faut dire le bambou!
__________________
.NAS Server Project: ► Serveur de fichiers [NAS] ► Le Tableau de bord projets ► Contribution: Nom / Logo ► Identification des besoins ► Le groupe de travail ICMO ► Demande d'inscription ICMO |
|
|
00
|
|
|
#20 | ||
![]() ![]() |
Bonjour,
J'ai eu un peux de temps pour commencer ce projet, le (petit) moteur du jeux fait 300 ligne écrit en python et balancé en XML-RPC par CGI avec la librairie CGIXMLRPCRequestHandler de python. c'est un début et le moteur devrais grossir de jour en jour si des personnes sont intéresse par le projet, demande des nouvelles fonctionnalités.. etc. Il faut aussi que j'écrive le site web, le front du moteur qui permettra à terme de regarder ce qui se passe en direct sur la grille. Voila les fonctions que vous pouvez appeler avec votre IA : Adresse des web service (XML-RPC) : http://www.wowar.fr/web.py Pour commencer, vous devez enregistrer un nouveau robot dans la grille, pour cela il faut appeler la fonction : - login(password) paramètre : password, une chaîne de caractère, c'est votre mot de passe. le serveur vous répondra avec un identifiant, a ne pas perdre ! c'est avec l'identifiant et le mot de passe que toute les fonctions doivent être appelé pour effectuer une action avec votre robot. les actions possible : myHealth(id,password): watch(id,password): move(id,password): (retour à -2 = un robot vous bloque a l'avant) turnLeft(id,password): turnRight(id,password): fire(id,password): (retour à 0 si vous avez touchez un robot, -1 sinon) code retour générique pour les fonctions : -10 : votre robot n'a plus de vie, HP >= 0 - 5 : identifiant ou mot de passe incorect - 1 : la fonction n'a pas pu s'executer correctement 0 : la fonction à été effectué. la fonction watch renvoie un tableau de 5 éléments égale à 0 ou 1, votre vue dépends de l'orientation de votre robot, vous voyez devant vous, sur les cotés et sur les diagonal de 1 case, donc si vous êtes tournée vers le nord, et que vous appeler la fonction watch, vous aurez les éléments suivant : Ouest, Nord-Ouest, Nord, Nord-Est, Est. Toujours de gauche à droite, si un robot est positionnez sur votre gauche vous aurez le résulat suivant : [1,0,0,0,0] Le robot se déplace avec la fonction move, qui fait avancer le robot d'une case dans la diréction ou il regarde, si vous voulez tourner il faut d'abord appeler turnLeft ou turnRight. Le robot débute sur une case de la grille au hasard et il regarde au Nord, avec 100 HP. Vous perdez 25 HP si un autre robot vous tire dessus, à 0 vous ne pourrez plus utiliser votre robot, et il ne sera plus détecté dans la grille du jeux. exemple pour appeler les services depuis une console python : Code :
__________________
modérateur webmasters - développements web & php faq jQuery - règles du forum - faqs web mon espace persoSuivez mon blog
|
||
|
00
|
Copyright © 2000-2013 - www.developpez.com