{{htmlmetatags>metatag-robots=() metatag-title=( | ugBASIC User Manual) metatag-keywords=(ugBASIC,Commodore 64,Commodore PLUS/4,ZX Spectrum) metatag-description=(An isomorphic language for retrocomputers) metatag-media-og:image=(:ugbasic:logo-ugbasic-fb.png) metatag-og:title=( | ugBASIC User Manual) metatag-og:description=(An isomorphic language for retrocomputers) }} ====== ugBASIC Manuale Utente ====== ===== ===== ==== SCOPO ==== ==== SORGENTE ==== 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(MANI+D)=11THENMAN=MAN+D:POKEMAN-D,Z:CASTLE=1:Z= PEEK(MAN):GOTO660 580 IFPEEK(MAN+D)=16THENMAN=MAN+D:POKEMAN-D,7: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""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 ==== FILE ==== * ''[[https://github.com/spotlessmind1975/ugbasic/tree/main/examples/contrib_valley.bas|contrib_valley.bas]]'' ==== COME ESEGUIRLO ==== === Atari 400/800 === Per poter eseguire l'esempio, è necessario disporre dell'emulatore Altirra, e in particolare che l'eseguibile ''x64sc'' sia accessibile. Digitare quindi il seguente comando: # Linux ugbc.atari contrib_valley.bas -o example.xex altirra example.xex # Windows ugbc.atari.exe contrib_valley.bas -o example.xex altirra example.xex === Atari 600XL/800XL/1200XL/XG(SE) === Per poter eseguire l'esempio, è necessario disporre dell'emulatore Altirra, e in particolare che l'eseguibile ''x64sc'' sia accessibile. Digitare quindi il seguente comando: # Linux ugbc.atarixl contrib_valley.bas -o example.xex altirra example.xex # Windows ugbc.atarixl.exe contrib_valley.bas -o example.xex altirra example.xex === Commodore 64 === Per poter eseguire l'esempio, è necessario disporre dell'emulatore VICE, e in particolare che l'eseguibile ''x64sc'' sia accessibile. Digitare quindi il seguente comando: # Linux ugbc.c64 contrib_valley.bas -o example.prg x64sc example.prg # Windows ugbc.c64.exe contrib_valley.bas -o example.prg x64sc example.prg === Commodore PLUS/4 === == Usando YAPE == Per poter eseguire l'esempio, è necessario disporre dell'emulatore YAPE, e in particolare che l'eseguibile ''yape'' sia accessibile. Digitare quindi il seguente comando: # Linux ugbc.plus4 contrib_valley.bas -o example.prg yape example.prg # Windows ugbc.plus4.exe contrib_valley.bas -o example.prg yape example.prg == Usando VICE == Per poter eseguire l'esempio, è necessario disporre dell'emulatore VICE, e in particolare che l'eseguibile ''xplus4'' sia accessibile. Digitare quindi il seguente comando: # Linux ugbc.plus4 contrib_valley.bas -o example.prg xplus4 example.prg # Windows ugbc.plus4.exe contrib_valley.bas -o example.prg xplus4 example.prg === Dragon 32 === Per poter eseguire l'esempio, è necessario disporre dell'emulatore XROAR, e in particolare che l'eseguibile ''x64sc'' sia accessibile. Digitare quindi il seguente comando: # Linux ugbc.d32 contrib_valley.bas -o example.bin xroar -rompath (percorso ROM) example.bin # Windows ugbc.d32.exe contrib_valley.bas -o example.bin xroar.exe -rompath (percorso ROM) example.bin === ZX Spectrum === Per poter eseguire l'esempio, è necessario disporre dell'emulatore Speccy, e in particolare che l'eseguibile ''speccy'' sia accessibile. Digitare quindi il seguente comando: # Linux ugbc.zx contrib_valley.bas -o example.tap Speccy example.tap # Windows ugbc.zx.exe contrib_valley.bas -o example.tap Speccy example.tap ==== PROBLEMI? ==== Se hai trovato un problema nel cercare di eseguire questo esempio, se pensi che ci sia un bug o, più semplicemente, vorresti che fosse migliorato, [[https://github.com/spotlessmind1975/ugbasic/issues/new?title=MIGLIORARE |apri una segnalazione]] su GitHub per questo specifico esempio. Grazie!===== POWERED BY ===== [[:it:ugbasic:user:examples|{{ :ugbasic:user:logo-ugbasic.png?nolink&600 |}}]]