Comment traiter les entrées conditionnellement dans un jeu d'aventure?

Nous allons examiner un mécanisme simple pour faire perdre au joueur des points de vie après chaque coup en raison de la faim. Je veux que le joueur ne perde de la santé que s’il a effectué un coup valide - c’est-à-dire que le jeu ne devrait imposer aucune pénalité pour avoir mal tapé une commande par inadvertance.

Dans notre fonction PROC_executeCommand (), j'ai ajouté une nouvelle variable locale - ok%. Cela commence chaque boucle avec la valeur TRUE, mais est défini sur false chaque fois que la commande de l'utilisateur n'est pas valide.

Vous ne devriez perdre la santé que si vous avez tapé une commande valide.

Le joueur perd de la santé si la valeur de ok% est TRUE à la fin de la procédure.

Ici, j'ai ajouté une clause "sinon" à la déclaration de cas principale qui attrape le cas où l'entrée du joueur n'a aucun sens. En outre, notez que la santé du joueur est diminuée de un si le joueur a fait une entrée OK.
Tester le programme. Notez que la santé diminue lorsque le joueur effectue un coup valide.
La prochaine fois: créer des objets avec lesquels le joueur peut interagir.

Le code source complet suit:

REM un jeu d'aventure dans BB4W
REM par Mr Street

REM version 1.0.0.1 installer le monde
REM version 1.0.0.2 en mouvement dans le monde
REM version 1.0.0.3 corrigeant pour que vous ne puissiez pas sortir de la grille
REM - version alternative -
REM version 1.0.0.4 faisant perdre la santé à chaque tour à cause de la faim

REM mettons en place un "monde"
TAILLE% = 3
DIM World $ (SIZE%, SIZE%): REM crée une grille 3x3
REM "remplit" maintenant la grille avec quelques noms d'espaces
PROC _populateWorld
REM maintenant quelques données sur notre joueur
Position de départ du joueur REM
x% = 2
y% = 2
La santé du joueur REM
santé% = 50


DEF PROC _main
Commande LOCAL $: entrée de l'utilisateur REM
REM le programme principal
REM répéter jusqu'à ce que le joueur est mort
RÉPÉTER
REM montre la position actuelle du joueur
PROC _showCurrent
REM obtenir des commentaires du joueur
INPUT "Et maintenant?>" Commande $
REM traiter avec l'entrée de l'utilisateur
PROC _executeCommand (commande $)
JUSQU'À la santé%
ENDPROC

DEF PROC _executeCommand (commande $)
REM traite avec l'entrée des utilisateurs
LOCAL com $, gridError $
LOCAL ok%: la variable REM maintient VRAI / FAUX si les entrées du joueur étaient acceptables
gr> "Vous ne pouvez pas aller dans cette direction!" : REM un message pour quand vous quittez la grille
com $ = FN _convlc (commande $): REM est converti en minuscule pour faciliter les choses
ok% = TRUE: REM considère que la saisie de l'utilisateur est logique
CAS VRAI DE
QUAND com $ = "n" OU com $ = "nord"
SI y% ALORS
y% + = 1
AUTRE
IMPRIMER grilleErreur $
ok% = FALSE
FIN SI

QUAND com $ = "s" OU com $ = "sud"
SI y%> 1 ALORS
y% - = 1
AUTRE
IMPRIMER grilleErreur $
ok% = FALSE
FIN SI

QUAND com $ = "e" OU com $ = "est"
SI x% ALORS
x% + = 1
AUTRE
IMPRIMER grilleErreur $
ok% = FALSE
FIN SI

QUAND com $ = "w" OU com $ = "ouest"
SI x%> 1 ALORS
x% - = 1
AUTRE
IMPRIMER grilleErreur $
ok% = FALSE
FIN SI

AUTREMENT
IMPRIMER "Je ne te comprends pas!"
ok% = FALSE

REM si les commentaires de l'utilisateur étaient acceptables, alors ils ont
REM a fait un tour et devrait perdre un point de vie
SI ok% ALORS
santé% - = 1
FIN SI


DEF PROC _showCurrent
IMPRIMER "Vous êtes au:" Monde $ (x%, y%)
IMPRIMER "Votre santé est:" STR $ (santé%)
ENDPROC

DEF FN _convlc (A $)
REM se transforme en minuscule
SYS "CharLowerBuff",! ^ A $, LEN (A $)
= A $


DEF PROC _populateWorld
REM met quelques noms des espaces dans le monde
LOCAL x%, y%
REM commence avec la première rangée
POUR y% = 1 TO SIZE%
FOR x% = 1 TO SIZE%
LIRE World $ (x%, y%)
SUIVANT
SUIVANT
ENDPROC
:
REM les données pour notre grille 3x3
DONNÉES "Collines", "Montagnes", "Forêt"
DONNÉES "Château", "Village", "Champs"
DONNÉES "Bois", "Marais", "Lac"

2 réponses 2

PROBLÈME IMMÉDIAT

En programmation structurée formelle, vous devriez gérer cela avec le test que Keatinge vous a donné:

. et le reste du programme serait mis en retrait pour le rendre tout la "vraie" branche de la si. Dans le monde pratique, je ferais ceci avec la logique inverse: si l'utilisateur dit "non", alors terminez le programme:

Problèmes plus importants

Code d'apprentissage

Vous vous aiderez beaucoup si vous lisez votre matériel pédagogique ou un tutoriel Python pour apprendre ces choses. Vraiment. Stack Overflow n’est pas un site de tutoriel, vous devrait être capable de rechercher les bases de votre propre chef. Également vraiment ne veulent pas attendre que nous répondions à de petites questions mécaniques.

Concevoir votre programme

Utilisez les outils descriptifs qui vous conviennent: organigramme, story-board, tout ce qui peut vous aider à déterminer ce qui se passe dans quel ordre et quelles informations vous devez conserver (variables). Si vous avez besoin d’aide, "Learning Python The Hard Way" a un noyau intéressant pour un jeu d’aventure - et vous pouvez certainement rechercher "Python adventure" pour obtenir un code qui vous aidera avec votre propre organisation.

la mise en oeuvre

Vous commencez correctement, mais faites sûr gardez le cap: codez quelques lignes, assurez-vous qu'elles font ce que vous voulez et ne continuez pas tant qu'elles ne fonctionnent pas. Par exemple, vous devriez maintenant coder le si déclaration dont vous avez besoin et un simple message dans chaque branche pour vous dire que vous y êtes arrivé correctement. Testez-le plusieurs fois, en entrant au moins «OUI», «non» et d'autres objets indésirables.

Cela devrait vous aider à démarrer. Et surtout, amusez-vous. Tuez une bête avec vos mains nues. Voler des trésors. Tomber dans une fosse avec des pointes. Se faire manger par un chat de maison en colère.

Пичные герои

Toscane

Rempli de trésors cachés et d’expériences inattendues, les aventures en Toscane sont sans fin. Explorez les grands espaces à n’importe quelle saison de l’année, avec des activités en toutes saisons: rafting, vélo, randonnée, trekking, équitation, canyoning, spéléologie, parapente, voile, escalade, plongée, observation des oiseaux, etc.

Об этой игре

Tap Adventure: Time Travel est un jeu de clicker RPG dans Patch World. Une équipe de héros entame son périple à travers d’épaisses forêts, des marécages sinistres, une jungle dense, des mines d’or, des glaciers éternels et des terrains incultes.

Ce voyage ne sera pas facile car les marais et les marécages sont habités par des gobelins et des ogres diaboliques, des prédateurs vicieux et des brownies sauvages se cachent dans les forêts et des tribus sanguinaires peuplées d’indigènes et de babouins envahissent la jungle. Les habitants locaux n'aiment pas les intrus: la seule façon de passer est de les combattre!

7 classes de caractères de base, chacune avec des compétences uniques et des choix de mise à niveau
Contrairement aux autres jeux de clicker, vous n’avez pas beaucoup de héros, vous ne pouvez en engager que 7, un pour chaque type: Warrior, Archer, Wise Man, Rogue, Savage, Magician et Engineer. Et tous ont leurs propres compétences, ce qui les rend uniques. Vous pouvez développer des héros de différentes manières, plus adaptées à votre style de jeu.

30 boss épiques et une myriade de monstres
D'énormes patrons épiques, seigneurs de leurs États, se dresseront contre vos héros! Ils sont beaucoup plus difficiles que les ennemis communs. Mais vous pouvez obtenir une belle récompense, si vous réussissez à les vaincre: des coffres, qui vous permettent d'améliorer vos héros, des pierres de runes pour fabriquer de puissants artefacts, des manacoins pour les dépenser en mimiques.

9 mondes colorés divers
Jungle animée, forêt sauvage, marais effrayant, cimetière sinistre, mines sombres, montagnes de glace froide, ville majestueuse, landes mortelles et carrefours mystérieux. Chacun de ces beaux endroits a son propre style et son charme, ses propres habitants et ses propres patrons. Explorez les terres du Patch World!

De précieuses récompenses pour avoir vaincu les boss, des graphismes brillants et des effets spectaculaires ainsi que de nombreuses pièces d’or!
En outre, vous pouvez faire vivre Chest, rencontrer les machines à sous du gouverneur, échanger des produits contre des manacoins et explorer le magnifique Patch World!

Aussi, vous pouvez consulter nos autres projets. La forge des dieux - RPG multijoueur hautement addictif, RPG à collectionner avec cartes fantaisie Fête puissante et passionnant VR-shooter Culte du cargo: Shoot'n'Loot VR.

Panoramik Inc. fabrique des jeux depuis 2005. Nous sommes spécialisés dans la création de différents types de jeux, allant des jeux occasionnels aux jeux vidéo de base.

Règles

Lancer l'aventure d'une moitié de carte représente l'envoi de la créature sur une aventure avant de le mettre sur le champ de bataille. Lorsque l'aventure se résout, la carte est exilée. Lorsqu'elle est exilée dans le cadre de la résolution, la créature peut être renvoyée de l'exil.

