Crunchez vos adresses URL
|
Rejoignez notre discord
|
Hébergez vos photos
Page 3 sur 8 PremièrePremière 12345678 DernièreDernière
Affichage des résultats 61 à 90 sur 233
  1. #61
    Ouaip j'avais fini par trouver et corriger dans ma dernière mouture avec un code plus propre, merci
    ☭ Hunt. Dominions 6. Solium Infernum. Backpack Battles. Captain of Industry. Forza Motorsport. Simrail. Session ☭
    ✈ DCS (M2000C - F16C - Mirage F1 - A10C II) ✈ Flight Simulator ✈ Gary Grigsby - Steam - Pico-8 - Mastodon

  2. #62
    Citation Envoyé par Ashlook Voir le message
    Par contre j'ai pas voulu me faire chier avec du H&R pour l'instant, je trouve que c'est pas utile au début, les déplacement ne dépensent pas de TP.
    Par moment ça permet d’être totalement safe pendant un tour.
    J'essaie d'améliorer ça pour que mon poireau se mette à couvert dès qu'il le peut, mais c'est pas si simple.

  3. #63
    J'aimerais créer une couverture plus tard aussi mais faudra que je me plonge dedans. Et puis là je vise surtout le point de mouvement supplémentaire dès que possible, mais j'ai peur que tout ce temps à économiser de l'xp me rende vraiment naze par rapport aux poireaux de mon niveau qui auront tout dépensé.
    ☭ Hunt. Dominions 6. Solium Infernum. Backpack Battles. Captain of Industry. Forza Motorsport. Simrail. Session ☭
    ✈ DCS (M2000C - F16C - Mirage F1 - A10C II) ✈ Flight Simulator ✈ Gary Grigsby - Steam - Pico-8 - Mastodon

  4. #64
    Uh la loose.
    J'étais parti dans le développement de mon truc et au bout d'une heure je me rend compte que le simple fait de vérifier si une case est un obstacle, demande d'être lv 21. Tout tombe à l'eau.

  5. #65
    Citation Envoyé par Ivan Joukov Voir le message
    Trop facile la programmation J'essaye et je vous en dis des nouvelles. En attendant j'améliorais mon code initial qui, s'il doit être une usine à gaz pour des codeurs expert, marchait enfin optimalement


    EDIT : Oh bordel, ça marche à la perfection. Il avance d'une case si besoin, tire ses 2 coups, recule de 3 cases. J'ai mon script hit and run fonctionnel ! Maintenant il faudra se servir de la topographie pour que la fuite se fasse à couvert, mais j'ai peur que ça soit pas dans mes humbles cordes de quelqu'un qui savait pas coder il y a 3 heures

    Code:
    function HitAndRun(enemy)
    {	
    	if ( getMP() > 0 && getCellToUseWeapon(enemy) != getCell() ) // Si trop loin, on avance
    
    	{
    		moveTowardCell( getCellToUseWeapon(enemy) );
    		
    		while ( getTP() >= 3 && getCellToUseWeapon(enemy) == getCell() ) // et si on peut on tire
    		{
    			useWeapon(enemy);
    		}
    	}
    	
    	else while ( getTP() >= 3 ) // Sinon on tire direct tant qu'on a des points
    	{
    		useWeapon(enemy);
    	}
    	
    	if ( getMP() > 0 && getCellToUseWeapon(enemy) == getCell() ) // On fuit s'il nous reste des MP
    	{
    		moveAwayFrom(enemy);
    	}
    }
    Plus qu'à rajouter un petit patch de heal quand je serai niveau 10 pour utiliser ces 2 TP restants à la fin de chaque tour. Build fouine incoming
    J'ai fait du H&R en fait c'est marrant , au final v'la mon script :
    Code:
    function hitAndRun(cible)
    {
          while(getCellToUseWeapon(cible) != getCell() && getMP() > 0) moveToward(cible,1); //On est pas à portée et on a encore des points de mouvement
    
          while(useWeapon(cible) == USE_SUCCESS);
    
          if(getMP() > 0) moveAwayFrom(cible);//Il nous reste des MP, on recule.
    }
    Napa.

  6. #66
    En effet c'est plus propre que moi. Par contre ton while USE_SUCCESS risque de stopper ton action si tu foires un tir (sur le pourcentage d'échec possible de l'arme) aussi non ?

    J'ajouterais :

    Code:
    while(useWeapon(enemy) == USE_SUCCESS || USE_FAILED);
    Qui devrait permettre de retenter de tirer après un miss.
    ☭ Hunt. Dominions 6. Solium Infernum. Backpack Battles. Captain of Industry. Forza Motorsport. Simrail. Session ☭
    ✈ DCS (M2000C - F16C - Mirage F1 - A10C II) ✈ Flight Simulator ✈ Gary Grigsby - Steam - Pico-8 - Mastodon

  7. #67
    Ouais c'est pas faux, je vais le rajouter .

    En fait ca serait plus logique de faire :

    Code:
    while(useWeapon(enemy) != USE_NOT_ENOUGH_TP);
    Mais je suis pas sur que si la cible n'existe pas ou qu'elle est invalide ça nous enlève des TP :/.
    Napa.

  8. #68
    Ouais bah ça marche pas, je viens d'avoir un fail et il a pas tiré une seconde fois...
    ☭ Hunt. Dominions 6. Solium Infernum. Backpack Battles. Captain of Industry. Forza Motorsport. Simrail. Session ☭
    ✈ DCS (M2000C - F16C - Mirage F1 - A10C II) ✈ Flight Simulator ✈ Gary Grigsby - Steam - Pico-8 - Mastodon

  9. #69
    Citation Envoyé par Ivan Joukov Voir le message
    Ouais bah ça marche pas, je viens d'avoir un fail et il a pas tiré une seconde fois...
    Merci de me le faire remarquer, justement je viens de perdre à cause de ça.

  10. #70
    Ouais pareil pour moi :D.
    Napa.

  11. #71
    Citation Envoyé par Ashlook Voir le message
    Ouais c'est pas faux, je vais le rajouter .

    En fait ca serait plus logique de faire :

    Code:
    while(useWeapon(enemy) != USE_NOT_ENOUGH_TP);
    Mais je suis pas sur que si la cible n'existe pas ou qu'elle est invalide ça nous enlève des TP :/.
    On ne perd de TP que si le résultat de useWeapon est USE_SUCCESS ou USE_FAILED (en somme si le poireau pouvait effectivement tirer sur l'enemi en paramètre). Du coup, si ton ennemi n'est pas à portée, tu as une boucle infinie.

    Par contre je dois avouer que je ne comprends pas pourquoi il tire une première fois et pas une seconde fois. Peut-être que le script n'aime pas les boucles while sans accolades ?

  12. #72
    Bon c'est la merde. Mon script fonctionne très bien, sauf quand l'ennemi est amorphe.
    Résultat mon bot veut pas se mettre en danger et reste à la limite de portée d'un adversaire qui bouge pas, et comme j'ai pas encore accès aux nombre de tours, bah il se pass rien et match nul.

  13. #73
    Citation Envoyé par Kak0 Voir le message
    On ne perd de TP que si le résultat de useWeapon est USE_SUCCESS ou USE_FAILED (en somme si le poireau pouvait effectivement tirer sur l'enemi en paramètre). Du coup, si ton ennemi n'est pas à portée, tu as une boucle infinie.

    Par contre je dois avouer que je ne comprends pas pourquoi il tire une première fois et pas une seconde fois. Peut-être que le script n'aime pas les boucles while sans accolades ?
    Sisi ça marche, mais quand on a un échec sur le 1er tir, il ne tire pas le 2nd alors que la condition c'est sucés ou échec.
    Napa.

  14. #74
    Citation Envoyé par Hem Voir le message
    Bon c'est la merde. Mon script fonctionne très bien, sauf quand l'ennemi est amorphe.
    Résultat mon bot veut pas se mettre en danger et reste à la limite de portée d'un adversaire qui bouge pas, et comme j'ai pas encore accès aux nombre de tours, bah il se pass rien et match nul.
    J'ai suivi le conseil de la première page pour me créer une variable globale qui compte les tours.

    En début de code :

    Code:
    global tour = 1;
    Et à la fin

    Code:
    tour++;
    Donc par exemple mon taunt de premier tour est fait comme ça :

    Code:
    if (tour == 1) say("Bonne chance camarade " + getName(getNearestEnemy()) + " !");
    ☭ Hunt. Dominions 6. Solium Infernum. Backpack Battles. Captain of Industry. Forza Motorsport. Simrail. Session ☭
    ✈ DCS (M2000C - F16C - Mirage F1 - A10C II) ✈ Flight Simulator ✈ Gary Grigsby - Steam - Pico-8 - Mastodon

  15. #75

  16. #76
    Sinon t'attends le niveau 12 :D.
    Napa.

  17. #77
    Citation Envoyé par Ivan Joukov Voir le message
    Code:
    while(useWeapon(enemy) == USE_SUCCESS || USE_FAILED);
    Qui devrait permettre de retenter de tirer après un miss.
    Citation Envoyé par Ivan Joukov Voir le message
    Ouais bah ça marche pas, je viens d'avoir un fail et il a pas tiré une seconde fois...
    Pour que ça marche, il faut utiliser une variable pour stocker la valeur retour :
    Code:
    var ret = USE_SUCCESS;
    while (ret == USE_SUCCESS || ret == USE_FAILED)
    {
        ret = useWeapon(enemy);
    }

  18. #78
    L'est frustrant ce jeu, t'as plein d'idée qui te viennent en tête, tu commences à réfléchir dessus et tu te rends compte que tu peux rien faire sans des fonctions qui se débloques plus tard.
    Donc t'améliores ton bot avec ce que tu peux, ça marche nickel en test. Puis tu te rends compte que c'est foireux quand tu tombes sur des originaux et que tu peux pas régler les bugs avant de débloquer de nouveaux trucs.

  19. #79
    Y'a un tuto ?
    Discord : Siscka#5183

  20. #80
    Citation Envoyé par Siscka Voir le message
    Y'a un tuto ?
    Ouaip : http://www.leekwars.com/help

  21. #81
    Citation Envoyé par Hem Voir le message
    Bon c'est la merde. Mon script fonctionne très bien, sauf quand l'ennemi est amorphe.
    Résultat mon bot veut pas se mettre en danger et reste à la limite de portée d'un adversaire qui bouge pas, et comme j'ai pas encore accès aux nombre de tours, bah il se pass rien et match nul.
    La même ici avec mon poireau qui restait bloqué. Au final, si à la fin du tour il me reste des MP, je les dépense en avançant
    Tu peux aussi faire un globale qui en fin de tour prend la cell de l'ennemi, que tu compares le tour d'après avec sa position actuelle pour vérifier s'il a bougé

  22. #82
    Citation Envoyé par Siscka Voir le message
    Y'a un tuto ?
    Oui. De plus le jeu est très progressif (système de niveaux), t'as donc le temps d'assimiler les concepts et de faire évoluer ton IA au fur et à mesurer des nouveautés, sans être rapidement dépassé par les autres qui auraient déjà des notions de dev et/ou d'IA.

  23. #83
    J'ai que quelques bases en C

    Merci, ça a l'air marrant.
    Discord : Siscka#5183

  24. #84
    En plus, ce qu'il faut savoir, c'est que les purs devs (genre ceux qui font du C++) sont à se prendre la tête pour avoir un code joli, mais derrière qui ne marche pas
    Mention spéciale à un canard que je ne citerai pas qui, à 23h58 (le compteur de combat est réinitialisé à 00h00) n'avait toujours pas de code fonctionnel, et qui nous sort comme excuse, qu'il a malencontreusement supprimé son script

    Sinon, va falloir commencer à penser à la stratégie d'équipe :
    - Définir les cibles prioritaires
    - Se diviser en deux équipes avec 4 attaquants et 2 supports
    - Trouver un moyen pour que les supports restent toujours hors de portée des ennemies et à portée de chip des attaquants
    - ???
    - Profit !

  25. #85
    Je peux pas voir le chat d'équipe derrière le proxy de l'école .

    Et pourtant je préfère programmer un poireau que faire du php

  26. #86
    Citation Envoyé par deathdigger Voir le message
    En plus, ce qu'il faut savoir, c'est que les purs devs (genre ceux qui font du C++) sont à se prendre la tête pour avoir un code joli, mais derrière qui ne marche pas
    Mention spéciale à un canard que je ne citerai pas qui, à 23h58 (le compteur de combat est réinitialisé à 00h00) n'avait toujours pas de code fonctionnel, et qui nous sort comme excuse, qu'il a malencontreusement supprimé son script

    Sinon, va falloir commencer à penser à la stratégie d'équipe :
    - Définir les cibles prioritaires
    - Se diviser en deux équipes avec 4 attaquants et 2 supports
    - Trouver un moyen pour que les supports restent toujours hors de portée des ennemies et à portée de chip des attaquants
    - ???
    - Profit !
    N'empêche que ma nouvelle IA déboîte pas mal.

    Apres, le language a quelques spécificités un peu chelou. Genre nulle == 0 (c'est plutôt classique mais comme les identifiants de poireaux ou cellules sont des entiers et que 0 est un id valide, c'est trompeur), ou [] == null == [1,2,...] == "123", ou encore des fonctions bugguees comme subArray. Mais une fois qu'on le sait ça va.
    "Dieu est mort" · "Si le téléchargement c’est du vol, Linux c’est de la prostitution."

  27. #87
    Ouais, y'a 2 3 trucs bizarres, perso, j'ai une boucle qui plante à la fin si je bute le poireau adverse. Et pourtant, j'ai bien mis un isAlive avant (mais non, il essaie de chopper une distance entre ma Cell() et celle de null). Sinon, petit bug sur le match : http://leekwars.com/fight=152110
    Je suis sensé focus Patatheal, et il focus sur Patator.

    Edit :
    PeaK
    9:18
    Je me posais la même question, moi aussi j'ai focus Patator...
    Ce serait pas à cause du "if target == null --> target = enemies[i]" ? Si Patatheal est le leek 0, on le remplace...
    Ouais, c'est peut-être ça.

  28. #88
    Citation Envoyé par Foudge Voir le message
    Pour que ça marche, il faut utiliser une variable pour stocker la valeur retour :
    Code:
    var ret = USE_SUCCESS;
    while (ret == USE_SUCCESS || ret == USE_FAILED)
    {
        ret = useWeapon(enemy);
    }
    C'est ce que je pensais essayer, merci.
    Napa.

  29. #89
    C'est dommage qu'on ne puisse pas reset les stats... Dans mes premiers levels j'avais tout mis dans la Fréquence, ce qui ne sert strictement à rien

  30. #90
    Ceci dit, vu le nombre de TP qu'on possède, on tire au max 2 fois. Je ne pense pas que ça vaille le coup de faire des boucle while potentiellement infinie.
    C'est presque plus simple de faire :
    Code:
    var ret = useWeapon(enemy);
    if (ret == USE_SUCCESS || ret == USE_FAILED)
    {
        useWeapon(enemy);
    }
    En plus par la suite tu seras amené à étudier plus minutieusement le résultat du 1er tir pour choisir une 2ème action qui ne sera pas forcément un tir, ou alors pas avec la même arme.

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •