Rivista: Micro Adventurer – Numero: 01 – Anno 1983 – Trascrizione: Francesco Fiorentini
Il progetto RetroLiPS non é solo l’occasione per riscoprire macchine poco conosciute e giochi e/o riviste dimenticati ma anche l’occasione per provare emulatori mai utilizzati (personalmente non avevo mai utilizzato XRoar) e familiarizzare con altri dialetti Basic.
Questa volta ho voluto digitare un programma in Basic per il Dragon32/64. Un breve RPG che é sicuramente una piccola gemma che meritava di essere riportata in vita: Valley of Death.
Se volete saperne di piu’ riguardo al Dragon 32/64, potete leggere una breve descrizione nella pagina dedicata su Wikipedia in italiano e una descrizione piú approfondita in quella inglese.
Il listato originale di Valley of Death e’ invece stato pubblicato sulla rivista Micro Adventurer numero 01 di Novembre 1983, edita da Sunshine Books Ltd nel Regno Unito.
Titolo: Valley of Death
Piattaforma: Dragon 32/64
Linguaggio: Basic
Versione originale: ???
Pubblicazione: Micro Adventurer 01 – nov 1983
Anno: 1983
Trascrizione: Francesco Fiorentini
Anno: 2021
Download: Valley of Death
Note: Emulatore suggerito, XRoar
Scopo del gioco
Valley Of Death consiste nel guidare un personaggio (rappresentato dal simbolo del $) in una piccola valle. Devi aiutarlo a combattere mostri, viaggiare attraverso paludi e foreste, e alla fine portarlo nelle
profondità delle oscure segrete di Darganyon per trovare una chiave. Devi poi correre indietro attraverso i sotterranei, tornare al Palazzo per aprire un forziere e recuperare una pozione magica per curare il tuo Re!
Qui di seguito trovate il codice da copiare sul vostro computer Dragon 32/64.
Il codice é pronto per essere eseguito su un emulatore, consigliamo XRoar.
Per caricare il codice sull’emulatore XRoar:
– salvate il listato in un file .bas
– da File -> Cassette -> Input Tape… scegliete il file .bas
– digitate il comando: CLOAD
– una volta terminato il caricamento, digitate RUN per eseguire il gioco
Chi volesse provare il gioco direttamente puó scaricare il file .bas, (si veda la voce Download).
Istruzioni
All’inizio del gioco dovrete scegliere la classe del vostro personaggio da una lista di 4: Guerriero, Chierico, Barbaro e Mago. La scelta non é fine a se stessa, in quanto in base alla classe avrete a disposizione caratteristiche diverse che influenzeranno le azioni durante il gioco. Dopodiché dovrete dare un nome al vostro personaggio, se non lo farete, verrá automaticamente nominato Mr. X.
A questo punto il gioco comincia e potrete iniziare a vagare per la Valle della Morte in cerca della chiave. Per spostarvi dovete utilizzare i seguenti tasti:
Durante il vostro girovagare vi imbatterete in un numero variabile di mostri, il cui unico scopo é quello di divorarvi. Ad eccezione del Chierico, che puó allontanarsi dai mostri non morti, in tutti gli altri casi dovrete per forza sconfiggere il nemico prima di proseguire nella vostra missione. Per sferrare l’attacco, dovrete premere il pulsante H (hit) in un determinato lasso di tempo quando é il vostro turno di colpire. Attenzione, i mostri sono particolarmente fortunati nello sferrare i colpi. Buona fortuna!!!
Attenzione – Ci siamo resi conto che nel listato i caratteri ‘>’ e ‘<‘ potrebbero venir sostituiti dai rispettivi encoding html ‘>’ e ‘<’. Nel caso, sostituite questi valori nel listato prima di copiarlo sull’emulatore.
Listato: Valley of Death – Dragon32/64 – Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97 10 CLS
70 ST=RND(9)+RND(9)+RND(9):IQ=RND(9)+RND(9)+RND(9)
80 EN=RND(9)+RND(9)+RND(9):ST=ST*5:IQ=IQ*5:EN=EN*6
90 PRINT"1) WARRIOR":PRINT"2) CLERIC":PRINT"3) BARBARIAN"
100 PRINT"4) WIZARD":INPUT"WHICH ONE (1-4)";A
110 IFA<1ORA>4THENCL$="FOOL";IQ=IQ-RND(10)
120 IFA=1THENCL$="WARRIOR":ST=ST+RND(ST):IQ=IQ+RND(10)
130 IFA=2THENCL$="CLERIC":IQ=IQ+RND(10)*2
140 IFA=3THENCL$="BARBARIAN":IQ=IQ-RND(5):ST=ST+RND(ST)
150 IFA=3THENEN=EN+RND(ST)
160 IFA=4THENCL$="WIZARD":IQ=IQ+RND(15)*2:EN=EN+RND(5)
170 INPUT"NAME";NAME$
180 IFNAME$=""THENNAME$="MR. 'X'"
190 CLS
200 PRINTSTRING$(32,175);:FORN=0TO7:PRINTCHR$(175);
210 PRINTSTRING$(30,32);CHR$(175);:NEXT
220 PRINTSTRING$(32,175)
230 A$(1)=CHR$(175)+"#####################/\#######"+CHR$(175)
240 A$(2)=CHR$(175)+"#/\/\########/\/\##/## /\#####"+CHR$(175)
250 A$(3)=CHR$(175)+"p####\####/\/####\/######\/\/k"+CHR$(175)
260 A$(4)=CHR$(175)+"######\/\/"+STRING$(20,32)+CHR$(175)
270 J=RND(5)*32:PRINT@J,A$(1);:PRINTA$(2);:PRINTA$(3);
280 PRINTA$(4);
360 PRINT@352,NAME$;" THE ";CLASS$
370 PRINT@384,"ST:";ST;TAB(10);"IQ:";IQ;TAB(20);"EN:";
380 PRINTEN;:PRINT@416,"TR:";TR;TAB(20);"EX:";EX;
530 GOSUB 2300
2300 A$=INKEY$:IFA$=""THEN2300
2310 IFA$="R"THEND=-33
2320 IFA$="T"THEND=-32
2330 IFA$="Y"THEND=-31
2340 IFA$="F"THEND=-1
2350 IFA$="H"THEND=1
2360 IFA$="C"THEND=31
2370 IFA$="V"THEND=32
2380 IFA$="B"THEND=33
2450 RETURN
30 MAN=1056:Z=16
410 MAN=MAN+J+33
440 POKE MAN,36
560 IFPEEK(MAN+D)=111ORPEEK(MAN+D)=92THENMAN=MAN+D:POKE MAN-D,Z:PATH=1:Z=PEEK(MAN):GOTO660
570 IFPEEK(MAN+D)=11THENMAN=MAN+D:POKEMAN-D,Z:CASTLE=1:Z= PEEK(MAN):GOTO660
580 IFPEEK(MAN+D)=16THENMAN=MAN+D:POKEMAN-D,Z:PL=1:Z=PEEK(MAN):GOTO660
650 IFPEEK(MAN+D)<>175THENMAN=MAN+D:POKEMAN-D,Z:Z=PEEK(MAN)
790 GOTO440
660 IFZ<>11THENCASTLE=0
670 IFZ<>16THENPL=0
680 IFZ<>92ANDZ<>111THENPATH=0
700 PRINT@320," "
710 IFPATH=1THENPRINT@320,"SAFE ON PATH"
720 IFCASTLE=1THENPRINT@320,"SAFE IN KEEP"
750 IFPL=1THENPRINT@320,"SAFE IN PALACE"
390 IF U=1 THEN RETURN
400 U=1
490 GOSUB 360
540 E=E+1:IFE=10THENEN=EN-1:E=0
40 PL=1
500 IFRND(4)=2ANDDEAD=0ANDCASTLE=0ANDPATH=0ANDPL=0THENGOSUB2770
2770 SOUND100,5:SOUND100,6:RESTORE:IFEX<2000ANDTW=0THEN FORN=0TORND(19):READMONSTER$,HITS:NEXT
2780 M=0
2790 IFEX>=2000ORTW=1THENFORN=0TORND(19)+20:READMONSTER$,HITS:NEXT
2810 FORN=1TOLEN(MONSTER$):MID$(MONSTER$,N,1)=CHR$(ASC(MID$(MONSTER$,N,1))+32):IFMID$(MONSTER$,N,1)="@"THENMID$(MONSTER$,N,1)=CHR$(128):NEXT:MONSTER$;
2820 PRINT@320,"YOU HAVE MET A ";MONSTER$;
2830 IFCLASS$="CLERIC"AND(MONSTER$="mummy"ORMONSTER$="wraith"ORMONSTER$="spectre")ANDRND(3)=2THENYZ=1
2840 IFYZ=1THENFORN=0TO2000:NEXT:PRINT@320,"BUT YOU TURN IT AWAY!":FORN=0TO2000:NEXT:PRINT@320," ":EX=EX+H:YZ=0:RETURN
2850 HITS=HITS+RND(INT(HITS/2)):IFHITS<INT(EN/2)THEN2850
2860 H=HITS
2870 FORN=0TO1000:NEXT
2880 PRINT@448,"strike";CHR$(128);"now"
2890 SOUND50,2
2900 A$=INKEY$
2910 PRINT@480,STRING$(28,32);
2920 PRINT@480,"THE MONSTER HAS";HITS;"ENERGY ";
2930 FORN=0TO300:A$=INKEY$:IFA$<>""THEN2960:ELSENEXT:PRINT@448,"too";CHR$(128);"slow":FORN=0TO2000:NEXT:PRINT@448," ":GOTO2990
2960 IFA$="H"ANDRND(2)=2THENG=RND(EN)+RND(ST)*SD:PRINT@448,"you";CHR$(128);"hit":FORN=0TO2000:NEXT:PRINT@448,G;"DAMAGE!";:FORN=0TO3000:NEXT:YZ=1
2970 IFYZ=1THENYZ=0:PRINT@448," ":HITS=HITS-G:ELSEIFA$="H"THENPRINT@448,"you";CHR$(128);"missed":FORN=0TO2000:NEXT:PRINT@448,STRING$(30,32);:YZ=0
2980 IFG>0THENSOUND150,2:G=0:ELSESOUND200,2
2990 PRINT@480,"THE MONSTER HAS";HITS;"ENERGY ";
3000 IFHITS<=0THEN3110
3010 SOUND200,2:PRINT@448,"the";CHR$(128);"monster";CHR$(128);"strikes":FORN=0TO2000:NEXT:PRINT@448," "
3020 IFRND(2)=1THENM=RND(HITS):PRINT@448,"and";CHR$(128);"hits";:SOUND10,2:FORN=0TO2000:NEXT:ELSEPRINT@448,"and";CHR$(128);"misses";:SOUND50,2:YZ=1
3030 IFYZ=1THENFORN=0TO2000:NEXT:PRINT@448," ":YZ=0
3040 EN=EN-M
3050 IFM>0THENPRINT@448,"DOING";M;"DAMAGE!";:FORN=0TO2000:NEXT:PRINT@448," "
3060 GOSUB360
3070 M=0
3080 IFEN<=0THEN3770
3100 HITS=HITS-1:EN=EN-1:GOTO2880
3110 PRINT@448," ":PRINT@480,STRING$(31,32);:PRINT@320,"YOU'VE KILLED IT!":FORN=225TO250:SOUNDN,1:NEXT:EX=EX+H:EN=EN+RND(INT(H/2))
3120 FORN=0TO2000:NEXT:PRINT@320," ":IFEN>400THENEN=EN-RND(INT(H/2)):RETURN:ELSERETURN
3200 DATA"BANDIT",20,"BERSERKER",20,"BUGBEAR",60,"CARRION CRAWLER",60,"COCKATRICE",100,"DWARF",20,"DOPPLEGANGER",80,"ELF",20,"FIRE BEETLE",20
3210 DATA"GARGOYLE",80,"GELATINUS CUBE",80,"GIANT ANT",40, "GIANT CENTIPEDE",5,"GIANT RAT",10,"GNOLL",40,"GNOME",10,"GOBLIN",10,"GREY OOZE",60
3220 DATA"HIPPOGRIFF",65,"HOBGOBLIN",15,"BLACK PUDDING",200,"CHIMERA",180,"DJINNI",145,"DRAGON",220,"GIANT",200,"GRIFFON",140,"HYDRA",160
3230 DATA"WEREBEAR",120,"MANTICORE",125,"MINOTAUR",120,"MUMMY",105,"OGRE",120,"OWL BEAR",110,"PURPLE WORM",300
3240 DATA"SPECTRE",120,"TROLL",130,"VAMPIRE",180,"WIGHT",60,"WRAITH",80,"HELL HOUND",140
3770 PRINT@320,"YOU'RE DEAD!":IFK=1THEN3770
3780 PLAY"O1V31T2L4GGL8GGL4B-AAGGF+G":K=1:GOTO3770
2 thoughts on “Valley of Death – Dragon 32/64 Basic”