Derniers sujets
[Tuto Ren'Py] Les conditions (**)
Site pour apprendre à dessiner manga :: Apprendre à dessiner :: Jeux vidéos et Visual Novels :: Ren'Py :: Tutoriels
Page 1 sur 1
[Tuto Ren'Py] Les conditions (**)
Bonjour,
Commentaire
Dans ce tuto, il sera question de condition. Évidemment, je ne peux pas faire un truc qui couvre toutes les conditions possibles alors n'hésitez pas à poser des questions sur ce topic.
Connaissances requises :
- Menu lvl 1
- Dialogue lvl 1
- Variable lvl 2
A quoi ça sert ?
Cela sert à changer une partie du programme en fonction d'une variable.
A quoi ça ressemble ?
Si le joueur a un maillot de bain, il peut aller a la piscine.
Si le joueur est une joueuse, elle se fait siffler par les mecs.
etc....
*Flemme de prendre des screenshot pour ça X]*
Mais comment tu fais ça ?
Les opérateurs
A == B donne si A strictement égal à B
A != B donne si A différent de B
A >= B donne si A supérieur ou égal à B
A <= B donne si A inférieur ou égal à B
A > B donne si A strictement supérieur à B
A < B donne si A strictement inférieur à B
Il y en a d'autre (multiple, modulo...) mais ça m'étonnerais que vous les utilisiez.
Les fusions
On peut aussi fusionner des opérateurs. Par exemple si on veut "possède un maillot rouge ET un bleu", on peut faire :
(A & B) donne : A ET B
(A and B) donne la même chose
(A | B) donne : soit A, soit B, soit les deux.
(A or B) donne la meme chose
On peut en mettre plus bien sur :
(A & B & C) donne : A ET B ET C
(A | B | C) donne : A ou B ou C ou deux d'entre eux ou les trois.
Désolé, je ne sais pas faire de XOR (ou exclusif, "soit l'un, soit l'autre") alors je vais faire un truc moche qui donne le même résultat. (Sauf que c'est moche).
((A and not B) or (not A and B)) donne : Soit A, soit B.
vrai et faux
D'abord, je vais vous apprendre les mots clefs. Les plus importants sont if, elif et else car les autres peuvent être remplacés par ces 3 là, bien que cela donne un code moche. Respectivement, ces 3 mots signifient en français "Si", "Sinon si", "Sinon". Il y a aussi de très important "True" et "False" qui veulent dire ici "Oui" et "Non". Attention, la majuscule est importante. Les vrais et faux peuvent être remplacé par des A == B, A <= B etc. Mais pour faire un tuto plus simple à comprendre, je me contenterai des vrais et faux. Dans le code suivant, je vais vous apprendre à utiliser tout ça. D'abord, on initialise les variables. Là, on considère qu'au début, le joueur ou la joueuse ne possède aucun maillot. Ni bleu, ni rouge. Donc on place ces variables à "False".
Dans les menus
On peut utiliser des conditions dans les menus pour qu'un choix apparaisse ou non. Par exemple :
Autres opérateurs
Il n'y a pas que "si" & cie... OK faut que j'arrête l'apéro du matin. Il y en a d'autre que je vais aborder brièvement. Par exemple, la boucle du début peut être remplacée par un while se traduisant par "tant que". On peut done faire "tant que le joueur n'a pas de maillot, lui en proposer un". On a donc :
Code en entier
Voilà mon code en entier qui servait à vérifier que ce que je vous apprenais marchait :
Voilà, si j'ai oublié d'expliquer des trucs ou que je vais trop vite, n'hésitez pas à faire un post ici.
Voir aussi :
- Rien à mettre ici >_<
Commentaire
Dans ce tuto, il sera question de condition. Évidemment, je ne peux pas faire un truc qui couvre toutes les conditions possibles alors n'hésitez pas à poser des questions sur ce topic.
Connaissances requises :
- Menu lvl 1
- Dialogue lvl 1
- Variable lvl 2
A quoi ça sert ?
Cela sert à changer une partie du programme en fonction d'une variable.
A quoi ça ressemble ?
Si le joueur a un maillot de bain, il peut aller a la piscine.
Si le joueur est une joueuse, elle se fait siffler par les mecs.
etc....
*Flemme de prendre des screenshot pour ça X]*
Mais comment tu fais ça ?
Les opérateurs
A == B donne si A strictement égal à B
A != B donne si A différent de B
A >= B donne si A supérieur ou égal à B
A <= B donne si A inférieur ou égal à B
A > B donne si A strictement supérieur à B
A < B donne si A strictement inférieur à B
Il y en a d'autre (multiple, modulo...) mais ça m'étonnerais que vous les utilisiez.
Les fusions
On peut aussi fusionner des opérateurs. Par exemple si on veut "possède un maillot rouge ET un bleu", on peut faire :
- Code:
(maillot_bleu & maillot_rouge)
(A & B) donne : A ET B
(A and B) donne la même chose
(A | B) donne : soit A, soit B, soit les deux.
(A or B) donne la meme chose
On peut en mettre plus bien sur :
(A & B & C) donne : A ET B ET C
(A | B | C) donne : A ou B ou C ou deux d'entre eux ou les trois.
Désolé, je ne sais pas faire de XOR (ou exclusif, "soit l'un, soit l'autre") alors je vais faire un truc moche qui donne le même résultat. (Sauf que c'est moche).
((A and not B) or (not A and B)) donne : Soit A, soit B.
vrai et faux
D'abord, je vais vous apprendre les mots clefs. Les plus importants sont if, elif et else car les autres peuvent être remplacés par ces 3 là, bien que cela donne un code moche. Respectivement, ces 3 mots signifient en français "Si", "Sinon si", "Sinon". Il y a aussi de très important "True" et "False" qui veulent dire ici "Oui" et "Non". Attention, la majuscule est importante. Les vrais et faux peuvent être remplacé par des A == B, A <= B etc. Mais pour faire un tuto plus simple à comprendre, je me contenterai des vrais et faux. Dans le code suivant, je vais vous apprendre à utiliser tout ça. D'abord, on initialise les variables. Là, on considère qu'au début, le joueur ou la joueuse ne possède aucun maillot. Ni bleu, ni rouge. Donc on place ces variables à "False".
- Code:
init:
$ maillot_rouge = False
$ maillot_bleu = False
$ possede_aucun_maillot = True
- Code:
label start:
menu:
"Quel maillot acheter ?"
"Bleu":
menu:
"Acheter maillot bleu ?"
"Oui":
"J'ai acheté un maillot bleu."
$ maillot_bleu = True
$ possede_aucun_maillot = False
"Non":
"Je change d'avis"
"Rouge":
menu:
"Acheter maillot rouge ?"
"Oui":
"J'ai acheté un maillot rouge."
$ maillot_rouge = True
$ possede_aucun_maillot = False
"Non":
"Je change d'avis"
- Code:
if possede_aucun_maillot :
jump start
- Code:
if possede_aucun_maillot == True:
jump start
- Code:
"J'enfile mon maillot"
if maillot_rouge:
"Je ressemble à un poisson rouge"
elif maillot_bleu:
"Je ressemble à un requin"
else:
"Ou est mon maillot...."
- Code:
if maillot_rouge:
"Je ressemble à un poisson rouge"
if maillot_bleu:
"Je ressemble à un requin"
- Code:
if bonbon:
"Je mange un bonbon"
if sucette:
"Je mange une sucette"
Dans les menus
On peut utiliser des conditions dans les menus pour qu'un choix apparaisse ou non. Par exemple :
- Code:
menu:
"enfiler son maillot rouge"if maillot_rouge:
"j'enfile le maillot rouge."
"enfiler son maillot bleu" if maillot_bleu:
"j'enfile le maillot bleu."
Autres opérateurs
Il n'y a pas que "si" & cie... OK faut que j'arrête l'apéro du matin. Il y en a d'autre que je vais aborder brièvement. Par exemple, la boucle du début peut être remplacée par un while se traduisant par "tant que". On peut done faire "tant que le joueur n'a pas de maillot, lui en proposer un". On a donc :
- Code:
while possede_aucun_maillot:
menu:
"Quel maillot acheter ?"
"Bleu":
menu:
"Acheter maillot bleu ?"
"Oui":
"J'ai acheté un maillot bleu."
$ maillot_bleu = True
$ possede_aucun_maillot = False
"Non":
"Je change d'avis"
"Rouge":
menu:
"Acheter maillot rouge ?"
"Oui":
"J'ai acheté un maillot rouge."
$ maillot_rouge = True
$ possede_aucun_maillot = False
"Non":
"Je change d'avis"
Code en entier
Voilà mon code en entier qui servait à vérifier que ce que je vous apprenais marchait :
- Code:
init:
$ maillot_rouge = False
$ maillot_bleu =False
$ possede_aucun_maillot = True
label start:
while possede_aucun_maillot:
menu:
"Quel maillot acheter ?"
"Bleu":
menu:
"Acheter maillot bleu ?"
"Oui":
"J'ai acheté un maillot bleu."
$ maillot_bleu = True
$ possede_aucun_maillot = False
"Non":
"Je change d'avis"
"Rouge":
menu:
"Acheter maillot bleu ?"
"Oui":
"J'ai acheté un maillot rouge."
$ maillot_rouge = True
$ possede_aucun_maillot = False
"Non":
"Je change d'avis"
menu:
"enfiler son maillot rouge"if maillot_rouge:
"j'enfile le maillot rouge."
"enfiler son maillot bleu" if maillot_bleu:
"j'enfile le maillot bleu."
"J'enfile mon maillot"
if maillot_rouge:
"Je ressemble à un poisson rouge"
elif maillot_bleu:
"Je ressemble à un requin"
else:
"Ou est mon maillot...."
return
Voilà, si j'ai oublié d'expliquer des trucs ou que je vais trop vite, n'hésitez pas à faire un post ici.
Voir aussi :
- Rien à mettre ici >_<
Dernière édition par Ryouzanki le Dim 27 Mai 2012 - 19:23, édité 3 fois
Ryouzanki- Maître
- Messages : 1008
Age : 33
Re: [Tuto Ren'Py] Les conditions (**)
Euh, je crois que while introduit une bouche, pas une condition x)
Anyway, sais tu que ton joueur se fait arnaquer ? Même en choisissant un maillot rouge, il reçoit un maillot bleu x) (Nah je rigole, les variables sont toues bien réglé, mais tu as copié/collé les codes dans le premier menu, du coup, tu as laissé bleu à la place de rouge xD)
Sinon, on peut se débarrasser de la variable possede_aucun_maillot en mettant comme condition de boucle : while maillot rouge == False AND maillot_bleu == false : # (Y a une syntaxe pour dire ça sans mettre les ==False non ?)
Anyway, sais tu que ton joueur se fait arnaquer ? Même en choisissant un maillot rouge, il reçoit un maillot bleu x) (Nah je rigole, les variables sont toues bien réglé, mais tu as copié/collé les codes dans le premier menu, du coup, tu as laissé bleu à la place de rouge xD)
Sinon, on peut se débarrasser de la variable possede_aucun_maillot en mettant comme condition de boucle : while maillot rouge == False AND maillot_bleu == false : # (Y a une syntaxe pour dire ça sans mettre les ==False non ?)
Invité- Invité
Re: [Tuto Ren'Py] Les conditions (**)
Pour le while, on entre dans une boucle qui ne se rompt que lorsque le joueur achète un maillot. Je ne vois pas le problème.
Pour la faute du Copier-Coller, bien joué, je n'y ai pas fait attention. C'est corrigé. Je me suis aussi permis d'ajouter une sous-section sur les fusions, même si je ne trouve pas ça capital.
Se débarrasser de la variable possede_aucun_maillot implique que le code devienne moche et pas pratique. Comme tu dis, je peux, effectivement le faire en remplaçant par : while (not maillot_rouge and not maillot_bleu) mais c'est vraiment pas très parlant ni pratique. Exemple, si je veux rajouter un maillot vert, il se passe quoi ? Il va falloir modifier ta condition. Et en plus, si je rajoute les maillots jaune, orange, mauve, blanc, noir... Tu vas faire quoi ? Tu vas vraiment faire le truc moche ci dessous ? Trolololol !!!
while maillot rouge == False AND maillot_bleu == false AND maillot_vert == false AND maillot_jaune == false AND maillot_orange == false AND maillot_mauve == false AND maillot_blanc == false AND maillot_noir == false
Pour la faute du Copier-Coller, bien joué, je n'y ai pas fait attention. C'est corrigé. Je me suis aussi permis d'ajouter une sous-section sur les fusions, même si je ne trouve pas ça capital.
Se débarrasser de la variable possede_aucun_maillot implique que le code devienne moche et pas pratique. Comme tu dis, je peux, effectivement le faire en remplaçant par : while (not maillot_rouge and not maillot_bleu) mais c'est vraiment pas très parlant ni pratique. Exemple, si je veux rajouter un maillot vert, il se passe quoi ? Il va falloir modifier ta condition. Et en plus, si je rajoute les maillots jaune, orange, mauve, blanc, noir... Tu vas faire quoi ? Tu vas vraiment faire le truc moche ci dessous ? Trolololol !!!
while maillot rouge == False AND maillot_bleu == false AND maillot_vert == false AND maillot_jaune == false AND maillot_orange == false AND maillot_mauve == false AND maillot_blanc == false AND maillot_noir == false
Ryouzanki- Maître
- Messages : 1008
Age : 33
Re: [Tuto Ren'Py] Les conditions (**)
T'es méchant é__è
En même temps, pourquoi tant de maillots xD
Bon okay, je m'incline =3
Juste un truc qui me rends perplexe : C'est normal d'introduire les opérateurs et la fusion avant même de parler de la syntaxe de la condition ? Parce que là, quand on sait pas la syntaxe, il est difficile de comprendre à quoi ils servent *-*
En même temps, pourquoi tant de maillots xD
Bon okay, je m'incline =3
Juste un truc qui me rends perplexe : C'est normal d'introduire les opérateurs et la fusion avant même de parler de la syntaxe de la condition ? Parce que là, quand on sait pas la syntaxe, il est difficile de comprendre à quoi ils servent *-*
Invité- Invité
Re: [Tuto Ren'Py] Les conditions (**)
Je donne le matériel brut, puis je montre comment l'utiliser.
Ryouzanki- Maître
- Messages : 1008
Age : 33
Sujets similaires
» [Tuto Ren'Py] Les menus lvl 1 (*)
» [Tuto Ren'Py] Les variables lvl 1 (*)
» [Tuto Ren'Py] Les menus lvl 2 (**)
» [Tuto Ren'Py] Et si on installait Ren'Py ?
» [Tuto Ren'Py] Les dialogues (*)
» [Tuto Ren'Py] Les variables lvl 1 (*)
» [Tuto Ren'Py] Les menus lvl 2 (**)
» [Tuto Ren'Py] Et si on installait Ren'Py ?
» [Tuto Ren'Py] Les dialogues (*)
Site pour apprendre à dessiner manga :: Apprendre à dessiner :: Jeux vidéos et Visual Novels :: Ren'Py :: Tutoriels
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
Jeu 27 Aoû 2015 - 15:50 par Méréthide
» [Aide] voici toutes les aides que j'ai trouver pour le corps humain, mains pied.....
Jeu 27 Aoû 2015 - 15:29 par Blu
» SEKAI TOURNOI - DUEL 3 les oeuvres
Jeu 27 Aoû 2015 - 15:22 par TheGreatestTitan
» Une idée d'histoire (besoin d'avis)
Mer 26 Aoû 2015 - 14:53 par lidairui
» Pause de l'été !
Lun 24 Aoû 2015 - 21:34 par Fire Ball
» Tablette Graphique Wacom Latence, Bug sur Gimp v.2.8.14
Lun 24 Aoû 2015 - 17:37 par Asuka-ETS
» SEKAI TOURNOI - Résultats et thèmes du DUEL 3
Ven 21 Aoû 2015 - 20:50 par Alyss
» SEKAI TOURNOI - DUEL 2 Les oeuvres *^*
Jeu 20 Aoû 2015 - 13:28 par miyakisan
» League of Legend
Lun 17 Aoû 2015 - 23:51 par Ryouzanki
» mauvaise nouvelle et bonne nouvelle pour les fan de monster hunter
Dim 16 Aoû 2015 - 21:25 par Atiliyah
» Appel à la création : Création d'une nouvelle ban pour le fow !
Sam 15 Aoû 2015 - 11:59 par Méréthide
» SEKAI TOURNOI - Résultats et thèmes du DUEL 2
Sam 8 Aoû 2015 - 21:25 par miyakisan
» Concours d'été - Juillet/Août [2015] - Matsuri -
Sam 8 Aoû 2015 - 3:42 par ashiiko
» SEKAI TOURNOI - DUEL 1 Les oeuvres *^*
Ven 7 Aoû 2015 - 8:03 par G
» varier l'épaisseur du trait - gimp
Lun 3 Aoû 2015 - 20:56 par Fire Ball