Leek Wars, la guerre des poireaux

Sujet dans 'Forum Jeux et Jeux Vidéo' lancé par Sif, le 15 février 2017.

  1. Sif

    Sif
    Expand Collapse
    Tugudu Tugudu

    Bonjour les madz,

    J'ouvre ce sujet pour vous faire découvrir un petit jeu en ligne amusant, dont le but est de développer une intelligence artificielle pour.. des poireaux.

    alors bien sur si vous avez des bases en algorithmique, c'est plus simple, mais autrement c'est aussi l'occasion d'apprendre.

    Au début c'est assez simple, vous avancez, vous tapez, vous priez. Et puis avec le temps, vous pouvez acquérir des armes et des 'puces' vous permettant de vous soigner ou de blesser l'ennemi, vous pouvez jouer en équipe et adapter votre IA en fonction de ça, etc...

    Le jeu s'appelle LeekWars (lien de parrainage pour mon poireau). Lien sans parrainage

    Mes poireaux (j'en ai 2 pour l'instant) s'appellent JonnyLeekMiller et JamieLeekCurtis :P

    Dans mon IA, j'ai fait en sorte que s'il reste des points d'action à la fin du tour, mon poireau balance un chuck norris fact :d

    Si certain.e.s d'entre vous le souhaitent, on peut échanger sur ce sujet sur vos avancées, vos stratégies, etc...

    Bon jeu !
     
    Biousse a BigUpé ce message
  2. Envy_

    Envy_
    Expand Collapse

    J'ai testé. Je suis niveau 10 du coup. Bon avec une technique qui transpire le courage. Elle consiste à se mettre pile à distance pour cramer l'autre poireau sans être à porté de son flingue. Pour ensuite s'enfuir vaillamment.

    Cependant le jeu ne me propose que d'affronter des poireaux bien plus haut level que moi (Genre 17/18 quand j'étais level 5 :/ ) Du coup il suffit d'un tour où il me tire dessus pour que je crève :sad:. C'est un peu rageant surtout que la plupart ont l'IA de base sans grand changement.
     
  3. Sif

    Sif
    Expand Collapse
    Tugudu Tugudu

    @Envy_ :cretin: J'aime bien ta technique

    Je ne sais pas ce qui détermine les poireaux qu'on te propose pour combattre, mais si tu démontes un poireau beaucoup plus fort que toi, tu peux gagner beaucoup de talent, tout en en perdant peu si tu perds. (et plus tu as de talent par rapport aux poireaux de même niveau, tu gagnes plus de thunes et tu peux acheter des armes / puces plus facilement :)
     
  4. Envy_

    Envy_
    Expand Collapse

    Je n'ai pas trouvé de cohérence dans les propositions de combat non plus. Parce que mes adversaires sont à des talents de 90 quand je suis à 115 du coup même si y a une diff de niveau je perds quand même beaucoup de points. :stare:

    Après mon IA est vraiment basique parce que je n'y connais pas grand chose. Et je pense que pour la suite ça va être quasi impossible.

    C'est difficile de réfléchir à une "tactique" quand tu ne sais pas comment la mettre en place en "terme" de code ni surtout si c'est possible.

    Sinon un truc tout con sur lequel je bloque. A la fin pour tirer 3 fois je répète la commande de tir useWeapon(enemy) 3 fois.

    Le plus logique je pense serais de faire une boucle genre

    Si distance entre les 2 poireaux < à 7 (alors l'ennemi est à porté)
    Boucle
    Si Points de Tour > 0 => tirer (donc le poireau continue de tirer tant que ses points ne sont pas à 0)
    Sinon sortir de la boucle

    Mais je n'arrive pas à faire un code qui marche :sad:
    Tes poireaux sont level combien toi ?

    Sinon plutôt que d’utiliser des points d’actions pour faire un message j’utilise les commandes de débug pour faire apparaitre un message en rouge.

    Du genre :
    if(isDead(enemy))
    debugE("J'ai tué " + getName(enemy) + " !");

    C’est classe 8)
     
  5. Sif

    Sif
    Expand Collapse
    Tugudu Tugudu

    Mes poireaux sont level 75 et 52, pour le code, n'hésite pas à lire les tutos, le wiki, la doc, ça peut t'aider (et ça fait gagner un trophée :d)

    pour taper avec l'arme, j'ai fait ça (ça n'a pas trop bougé depuis le début)

    Code:
    var leftTP = getTP();
    var WC = getWeaponCost(weapon);
    var canFight = canUseWeapon(enemy);
    
    // Si je peux me booster avant de taper tout en gardant des TP après
    if (distance <= 12 && getTP() > WC + getChipCost(CHIP_PROTEIN)) {
        useOn(CHIP_PROTEIN, getLeek());
    }
    
    while (leftTP > WC && canFight) {
        if (useWeapon(enemy) > 0) {
            hit = true; // je m'en sers pour m'éloigner par la suite si j'ai tapé au moins une fois, sinon je me retrouve parfois avec un poireau qui se promène sans rien faire
        }
        leftTP = leftTP - WC;
    }
    mais même là ce n'est pas fini, typiquement je ne teste pas si l'ennemi est encore vivant avant de retenter de le taper
     
Chargement...