current bot of starfight
Java Scala Shell
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.settings
app
bin
conf
lib
project
public
test/integration
.classpath
.gitignore
.project
README.md
TODO
system.properties

README.md

Ekino @DevoxxFR

Pour participer au jeu concours d'Ekino à DevoxxFR 2013 à partir du template EKino, voici la listes des étapes à suivre :

##Prérequis :

  • une JDK 7 (sun, openjdk ...)
  • un client git
  • un éditeur de text ou un IDE, tel eclipse ou Intellij IDEA
  • posséder un compte github pour la soumission

Facultatif (mais fortement recommandé)

$ export PATH=$PATH:/CHEMIN_INSTALL_PLAY/play`
  • tester votre commande :
$ play help

Préambule

git clone git@github.com:<mygithublogin>/starfight
  • Pour vérifier son bon fonctionnement si vous avez installé play :
$ play test
  • Le projet comporte déjà les configurations nécessaires pour Eclipse et Idea, mais vous pouvez utilisez un éditeur classique.
    • Sur Eclipse, il faut utiliser l'outil d'import de projet.
    • Avec Idea, il faut seulement ouvrir le projet. Dans le cas, ou vous rencontrez des problèmes avec le classpath, vous pouvez essayer de regénérer le .idea
$ play idea
  • Renseigner votre clé secrête qui sera partagée avec le serveur de jeu et que vous devriez fournir sur le formulaire de soumission
    • ouvrer conf/application.conf et changer la valeur de la clé (YOURKEY) 'application.secret'

Développement

Tout se fait dans la classe app/core/PlayerAlgorithmDefault.java.
Vous avez accès au source de la classe cliente dans le répertoire lib

pubic String ping()

Il faut en premier compléter votre pseudo de la méthode ping. Ce pseudo devra par ailleurs être fourni sur le formulaire de soumission. Elle est utilisée par le serveur de jeu pour vérifier votre que votre serveur est UP.

ActionList turn(World world)

Cette méthode est appelée à chaque tour de jeu.
En entrée les informations concernant votre armée - ou du moins les vaisseaux qui répondent encore à l’appel - et les résultats des scanners des vaisseaux.
En sortie vous devez fournir une liste d’action à faire effectuer à vos vaisseaux.
Deux types d’actions sont réalisables :

  • Attaque : chaque vaisseau peut tirer une fois par tour
  • Déplacement : chaque vaisseau a droit à 5 cases de déplacement fractionnables dans les 4 directions Nord, Sud, Est, Ouest.
    Conseil : le numéro du tour est envoyé à chaque tour dans World. Si vous n’êtes pas sans état au niveau de votre serveur, pensez à réinitialiser vos données si vous recevez 0.

Aide Git

  • Pour ajouter vos fichiers au prochain commit (si nouveaux fichiers surtout)
$ git add .
  • Pour commiter directement :
$ git commit -am 'VOTRE COMMENTAIRE'
  • Pour envoyer sur votre depot GitHub
$ git push VOTRE_REMOTE master

Outils de tests

  • Pour s'assurer que son application fonctionne toujours, dans le cas où vous avez installé Play :
$ play test
  • Vous pouvez lancer en local, votre projet pour le tester :
$ play run
  • Des commandes dans le répertoire bin, ping.sh et turn.sh sont disponibles pour que vous puissiez valider votre application lorsqu'elle est déployée, ex :
$ ./bin/ping.sh http://localhost:9000 YOUR_KEY
$ ./bin/turn.sh http://localhost:9000 YOUR_KEY

Déploiement sur Heroku

$ wget -qO- https://toolbelt.heroku.com/install-ubuntu.sh | sh
  • Ensuite, il faut s'authentifier en tapant :
$ heroku login

Vous pouvez utilisez une de vos clés SSH, soit laisser Heroku en générer une pour vous.

  • A la racine de votre projet, taper :
$ heroku create
  • Pour déployer l'application sur Heroku :
$ git push heroku master
  • Vous pouvez valider votre déploiement en utilsant les outils de test ./bin/ping.sh et ./bin/turn.sh vu ci-dessus

Référence documentation officielle :

Déploiement sur Cloudbees

  • Ne pas oublier d'avoir commiter vos modifications avant de déployer
  • créer ou posséder un compte cloudbees
  • installer le bees SDK :
$ curl -L cloudbees-downloads.s3.amazonaws.com/sdk/cloudbees-sdk-1.3.1-bin.zip > bees_sdk.zip
$ unzip bees_sdk.zip
$ rm bees_sdk.zip
$ cd cloudbees-sdk-1.3.1
  • ajouter dans votre PATH, bees SDK
$ export BEES_HOME=~/cloudbees-sdk-1.3.1
$ export PATH=$PATH:$BEES_HOME
  • Pour déployer sur cloudbees à la racine du projet starflight
$ play dist
$ bees app:deploy -a YOUR_APP -t play2 -Rjava_version=1.7 dist/starflight-1.0-SNAPSHOT.zip
  • Vous pouvez valider votre déploiement en utilsant les outils de test ./bin/ping.sh et ./bin/turn.sh vu ci-dessus

Soumission

  • Allez sur http://devoxx.ekino.com/account/subscribe Remplissez tous les champs,
    • Pseudo : le pseudo que vous avez mis dans la méthode ping() , en respectant la casse
    • apiKey : la clé secrète que vous avez mise dans conf/application.conf, en respectant la casse.
    • email : un email valide, un mail vous sera envoyé pour validation suite à la soumission
      • nom et prénom: pour affichage!
    • github : l’url de votre fork github sur lequel nous pouvons consulter votre algorithme
    • url de votre instance : l’url heroku (ou autre) où vous avez déployé votre serveur

Si votre serveur répond au ping, vous serez alors considéré comme validé. Allez sur le stand Ekino pour faire concourir votre algorithme.