Les sorts d'aventure n'existent que sur la pile. Dans toutes les autres zones, les caractéristiques d'une aventure sont ignorées. Seules les caractéristiques de la carte de créature s'appliquent.

Règles

Carte Aventurier Cartes avec un cadre de carte en deux parties (dont une partie est insérée à gauche) sur une seule carte. Voir règle 715, «Cartes de l'aventurier».

  • 715.Cartes Aventurier
    • 715.1. Les cartes Aventurier ont un cadre de carte en deux parties, avec un encadré plus petit dans leur zone de texte.
    • 715.2. Le texte qui apparaît dans l'encadré à gauche définit les caractéristiques alternatives que peut avoir l'objet pendant qu'il est un sort. Les caractéristiques normales de la carte apparaissent comme d'habitude, avec toutefois une zone de texte plus petite à droite.
      • 715.2a Si un effet fait référence à une carte, à un sort ou à un permanent qui «a une aventure», il fait référence à un objet pour lequel ces caractéristiques alternatives existent, même si cet objet ne les utilise pas actuellement.
      • 715.2b L’existence et les valeurs de ces caractéristiques alternatives font partie des valeurs copiables de l’objet.
      • 715.2c Bien que les cartes aventurier soient imprimées avec plusieurs ensembles de caractéristiques, chaque carte aventurier ne représente qu'une carte. Par exemple, un joueur qui a pioché ou défaussé une carte aventurier en a pioché ou jeté une, pas deux.
    • 715.3. Lorsqu'un joueur lance une carte Aventurier, il choisit de lancer la carte normalement ou comme une aventure.
      • 715.3a Lorsque vous lancez une carte aventurier comme une aventure, seules les caractéristiques alternatives sont évaluées pour voir si elle peut être lancée.
      • 715.3b Sur la pile en tant qu'aventure, le sort n'a que ses caractéristiques alternatives.
      • 715.3c Si un sort Adventure est copié, la copie est également une aventure. Il a les caractéristiques alternatives du sort et non les caractéristiques normales de la carte qui représente le sort Aventure. Toute règle ou effet faisant référence à un lancer de sort sous forme d'aventure fait également référence à la copie.
      • 715.3d Au lieu de mettre un sort qui a été lancé comme une aventure dans le cimetière de son propriétaire à la résolution, son contrôleur l'exile. Tant que cette carte reste exilée, ce joueur peut la lancer. Il ne peut pas être lancé comme une aventure de cette façon, bien que d’autres effets permettant à un joueur de le lancer puissent lui permettre de le lancer comme une aventure.
    • 715.4. Dans toutes les zones sauf la pile, et même si la pile n’est pas une aventure, une carte Aventurier n’a que ses caractéristiques normales.
    • 715.5. Si un effet demande à un joueur de choisir un nom de carte et que le joueur souhaite choisir le nom alternatif d’une carte aventurier, le joueur peut le faire.

Tasmanie

Si l'aventure est votre truc, vous savez que ce n'est pas seulement ce que vous faites, mais l'endroit où vous le faites qui compte. La Tasmanie est sauvage et indomptée. Plus du tiers de l’île est protégée en tant que parcs nationaux, réserves et zones du patrimoine mondial, et elle est facilement accessible.

Петли времени

Jordan

La Jordanie, récemment nommée l'une des 9 principales destinations à visiter en 2018 par le National Geographic, est un endroit qui devrait figurer sur votre liste. Offrant un éventail d'expériences uniques pour un aventurier, comme le trekking long d'un pays qui porte bien son nom The Jordan Trail, ce pays du Proche-Orient est plein de surprises.

La Catalogne

La Catalogne est un pays surprenant et plein de contrastes. Les amateurs d'activités en plein air découvrent une diversité incomparable de paysages dans un petit territoire où il est possible d'escalader ou de skier le matin et de plonger ou de nager l'après-midi.

Banff et le lac Louise

Banff et le lac Louise sont un lieu où confort et culture se mêlent sans effort à la beauté brute d'un paysage sauvage vierge préservé. Le parc national Banff est une destination incontournable pour les voyageurs du monde entier.

Que vous randonniez sur le sentier des Incas jusqu’au Machu Picchu ou que vous découvriez les merveilles de l’Amazonie, découvrez pourquoi le Pérou est l’un des pays les plus aventureux du monde.

Pologne

L'une des plus grandes attractions de la Pologne est sa richesse de beauté naturelle. Il est doté de montagnes spectaculaires, de forêts animées, de plages de sable fin et de lacs séduisants. Les voyageurs férus de vélo, de randonnée ou de kitesurf apprécieront la Pologne.

Saguenay - Lac-Saint-Jean

Le Saguenay - Lac-Saint-Jean est une région spectaculaire située au cœur de la province de Québec, au Canada. Réputé pour son fjord majestueux et préservé et son lac Saint-Jean, une mer intérieure d’eau douce. La région est la plaque tournante du tourisme d'aventure au Québec.