❤ 0 Bon et bien, tout d'abord, bonjour!
Le but de ce tutoriel est de faire un mini-jeu de réflexion assez connu mais plutôt sympa dans un RPG, surtout que tant que le joueur n'aura pas compris qu'il y a une astuce, l'ordinateur gagnera à tous les coups!
Ce mini-jeu est donc doté d'une mini IA (Intelligence Artificielle), tout ça en un seul événement!
Le niveau de ce tutoriel est de type débutant/initié.
Je tiens à préciser que ce système et ce tutoriel est donc de moi de A à Z!
Sommaire
- I Système & principe
- II La programmation en event
Tout d'abord, pourquoi un mini-jeu ?
Eh bien, un mini-jeu, ça permet de rendre un jeu plus gai, de donner une durée de vie de celui-ci plus élevée,... etc. Le mini-jeu que je vous propose ici sera donc plutôt sympa pour votre ou vos projets, puisqu'il s'agit d'un petit jeu sous forme détournée d'un casse-tête, laissant donc le joueur un petit moment à s'acharner sur ce mini-jeu...
Mais quel est donc ce jeu...
Ce jeu est connu dans certains RPG comme les premiers Tales Of (je ne parle pas des Tales of Symphonia ou autre, je parle de ceux bien avant sur les consoles SNES et autre...), ou vu dans le jeu télévisé Fort-Boyard. En effet, vous vous rappelez le jeu des craies ou les maîtres du jeu défiez les invités du fort afin de gagner du temps dans la salle du trésor ?
Ainsi, il y avait un certain nombre de craies déposées sur une table. Chaque joueur devait tour à tour retirer 1 à 3 craies, et le joueur retirant la dernière craie perd.
Sachez que ce mini-jeu été utilisé au moyen-âge par des saltimbanques afin de gagner de l'argent et donc d'escroquer les bourgeois et autres... Il y a donc une astuce afin de gagner à tous les coups, cette astuce étant basée sur les mathématiques... Vous n'aimez pas les mathématiques ? Ne vous inquiétez pas, il vous suffira juste de connaître votre table de multiplication de 4 !
Ainsi, nous allons voir ci-dessous quelle est cette astuce et comment fonctionne-t-elle!
I- Système et principe
Le but étant de laisser une seule craie à l'adversaire, prenons un raisonnement mathématique.
Le nombre maximum que l'on peut retirer de craies est 3. Ainsi, s'il reste 4 craies et que c'est à vous de retirer des craies, il vous faudra en retirer 3. S'il en reste 3, il faudra en retirer 2, et pour 1, il faudra en retirer 1. Ainsi, si c'est votre tour, et qu'il reste 2, 3, ou 4 craies, vous pouvez gagner à tous les coups...
Mais comment arriver à ces nombres de craies...
Pour 5 craies, peu importe combien de craies vous retirez, vous avez perdu : en effet, si vous retirez 1 craie, votre adversaire en retirera 3 vous laissant une seule craie...
Si 2, votre adversaire en retirera 2, vous laissant là encore 1 seule craie, et idem si vous retirez 3 craies... En revanche, pour 6, si vous retirez 1 craie, donc que vous laissiez 5 craies à l'ordinateur, peu importe combien l'adversaire retire de craies, il vous restera toujours 2,3 ou 4 craie à retirer, vous laissant ainsi la possibilité de laisser une seule craie à l'ordinateur comme vu précédemment avec 2,3 et 4 craies... Et on remonte comme ça jusqu'au nombre de craies maximum qu'il y a. On remarque ainsi que le but est en fait de laisser à l'ordinateur un nombre de craie étant un multiple de 4 et d'y ajouter un (Exemple: pour 5 = 4 * 1 + 1.). Ainsi, le joueur ne pouvant retirer plus de 3 craies ne peut vous laisser qu'une seule craie. Ainsi, vous retirez après que l'ordinateur ait joué, le complément par rapport à 4 (ex, s'il retire 1 pion, vous en retirez 3, si 2, vous en retirez 2, et si 1, vous en retirez 3).
Reprenons l'exemple de 5 : C'est au joueur de jouer et il y a 5 craies. S'il retire 1 craie, vous en retirez 3 et lorsqu'il rejouera, il n'aura plus qu'une seule craie le faisant ainsi perdre... idem pour 2 et 3. Ainsi, si on remonte, le but étant de retirer autant de craies afin de laisser autant de craies que le nombre le plus proche de la liste suivante au début du tour de l'adversaire : 1-5-9-13-17-21-25-29-33-37... etc.
Mais comment fait-on si le nombre de craies au départ est un de ces nombres ?
En effet, imaginons que dès le début vous commenciez avec 5 craies, cela voudrait dire que vous avez perdu d'office.
Mais rassurez-vous, dans le mini-jeu, le joueur peut choisir qui commence, laissant ainsi au joueur le choix s'il connaît les subtilités du jeu.
Enfin voilà la petite astuce, maintenant, vous pourrez piéger tous ceux qui ne connaissent pas cette petite astuce... Après tout ce blabla, passons maintenant à la création du mini-jeu !
II- La programmation en event
Bon prêt à créer ce petit-mini-jeu ?!
Il vous faudra :
- 1 événement
- 2 variables
Tout d'abord, ouvrez votre projet, et sélectionnez la carte où vous voulez-placer le mini-jeu. Ensuite, créez un événement (double-cliquez sur une case de la map). Mettez-lui l'apparence que vous voulez, les déplacements etc... Ca n'aura aucune conséquence sur le déroulement du mini-jeu.
On commence par y mettre un petit message de bienvenue où on demande au joueur s'il veut jouer.
Ensuite on lui donne le choix (oui ou non).
Maintenant, tout le mini-jeu sera contenu dans la partie du choix : "Oui" :
Prenez 2 variables aux choix, ici nous appellerons la première variable utilisée pion et la deuxième calc. Vous pouvez utiliser n'importe quelle variable et leur donner n'importe quel nom.
On modifie la variable pion :
Citation: Remplacement variable pion: nombre aléatoire de 15 à 30 |
Vous pouvez mettre de 5 à n'importe quel nombre mais pas trop non-plus ! C'est ici qu'on détermine le nombre de pions (les craies) de départ.
Maintenant, on affiche pour le joueur combien de pions il y a et la demande si le joueur souhaite commencer ou non.
Pour cela, on affiche un message:
Citation: message: Il y a \V[NUMERODELAVARIABLE] pions.
Voulez-vous commencer ? |
Mettre le numéro de votre variable correspondante à la variable pion entre les crochets dans le message.
Proposer ensuite le choix si le joueur commence ou non.
Là, ça va commencer à devenir intéressant...
Sous le non, insérez la commande Aller à une étiquette et mettez-y J2 (page 1 dans la liste des commandes des événements).
En fait, une étiquette, ça sert à faire un saut dans un événement, c'est à dire que si vous avez une étiquette tout au début de l'événement et que vous avez mis une commande tout en bas de l'événement afin de sauter vers l'étiquette du début, toutes les commandes situées en dessous de la commande pour le saut vers l'étiquette ne seront pas exécutées et la lecture repartira à partir de là ou l'étiquette a été posée, c'est à dire au début.
Une étiquette peut aussi être placée à la fin de l'événement et un saut vers celle-ci au début, comme c'est le cas dans cet événement.
Ne vous inquiétez pas, l'étiquette J2 sera placée plus tard dans l'événement.
Revenons donc à la programmation !
Dans le choix, on a dit que pour le non, on mettait le saut vers l'étiquette J2. Pour le choix Oui, on ne met rien à l'intérieur.
Ca donne donc :
Citation: Choix:
- Oui
- Non
Aller à l'étiquette J2
fin du choix |
Maintenant, on place une étiquette que l'on nommera J1. Attention, la commande utilisée ici n'est pas la commande ALLER A L'ETIQUETTE mais PLACER UNE ETIQUETTE ! Cette étiquette désigne le tour du joueur, donc lorsque l'ordinateur aura joué son tour, on reviendra au tour du joueur grâce à la commande "aller à l'étiquette J1".
On place maintenant le message :
Citation: Combien voulez-vous enlever de pions?
Il y en a actuellement \V[NUMERODELAVARIABLE]. |
Comme ça, le joueur aura le nombre de pions qu'il reste.
Après, on met 3 conditions selon les 3 cas possibles : Soit il reste 3 ou plus pions, dans ce cas on propose les 3 choix au joueurs, soit il reste seulement 2 pions, donc plus que 2 choix, ou encore plus qu'un seul pion et dans ce cas là un seul choix. Ainsi, on pose une première condition :
Citation: si la variable pion est >= (supérieure ou égale à) 3
choix: - 1
variable pions: soustraire 1
- 2
variable pions: soustraire 2
- 3
variable pions: soustraire 3
- Quitter le jeu
aller à l'étiquette fin
fin du choix
sinon
si la variable pion est == (égale à) 2
choix: - 1
variable pions: soustraire 1
- 2
variable pions: soustraire 2
- Quitter le jeu
aller à l'étiquette fin
fin du choix
sinon
choix: - 1
variable pions: soustraire 1
- Quitter le jeu
aller à l'étiquette fin
fin du choix
fin du si1
fin du si2 |
Cela permet donc d'avoir les 3 cas possibles, que le joueur ne puisse pas retirer 3 pions alors qu'il n'en reste que 2...
Maintenant, on regarde si le joueur a perdu :
Citation: condition: Si pion <= (inférieure ou égale à) 0:
message: Vous avez perdu !
Aller à l'étiquette fin
fin de la condition |
Ensuite, on remet un message pour renseigner le nombre de pions qu'il reste, en réutilisant la balise \v[id] avec le numéro de notre variable pour les pions.
On arrive enfin à la phase de l'ordinateur, la phase de l'intelligence artificielle...
On commence par mettre l'étiquette J2 et on rend notre deuxième variable calc égale au nombre de pions qu'il reste.
Ensuite, on soustrait 1 à la variable calc. Ca donne :
Citation: calc : remplacement variable pion
calc -= 1 |
On met ensuite un modulo. C'est ici que l'IA est programmée.
Modulo ?! C'est quoi cette petite bébéte !
Un modulo, c'est l'action mathématique cyclique de soustraction afin d'arriver à un résultat le plus petit possible. Le modulo est essentiellement utilisé en trigonométrie (domaine de géométrie pour ceux qui ne savent pas à quoi cela correspond). En gros, cela revient à soustraire à un certain nombre A à un autre B jusqu'à ce que si l'on soustrait à nouveau A, on obtienne B négatif.
Exemple: On a le nombre 7, On souhaite 7 modulo 4.
7 - 4 = 3.
3 - 4 = - 1.
Ainsi, 7 modulo 4 (qui s'écrit 7[4]) est égal à 3.
Mais comment on met cette commande modulo ?! Cette commande se trouve dans la commande de gestion de variable, et qui est appelée Reste sur VX ou modulo sur XP au niveau des opérateurs (remplacement, multiplier, additionner...etc).
Ainsi, on va chercher à faire modulo 4 à la variable calc, ce qui nous donne :
Citation:
Ce simple modulo est en fait l'IA du mini-jeu, c'est ici que l'ordinateur calcule combien de pions il doit enlever.
Citation: condition: Si calc == 0
Si pion ==1
calc:= 1 (calc := 1)
sinon
calc: remplacement valeur aléatoire entre 1 et 3.
finsi1
finsi2 |
Ce code juste après le modulo, c'est les calculs qui finissent de calculer combien l'ordinateur doit retirer de pions.
Maintenant, on retire les pions du nombre total de pions:
Citation: pion: soustraire variable calc |
Maintenant, vous mettez combien l'ordinateur a enlevé de pions :
Citation: message: L'ordinateur a retiré \V[NUMEROVARIABLECALC] pions ! |
On regarde maintenant si le joueur a gagné :
Citation: condition: Si pions <= (inférieure ou égale à) 0
message: Félicitations, vous avez gagné !!
aller à l'etiquette fin
fin de la condition |
Vous mettez dans la condition avant le "aller à l'étiquette fin" ce que vous voulez si le joueur gagne, par exemple, un gain d'objet ou autre... etc
Vous mettez maintenant un saut vers l'étiquette J1 (aller à l'étiquette)
Et voilà on a enfin fini avec l'IA !
Il reste maintenant plus qu'à mettre tout en bas de l'événement, après le non du tout premier choix "(voulez-vous jouer au mini-jeu" => Non)
Placer une étiquette fin
et un message du style "Au revoir !"
Ca y est, on l'a fait ! Un peu long, mais voilà, le mini-jeu fait partie de votre rpg ! Voici une image du code dans l'événement :
Spoiler (cliquez pour afficher)
IV Conclusion
Bref, ce jeu est doté d'une petite IA, et fait donc de ce mini-jeu un réel casse-tête pour le joueur.
La limite de ce mini-jeu étant que, lorsque le joueur a compris la technique, le jeu devient sans intérêt pour lui... Je vous conseille donc de faire des seuils de difficulté, ajouter des petits systèmes...etc
Voilà voilà ! Sur ce, bon making !!
|