====
Plateforme relative à l'édition 2015 de Code of War
Pour installer le serveur il vous faut nodejs et npm https://nodejs.org/
- Installer le serveur
npm install codeofwar
- Lancer le serveur
cd node_modules/codeofwar/
node js/release/Server.js
- Mettre à jour le serveur
npm update codeofwar
Une fois le serveur démarré, vous pouvez vous rendre sur http://localhost:3000/
Connectez vous sur http://localhost:3000/
Cette page liste les IA connectées au serveur. Vous pouvez en selectionner deux et lancer un combat. Une nouvelle page affiche alors la partie entre les deux IA.
Le but du jeu est de parcourir un labyrinthe pour attraper le premier le poulet. Les joueurs ont au maximum 200 tours pour l'attraper.
Les tours s'enchainent toujours dans le même ordre : joueur 1, joueur 2, puis coq.
Tous les tours, un joueur gagne 1 point de mouvement (PM) qu'il peut conserver jusqu'à un maximum de 5 PM. Le coq ne peut pas cumuler ses PM.
Durant son tour, un joueur peut se déplacer vers une case voisine, et/ou ramasser un item, et/ou utiliser un item.
- Il peut se déplacer tant qu'il a un nombre de PM suffisant.
- Il peut utiliser autant d'item qu'il possède.
- Il ne peut pas se déplacer vers une case déjà occupée (sauf par le coq).
La potion d'invisibilité
Utiliser une potion d'invisibilité va masquer la position du joueur au joueur adverse et au coq pendant 42 tours
Le piège
Utiliser un piège va le déposer sur la case courante. Si un joueur ou le coq tombent dedans, ils ne pourront plus bouger pendant 10 tours. Le joueur qui pose le piège peut donc tomber dedans !
Le parfum de poulette
Utiliser cet item va offrir au coq un bonus de 10 PM
Vous pouvez coder votre IA dans le langage de votre choix dans la mesure où il peut établir une connection socket.
Quelques SDK Open Source sont disponibles ici :
https://github.com/damoebius/Cow4_SDK
https://github.com/thearsenik/CoW4-Java8
http://api.codeofwar.net/modules/Server.html
La connection au serveur se fait en socket sur le port 8127.
Les messages sont échangés en JSON sérializé en String et séparés par la chaine #end#
Une fois la connection avec le Serveur établie, il faut lui envoyer un messsage d'Authentification.
{
"type":"authenticate",
"name":"monIa",
"avatar":"http://monsite/monavatar.jpg",
"token":"yourtokenifone",
"profil":1
}
Vous pouvez, ou non, préciser le token qui vous a été communiqué lors de votre inscription. Cela serait necessaire uniquement pour la phase de qualification.
Vous devez par contre choisir le profil de votre IA.
- le MASTER_OF_COINS (le nain) est immunisé contre les pièges : profil 1
- le TECH_WIZARD (l'alchimiste) est immunisé contre la potion d'invisibilité (immunise aussi le poulet) : profil 0
- le HAND_OF_THE_KING (l'elfe) immunise le poulet contre le parfum de poulette : profil 2
Le serveur répondra avec un message renvoyant l'ID de l'IA ou un message d'erreur.
{
"type":"id",
"id":3254898715
}
Lorsque c'est à son tour de jouer, le server envoie à l'IA un message GetTurnOrder
{
"type":"getTurnOrder",
"data":{
// GameMap Object
}
}
Ce message contient toutes les informations relatives à la partie. L'IA doit répondre en moins d'une seconde, un message de type TurnResult
{
"type":"turnResult",
"ia":{
// IAInfo Object, contient les info sur l'auteur du tour
},
"actions":[
{} // TurnAction Object, une action à exécuter
]
}
Reportez vous à la documentation de l'API pour plus de détails
http://api.codeofwar.net/modules/Server.html
À noter que la référence de la grille du labyrinthe se trouve en haut à gauche.
A son premier tour, le poulet va foncer vers la case tout à gauche.
A partir de ce moment, l'ia va commencer par calculer le chemin le plus rapide pour atteindre ses deux adversaires
Ensuite elle va chercher la première intersection disponible sans emprunter une route vers une IA.
Et elle y va. Arrivée là-bas elle analyse à nouveau la situation.
Vous pouvez remonter des annomalies ou des demandes d'évolution ici : https://github.com/damoebius/Cow4/issues
Vous pouvez échanger avec la communauté sur notre groupe : https://groups.google.com/forum/#!forum/expantion-origin
Enfin vous pouvez contacter l'équipe à cette adresse : contact@ttfx.fr