Apprendre à programmer en jouant avec Leekwars.
Ce mois ci ce sera un article un peu particulier car mon arduino ayant rendu l’âme, je ne peux pas vous parler des boucles while. Cela dit, j’ai découvert il y a quelque temps un site qui permet d’apprendre la programmation et de s’y perfectionner sous la forme d’un jeu compétitif, leekwars.
Présentation des bases de leekwars.
Note: Même si cela pourra vous paraître relativement complexe, dites vous que je l’ai montré à un enfant de 10 ans qui à atteint un très bon niveau en 1 mois…
Dans leekwars, vous disposez d’un avatar (en l’occurrence un poireau) qui possède différentes caractéristiques de points de vie, force, magie… auquel vous devez programmer une intelligence artificielle afin qu’il combatte de manière complètement autonome d’autres avatars (gérer par d’autres joueurs) dans une arène.
Pour cela vous devrez donc écrire du code… mais ça se fera de manière très pédagogique. Tout d’abord, vous aurez avec votre premier poireau, votre code de base qui ne sera composé que de quelques lignes bien commentées.
Vous y verrez que l’on utilise une fonction setWeapon() pour s’équiper d’une arme, et que cela vous en coûtera 1 PT (le PT sont des points de tour, vous en disposez initialement de 10).
Puis vous créerez une variable nommée enemy dans laquelle vous stockerez le résultat de la fonction getNearestEnemy(). Le commentaire nous indique qu’elle nous renvoi l’ennemi le plus proche, mais vous pouvez aussi avoir plus de précision en allant consulter l’aide du jeu qui comporte une documentation sur toutes les fonctions du jeu. voici celle de la fonction nous concernant:
Alors pour le coup, nous n’avons pas beaucoup plus d’informations. Mais cette aide vous sera plus qu’utilise pour vous trouver LA fonction qui fera de votre programme THE script!
Focus sur l’aide de Leekwars.
Arrêtons nous un moment sur l’aide du jeu, passage obligatoire (et pas aussi pénible que l’on pourrait le croire) pour progresser dans le jeu , donc en programmation. Cette Aide est décomposée en quatre parties:
- La section Leek Wars vous parlera des règles du jeu. Comment fonctionne le calcul des dégats, comment se passe un tour, comment avoir plusieurs poireaux… Cette partie est au moins à survoler, mais ce n’est pas le morceau le plus intéréssant.
- La section Wiki est un wiki du jeu (surprenant non?) plutôt bien fournit. Vous pourrez allé y jeter un oeil une fois que vous serez à l’aise avec le jeu.
- La section Tutoriel LeekScript est tout simplement l’un des meilleurs cours de programmation pour débutant digne des meilleurs articles d’openclassrooms! Rien que ça. On vous y expliquera comme utiliser ce langage de programmation de façon fun et pédagogique. Si vous ne savez pas programmer, ou si vous êtes débutant, ruez vous sur cette section!
- La documentation deviendra l’un des endroits où vous passerez le plus de temps. Vous y trouverez les définitions des centaines (voir milliers) de fonctions disponibles pour le jeu.
Déroulement d’une partie.
Tester un premier combat.
L’une des première chose à faire est de tester le comportement de son poireau dans un combat sans n’avoir modifier le script de base. Pour cdela rendez vous dans le menu Potager et sélectionnez un des cinq adversaires proposés. Voici un exemple de combat (épique) auxquels vous pourrez assister au début:
Premier combat avec script de base.
Bon, j’ai gagné ce combat… Alors j’ai peut être était un peu aidé par mon adversaire qui, de toute évidence, à fait un script qui plante, mais soit. Il y a quand même des choses à constater:
- A chaque tour, je m’équipe du pistolet et cela me coute 1 PT sur mes 10. Il faudrait déjà remédiez à cela et ne m’équipant de l’arme que si je ne l’ai pas encore dans les mains.
- Puis je tire une seule fois. Tirer avec le pistolet coûte 3 PT, même en m’équipant à chaque tour de l’arme, il me reste 9 PT. Ce qui fait qu’en théorie je peux tirer trois fois. Ce sera donc la deuxième chose à améliorer.
Voila comment j’ai décidé d’améliorer le code (je ne m’étends pas sur l’explication, avec l’aide vous devriez etre capable de le comprendre):
En voila le résultat:
Combat avec le script amélioré.
Vous pouvez constater que maintenant je ne m’équipe du pistolet que la première fois, et que lorsque je peux tirer, je tire jusqu’à ce que je n’ai plus assez de PT pour cela.
Ainsi vous grimperez en niveau, et plus vous progresserez, plus vous aurez de fonctions intéressantes qui se débloquerons (en effet toutes les fonctions ne sont pas accessible au niveau 1).
Conclusion.
Bon je ne m’étalerai pas plus que cela sur cet article. Le but n’est pas d’en faire un guide avancé, mais uniquement une présentation de cet outil plutôt atypique d’initiation à la programmation, rappelons que nous voulions apprendre à programmer en jouant.
Ce site (complètement gratuit) permet d’apprendre à (bien) programmer d’une façon vraiment amusante. Et je ne vous ait pas parlé de tout comme de la possibilité d’intégrer des équipes pour faire des parties avec d’autres alliés et mettre en place des stratégies collectives pointues (ou pas). De plus la communauté est très active, les joueurs n’hésites pas à s’entraider et à conseiller les débutant, il y a des mises à jours d’équilibrage et de correction de bug régulière… Bref, un gros coup de cœur qui raviera les personnes de tout ages souhaitant apprendre à programmer en jouant.
Voila comment apprendre à programmer en jouant!
Bon jeu!
Si vous souhaitez vous exprimez par rapport à cet article, voici le lien du forum.