Night.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker

RM 95
RM 2000/2003
RM XP
RM VX/VX Ace
RM MV/MZ

Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Sorties: Dread Mac Farlane - episode 7 / Jeux: Ce qui vit Dessous / News: Quoi de neuf sur Oniromancie (...) / Sorties: Dread Mac Farlane - episode 6 / News: Quoi de neuf sur Oniromancie (...) / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

278 connectés actuellement

29353515 visiteurs
depuis l'ouverture

8739 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Level Up!

Leo-Games

Guelnika & E-magination

RPG Maker Détente

Tous nos partenaires

Devenir
partenaire



Mini jeu de réflexion avec IA en événement

Ce tutoriel vous permettras de créer un mini-jeu de réflexion en événement qui se transformera en véritable casse-tête (mais pas trop !) pour le joueur !

Ecrit par Larcange(ls) le 26/02/2010


❤ 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:

variable: calc %= 4


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



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

❤ 0

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)

❤ 0

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)

❤ 0

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)

❤ 0

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)

❤ 0

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)

❤ 0

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)

❤ 0

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)

❤ 0

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

athx

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 - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers