Oniromancie: Tutoriels - Mini jeu de réflexion avec IA en événement


Comment ça marche?

Aëdemphia
Par Sylvanor

Fighting Robots Quest
Par Boulon

Forstale
Par Ødd Clock

Geex
Par roys

Inexistence
Par Falco

La Légende d'Ibabou
Par Zaitan

Lije
Par Gaetz

LoveMaster
Par Cuddlefox

Sarcia
Par Kaëlar

Super Mario RPG - Lost Souls
Par Omegabowser

News: Concours des Alex d'Or 2017-18: (...) / News: MegaMaker : créez votre propre (...) / News: Test de Tinker Quarry / Sorties: Leave the Room / Jeux: Leave the Room /

Chat  (20 connectés)

Bienvenue
visiteur !








Statistiques

Liste des
membres


Contact

81 connectés actuellement

9176622 visiteurs
depuis l'ouverture

887 visiteurs
aujourd'hui

Groupe Facebook

Barre de séparation

Partenaires




TOP
GAMEMAKING


Les 5 plus
visités

Lunae, le baz'arts d'Emz0

Le studio du chat vert

Pixelandgame

Tashiroworld

HeyMakeGames

Au hasard

Yasei Ookami

CrazyCollec RPG Maker

RPG Maker VX Communauté

Les deux derniers

Lunae, le baz'arts d'Emz0

Le studio du chat vert

Nos autres partenaires

Devenir
partenaire


Barre de séparation

Un site du réseau
War Paradise

Annuaires référenceurs





Mini jeu de réflexion avec IA en événement
Ecrit par Larcange(ls)

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 Introduction
- II Système & principe
- III La programmation en event
- IV Conclusion


I Description

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, 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...).
Ce jeu a aussi été 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 craie déposé sur une table. Chaque joueur devaient tours à tours retirer 1 à 3 craies.
Le joueur retirant la dernière craie a perdu!
Et bien oui, vous allez pouvoir recréer ce jeu dans votre RPG sous RPG MAKER VX!
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!


II Système & 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 craie est 3.
Ainsi, S'il reste 4 craie 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, quelques soit, si c'est votre tour, et qu'il reste 2,3, ou 4 craie, vous pouvez gagner à tous les coups...
Mais comment arriver à ces nombres de craies...
Et bien on fait pareil pour les coups suivant:
Pour 5 craies, peu importe combien de craies vous retirez, vous avez perdu:
en effet, si vous retirer 1 craie, votre adversaire en retirera 3 vous laissant une seule craie...
Si 2, votre adversaire en retirera 2, vous laissant la 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 retire de craie, 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 craie 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 est 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 joueur de joueur 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:


Portion de code:



1-5-9-13-17-21-25-29-33-37... etc



Mais comment fait-on si le nombre de craie du départ est un de ces nombres ?
En effet, si imaginons que dès le début vous commenciez avec 5 craies, cela voudrez dire que vous avez perdu d'office.
Mais rassurez-vous, dans le mini-jeu, le joueur peut choisir qui commence, laissant ainsi dans cet exemple l'obligation de perdre à moins que vous ne jouiez de manière très... simplette si je ne m'abuse... --'

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!

III La programmation en event

Bon prêt à créer ce petit-mini-jeu?!

Nombre d'événement: 1
Nombre de page de l'événement: 1
Nombre de variables utilisées: 2
Nombre d'interrupteurs utilisés: 0

Tout d'abord, ouvrez votre projet, et sélectionnez la mappe où vous voulez-placer le mini-jeu.
Ensuite, créez un événement (double-cliquez sur une case de la mappe).
Mettez-lui l'apparence que vous voulez, les déplacements etc...
Ca n'aura aucune affectation sur le déroulement du mini-jeu.
On commence par y mettre un petit message de bienvenue:


Portion de code:



Message: Bonjour! Voulez-vous jouer à notre mini-jeu?!


On propose un choix:


Portion de code:



Choix : 
- Oui
- Non (choix si annulation)



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 qu'elle nom!
Ainsi, on modifie la variable pion:


Portion de code:



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 de départ.

Maintenant, on affiche pour le joueurs combien de pions il y a et la demande si le joueur souhaite commencer ou non.
Pour cela, on affiche un message:


Portion de code:



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:


Portion de code:



choix: 
- Oui
- Non (choix si annulation)




La, ça va commencer à devenir intéressant...
Dans le non, mettre un


Portion de code:



Aller à une étiquette


et y mettre 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é 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 :


Portion de code:



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:


Portion de code:



Combien voulez-vous enlever de pions? (\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 pions dans ce cas là un seul choix.
Ainsi, on pose une première condition:


Portion de code:



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:


Portion de code:



condition: Si pion <= (inférieure ou égale à) 0:
message: Vous avez perdu!
Aller à l'étiquette fin
fin de la condition



Ensuite, on remet le nombre de pions qu'il reste:


Portion de code:



message: Il reste \V[NUMERODELAVARIABLEPION] 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 pion qu'il reste.
Ensuite, on soustrait 1 à la variable calc. Ca donne:


Portion de code:



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 essentiellement utilisé en trigonométrie (domaine de géométrie pour ceux qui ne savent pas à quoi cela correspond).
En gros, cela reviens à 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:


Portion de code:



variable: calc %= 4



Ce simple modulo est en fait l'IA du mini-jeu, c'est ici que l'ordinateur calcule combien de pion il doit enlever.


Portion de code:



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:


Portion de code:



pion: soustraire variable calc


Maintenant, vous mettez combien l'ordinateur a enlevé de pion:


Portion de code:



message: L'ordinateur a retiré \V[NUMEROVARIABLECALC] pions!



On regarde maintenant si le joueur a gagné:


Portion de code:



condition: Si pions <= (inférieure ou égale à) 0
message: Félécitation 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 gagnez, 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 des screenshots de l'événement pour ceux qui ont du mal avec toutes ces conditions et ces choix:

image


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!!


Certere - posté le 27/02/2010 à 09:36:26. (105 messages postés)

Mince, moi qui pensé être le seul à faire un jeu "Mini-Jeu" ... :F


nuparu1997 - posté le 27/02/2010 à 10:05:13. (222 messages postés)

Est-ce qu'on peut avoir une image ? Et non tu n'es pas le seul a faire des mini-jeu !


MB097 - posté le 27/02/2010 à 18:10:18. (471 messages postés)

Sbibitatabi... Bonjour!!

Bon tuto =)

Ma galerie =) http://www.rpg-maker.fr/index.php?page=gallerie&auteur=15373


Larcange(ls) - posté le 28/02/2010 à 00:17:44. (763 messages postés)

Merci! Pour le screen, c'est pas nécessaire vu qu'a part des boîtes de dialogues, y'a pas grand chose à montrer! Le but de se mini-jeu réside du fait qu'il y a une IA, dur de screener une IA!

You know, there still place for people like us, The same blood runs, in every hands, You see, it's not the wings that make the angel.


zouglou - posté le 28/02/2010 à 14:00:11. (2197 messages postés)

Le mieux est de faire ça avec des images c'est pas plus compliqué mais c'est bien plus claire.


Larcange(ls) - posté le 01/03/2010 à 22:25:47. (763 messages postés)

C'est à dire avec des images? Comme j'ai fais à la fin de mon tuto avec les images de l'événement ou du jeu? Car comme je l'ai dis, mettre des screens d'une boites de dialogues "il y a X pions. Combien en retirer" et "J2 retire X pions", "vous avez perdu/gagné", y a pas grand intérêt de screener Uu.
Ce qui est juste marrant, c'est le casse tête qu'il peut présenter...

You know, there still place for people like us, The same blood runs, in every hands, You see, it's not the wings that make the angel.


Looneya - posté le 05/08/2010 à 18:23:53. (4 messages postés)

Bonjour!

J'ai un soucis avec la procédure, je pense que je fais quelque chose de travers...
En fait dans le jeu, ca se résume à:
-Il y a 20 pions (j'ai mis 20 pions en valeur fixe et pas en variable)
-Combien voulez-vous en enlever? > 1/2/3
-3
-Il reste 17 pions
-J2 enlève 1 pion
-Combien voulez-vous en enlever > ET LA CHOIX 1 ou 2 seulement
-Vous avez perdu!

-_-'

J'ai recopié le code à la virgule près pourtant je ne comprend pas trop pourquoi ça ne veux pas fonctionner...
J'utilise RPGM VX pour info,

Les informations que je donne sont vagues mais quelqu'un aurait une idée de l'endroit où ça foire à tout hasard svp?

J'ai l'impression qu'en fait le "reste" est mal calculé
Pourtant ma ligne dit bien
Opération: variable [2:calc] %=4
comme dans le tuto,
Mais je ne comprend pas trop pourquoi il faut mettre 4 ni comment ça fonctionne en fait ><

Merci d'avance pour votre aide!
:-)


Alzaikmerra - posté le 21/10/2012 à 01:36:04. (32 messages postés)

Bouhouhou ignoble ce jeu :'( Des heures que je joue et je gagne pas :rit2 Bravo en tout cas pour le tuto!

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe

Plan du site:

Activité: Accueil | News | Forum | Flash-news | Chat | Commentaires | Galerie | Screen de la semaine | Sorties | Articles perso | Livre d'or | Recherche
Jeux: Index jeux séparés | Top Classiques | Top Originaux | Les autres | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Jeux complets | Proposer
Rubriques: Le Wiki | Collection Oniro | Tutoriaux | Scripts | Guides | Gaming-Live | Tests | Making-of | Interviews | Articles perso | OST | L'Annuaire | Divers | Palmarès
Hébergés: Aëdemphia | Fighting Robots Quest | Forstale | Geex | Inexistence | La Légende d'Ibabou | Lije | LoveMaster | Sarcia | Super Mario RPG - Lost Souls
Ressources: Jeux | Programmes | Packs de ressources | Midis | Eléments séparés | Sprites
RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis