CODING ★ AVENTURES AVANT TOUT (V) ★

Aventures avant tout V (ACPC n°17)
Cela va faire bientôt un quart d'heure que je cherche une introduction à cet article. Comme vous le constatez, et vous n'avez pas tort, c'est le vide complet. Comment pourrait-il en être autrement quand ces messieurs de Manowar vous caressent les oreilles avec leur roch'er dur. N'ayant aucune idée, je me vois virer du jaune au blanc, car Johnny Halliday. Alors, sans aucune transition, passons aux choses sérieuses, à savoir, la gestion des objets dans votre jeu préféré.

L'utilisation des objets dans un jeu d'aventures se fait de plusieurs façons. On peut, par exemple, voir un couteau qui traîne sur une table, le prendre et l'utiliser dans une autre salle pour éplucher les pommes de terre que le chef cuistot vous a refüées en échange de vos dernières pièces de monnaie, pour faire une bonne purée qui vous donnera assez de force pour la traversée des hautes montagnes qui mènent au temple sacré... (Je reprends mon souffle... !).

Ne riez pas trop de mon exemple qui, malgré son ridicule certain, renferme tous les types de gestion par lesquels pourront passer les objets. A savoir qu'ils pourront être posés tout simplement quelque part dans l'attente d'être ramassés pas le joueur (le couteau), ou alors ne pas être accessibles au premier abord (ce sont les patates), ils pourront être également le fruit d'une transformation (oh purée...), voire même d'une disparition (la digestion) qui permet au joueur d'accomplir sa mission.

TABLEAU MON AMOUR

On les croyait disparus de la surface de la planète Aventure. Eh bien, non. Les revoilà en pleine forme pour vous servir. Je crois qu'il est inutile de vous dire que tous les objets seront traités à J'aide de tableaux. La première chose a faire est d'avoir la liste de tous les )objets qui seront éparpillés dans le jeu, et de les inclure avec leurs synonymes dans le début des 'DATA' du source de votre analyseur de syntaxe. Ainsi, si vous utilisez dix objets dans votre jeu, les valeurs allant de 1 à 10 renvoyées par la variable 'OBJET de votre analyseur, leur correspondra. Vient ensuite la formule magique qui déclare les tableaux. A savoir 'DIM OBJ(10)'. Bien entendu, la valeur 10 qui représente le nombre d'objets utilisés est complètement arbitraire et dépendra du nombre d'objets à traiter que vous aurez choisis.

10 DIM OBJ(10)
20 RESTORE 40
30 FOR 1=1 TO 10:READ OBJ(I): NEXT I
40 DATA 23,100,3,5,200,200,8,15,200, 200

OK, vous vous posez sûrement la question suivante : à quoi peuvent bien correspondre les valeurs attribuées aux variables 'OBJ'. Comme d'habitude, je vous répondrai : mais c'est évident, bien sûr. Vous avez compris maintenant ? Allons trêve de plaisanteries. Tout objet se trouvant dans une case quelconque et qui peut être pris (par le fait que l'analyseur a reçu le verbe 'PRENDRE' et l'objet en question) se voit attribuer à sa valeur 'OBJ le numéro de la case dans laquelle il traîne. Pour être plus clair, disons que le couteau, qui est le premier de la liste des objets, est sur la table de la cuisine, qui est la case n° 23, la valeur de 'OBJ(1)' sera égale à 23. Idem pour tous les objets que le joueur pourra prendre dans une salle quelconque.

Maintenant, si un objet est dans une case, mais n'est pas tout de suite accessible (disons qu'il est en attente), il se verra attribuer très gracieusement de votre part la valeur 200. Les patates ou la purée font partie de ces objets.

Quant aux valeurs 100, ce sont tout simplement les objets que le joueur a en sa possession. Bien sûr, les deux chiffres 100 et 200 sont une convention, il vous est totalement permis de prendre n'importe quelle valeur, mais attention, ces valeurs ne doivent absolument pas correspondre à la valeur d'une case de votre jeu. Enfin, si un objet doit disparaître de la circulation, il suffit de lui attribuer la valeur buüe, c'est-à-dire 0.

ET QUE LA MAGIE COMMENCE

Pour la première fois de l'histoire (roulement de tambour...), je vais me métamorphoser en microprocesseur pour suivre pas à pas Ie traitement que pourrait faire ce dernier lors de la gestion des objets. Le public est là. II attend, légèrement crispé, il jette un regard par-ci, un autre par-là, et se demande si je bluffe ou si, réellement, je suis capable d'une telle prouesse technique. Je vous avoue être beaucoup influencé dans mon style d'écriture par la charmante et inoubliable soirée que je viens de passer en compagnie de notre cher Septh au Double Fond, un café fort sympa sur la place du Marché-Sainte-Catherine à Paris, et qui se distingue des autres établissements de ce genre, du fait que tous les membres du personnel sont des magiciens et pas des moindres, s'il vous plaît. Le barman, qui n'est autre que le grand Cirs, s'approche de moi et me fait choisir une carte (avant que je la prenne, sa valeur 'OBJ' était égale à 200), je décide de prendre cette carte, elle est donc en ma possession (sa valeur vient de passer à 100). Dans le programme, on aura à peu près ceci : PRINT “ Le grands Cirs vous tend un jeu de cartes”

PRINT “ et vous demande d'en choisir une”
GOSUB ANALYSEUR
IF VERBE= 1 AND OBJET=9 AND OBJ(9)=200 THEN OBJ(9)=100

Les 'PRINT' enferment le blabla. Le 'GOSUB' appelle l'analyseur de syntaxe. Je teste ensuite si le verbe est bien 'PRENDRE' et l'objet 'CARTE' (inutile de vous rappeler que 'PRENDRE'

est le premier de la liste des verbes et que 'CARTE' est en neuvième position dans la liste des objets). Je teste par la même occasion si la carte n'a pas été choisie au préalable, c'est-à-dire si sa valeur est toujours égale à 200. Dans ce cas, je l'aurais en main en attribuant à OBJ(9) la valeur 100. Compris ?

Vient ensuite le encore plus célèbre Gaétan Bloom (on a piqué sa mob dans le film les Sous-doués), il me demande de poser cette carte sur la table de close-up, micro-magie en français. Je pose la carte sur le tapis vert et je donne l'ordre de changer la valeur OBJ(9) en 31, car la salle de spectacle du Double Fond a le numéro 31 sur mon plan.

Le encore plus fort Dominique Duvivier s'approche ensuite de cette carte et, par une manipulation à faire pâlir le plus averti des magiciens, fait disparaître cette carte sous les yeux ébahis de son public dontje fais partie (la valeur de cet objet passe à 0, car cette carte ne peut plus être récupérée par le joueur). Enfin, si vous n'avez pas tout compris, c'est normal, retournez les voir de ma part vous ne serez pas déçus, parole de Poum.

FERME, POUR CAUSE D'INVENTAIRE

On l'aurait presque oublié celui-là. C'est bien beau de ramasser tout ce qui traîne par terre et de donner n'importe quoi à n'importe qui, mais saurez-vous vous y retrouver ? Sauf si vous avez une très bonne mémoire ou encore si vous avez pris le soin de noter sur un bout de papier toutes vos transactions, il serait bien agréable de voir, parmi la liste des verbes de votre jeu, les commandes 'LISTE' ou INVENTAIRE'. Pour gérer cette commande, rien de plus simple. A la vue du numéro de ce verbe (eh oui, ils sont dans cette liste, car ils doivent avoir la priorité par rapport aux objets, et surtout ne pas être délaissés à cause d'un autre vulgaire verbe qui se promènerait par hasard dans le coin), on se branche sur un petit sous-programme qui, dans une fenêtre de votre choix, affiche la liste des objets dont leur valeur 'OBJ' est égale à 100 (ils sont en main). Mais voilà, pour cela, il est impératif d'avoir un deuxième tableau avec le nom complet des objets que vous utiliserez.

10 DIM NOMOBJ$(10)
20 RESTORE 40
30 FOR 1=1 TO 10:READ NOMOB J$(I):NEXT I
40 DATA COUTEAU,FLEUR, BANC,PIECE,CHAPEAU....etc

Encore un petit détail. II serait très sympathique de votre part d'indiquer, à chaque affichage d'images, les objets qui se trouvent dans cette nouvelle case, et cela simplement en comparant leur valeur 'OBJ' avec le numéro de la case 'CASE'.

PRTNT “Vous voyez”
FOR I=1 TO 10
IF OBJ(I)=CASE THEN PRINT NOMOBJ$(I)
NEXT I

Pour finir, voilà la tête d'un sous-pro-gamme de saisie d'objet. Pour l'action 'POSER', c'est presque pareil.

IF OBJET> 10 THEN RETURN
IF OBJ(OBJET)=100 THEN PRINT “Vous l'avez déja”:RETURN
IF OBJ(OBJET)=CASE THEN OBJ(OBJET)= 100:PRINT “LE VOILA":RETURN
RETURN

En septembre, si les magiciens du Double Fond ne m'ont pas fait disparaître, je vous parlerai de la musique et des bruitages dans votre jeu, et nous quitterons avec beaucoup de regret cette rubrique “Aventure". Alors, dépêchez-vous de nous envoyer vos essais, dans le cadre du concours du mois précédent.

Ne voyant pas notre chère Amousse rentrer de vacances (il doit trop s'y plaire), je le remplace assez bas ce mois-ci :

Pierre qui roule, n'amasse p'Amousse.

Poum qui mousse , A100% n°17 (JUILLKET/AOUT 1989)

★ ANNÉE: 1989
★ AUTEUR: Alain Massoumipour

Page précédente : Aventures avant tout IV

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Coding » Aventures avant tout IV (ACPC n°16)
» Coding » Aventures avant tout VI (ACPC n°18)
» Coding » Aventures avant tout (ACPC n°13)
» Coding » Aventures avant tout III (ACPC n°15)
» Coding » Chargement de fichiers .WIN
» Coding » Aventures avant tout VII (ACPC n°19)
Je participe au site:

» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 549 millisecondes et consultée 851 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.