Rivista: A.N.A.L.O.G. – Anno: 1981 – Trascrizione: Fiorentini Francesco
Continua il nostro viaggio alla scoperta dei listati della rivista A.N.A.L.O.G. Oggi é il tuno di Darts, un gioco di freccette che metterá alla prova la vostra mira.
Lo scopo di Darts è lanciare ognuna delle sei freccette verso un bersaglio e farle avvicinare il più possibile al centro. L’unico fattore generato dal computer in questo gioco è la gravità. Più alta è la gravità, più alto è l’angolo di stacco e/o l’altezza di stacco della freccetta necessario per farla rimanere sul tabellone. Se un giocatore ottiene un punteggio elevato, gli viene chiesto il nome, che verrá visualizzato insieme al suo punteggio al termine della partita.
Listato pubblicato sulla rivista A.N.A.L.O.G. di Luglio/Agosto 1981, rivista edita da MICHAEL J. DESCHENES LEE PAPPAS.
Titolo: Darts
Piattaforma: Atari 8bit
Linguaggio: Basic
Versione originale: Ricky Knopman
Pubblicazione: A.N.A.L.O.G.
Numero: 4 – Luglio/Agosto
Anno: 1981
Trascrizione: Francesco Fiorentini
Anno: 2024
Download: N/A
Note: N/A
Istruzioni
Joistick in porta 1.
Spostate il joystick verticalmente per scegliere la posizione di partenza della freccetta. Spostando il joystick lateralmente potrete invece scegliere l’angolo di partenza della freccetta. L’inclinazione va da un minimo di 0, angolo di 0 gradi, ad un massimo di 10, corrispondente ad un angolo di 60 gradi.
La forza di gravitá, generata casualmente dal computer, inmfluenzerá la traiettoria della freccetta.
.
Qui di seguito trovate il codice da copiare sul vostro computer Atari ad 8 bit.
Il codice é pronto per essere copiato su un emulatore, consigliamo Altirra.
Di seguito riportiamo le istruzioni per copiare il listato sull’emulatore Altirra ed eseguire il gioco:
– lanciare l’emulatore Altirra
– avviare il Basic: File -> Boot Image... e selezionare ATARIBAS.ROM (se non l’avete potete cercarla qui)
– copiate il codice sotto riportato
– incollatelo nell’emulatore tramite la funzione: View -> Paste Text
– per velocizzare l’operazione di copia del codice potete usare la funzione: System -> Warp Speed
– terminata l’operazione di copia (disattivate il Warp nel caso, System -> Warp Speed)
– digitare RUN
Buon divertimento!
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: Darts – Atari 8bit – 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 70 REM DARTS by RICKY KNOPMAN
80 REM (c) COPYRIGHT 1981
90 REM A.N.A.L.O.G. 400/800 MAGAZINE
100 GOTO 610
110 REM *******GET PLAYER'S POSITION
120 COLOR 0:PLOT 158,K-1:DRAWTO 145,K:DRAWTO 158,K+1:COLOR DC
130 IF STICK(0)=15 THEN MVN=1:GOTO 180
140 IF ST<>STICK(0) THEN MVN=1
150 MVN=MVN*1.2:ST=STICK(0)
160 K=K+((ST=13)-(ST=14))*MVN:W=W+((ST=7)-(ST=11))
170 K=(K<0)+(K>0 AND K<80)*K+(K>79)*79:W=(W>0 AND W<11)*W+(W>10)*10
180 ? "ELEVATION=";INT(W+0.5);" GRAVITY=";INT(GV*2000)
190 IF STRIG(0) AND STRIG(1) THEN PLOT158,K-1:DRAWTO 145,K:DRAWTO 158,K+1:GOTO 120
200 REM ******************THROW DART
210 S=-W/5
220 FOR P=138 TO 4 STEP -2
230 TRAP 240:COLOR 0:PLOT P+13,K-1:DRAWTO P+2,K:DRAWTO P+13,K+1:COLOR DC
240 S=S+GV:K=K+S:IF K<3 OR K>79 THEN 270
250 SOUND 0,K,10,10
260 PLOT P+11,K-1:DRAWTO P,K:DRAWTO P+11, K+1
270 NEXT P:TRAP 40000
280 REM *******FIND OUT WHERE HE HIT
290 SOUND 0,0,0,0:FOR H=1 TO 99:NEXT H
300 DIS=INT(ABS(39.5-K))
310 IF DIS>35 THEN S=0:GOTO 370
320 IF DIS>21 THEN S=10:GOTO 380
330 IF DIS>8 THEN S=20:GOTO 380
340 IF DIS>0 THEN S=40:GOTO 380
350 REM *************PRINT OUT SCORE
360 S=75:? CHR$(125);" BULLSEYE";:RESTORE 880:GOTO 390
370 ? CHR$(125);" MISS! ";:RESTORE 870:GOTO 390
380 ? CHR$(125);" "; S;" POINTS " ;: RESTORE 860:IF S<29 THEN RESTORE 890
390 READ P,K:IF P>0 THEN SOUND 0,P,10,10:FOR X=1 TO K:NEXT X:SOUND 0,0,0,0:GOTO 390
400 SC=SC+S:? CHR$(29);"SCORE IS ";SC
410 FOR S=0 TO 300:NEXT S:NEXT TURN:GOTO 420
420 REM ********************END GAME
430 TRAP 40000: IF SC>HS THEN HS=SC:GRAPHICS 0:SETCOLOR 2,2,0:POSITION 2,10:?"PLEASE ENTER YOUR NAME ";:INPUT N$
440 GRAPHICS 18:POSITION 1,3:? #6;"FINAL SCORE IS ";SC
450 ? #6:? #6;" HIGH SCORE:":? #6;" "; N$;" ";HS;" POINTS"
460 POSITION 2,9: ? #6; "HIT FIRE BUTTON": ? #6;" TO RESTART"
470 IF STRIG(0) AND STRIG(1) THEN 470
480 REM *****************SET UP GAME
490 SC=O:FOR TURN=1 TO 6
500 GV=RND(0)/20:K=10
510 REM SET GRAPHICS WITH LARGE TEXT
520 GRAPHICS 7:SETCOLOR 0,8,14:SETCOLOR 2,1,6: SETCOLOR 4,4,0:DC=2:BC=1
530 MEM=PEEK(560)+256*PEEK(561)+85
540 POKE MEM+4,65:POKE MEM+5,PEEK(560):POKE MEM+6,PEEK(561):POKE MEM,71:POKE MEM+3,7
550 REM ****SET UP BOARD, DRAW DARTS
560 COLOR 3:FOR H=1 TO 4:PLOT H,5:DRAWTO H,74:NEXT H:COLOR DC
570 IF TURN<>6 THEN FOR H=1 TO 6-TURN:PLOT H*20+20,0:DRAWTO H*20+7,1:DRAWTO H*20+20,2:NEXT H
580 COLOR BC:PLOT 4,5:DRAWTO 4,16:PLOT 4,30:DRAWTO 4,38:PLOT 4,41:DRAWTO 4,49:PLOT 4,63:DRAWTO 4,74
590 GOTO 110
600 REM INITIALIZATION ***********
610 GRAPHICS 18:SETCOLOR 0,2,3:POKE 756,226:COM N$(7)
620 ? #6:? #6;" ":? #6;" DARTS":? #6; " "
630 POSITION 1,5: ? #6 ;"by Ricky Knopman"
640 POSITION 0,8:FOR K=0 TO 19: ? #6;" ";:NEXT K
650 ? #6:? #6;" instructions y n"
660 OPEN #1,4,0,"K":GET #1,A:CLOSE #1
670 IF A=ASC("N") THEN 490
680 IF A<>ASC("Y") THEN 660
690 REM ***************INSTRUCTIONS
700 GRAPHICS 0: MEM=PEEK (560) +256*PEEK (561)+6
710 POKE MEM,6:POKE MEM-2,84:SETCOLOR 2,0,0
720 POKE 83,39:? CHR$(125); CHR$(29); CHR$(127); CHR$(127); CHR$(127); "««DARTS»»"
730 ? CHR$(29);"Moving the joystick vertically"
731 ? "controls the initial release position of the dart."
740 ? "Moving the joystick sideways controls"
741 ? "elevation (initial takeoff angle)"
750 ? "At elevation=(10), angle=60 degrees"
760 ? "At elevation=(0), angle=0 degrees"
770 ? "Gravity (from 0 to 100), is added to"
771 ? "influence the trajectory of the dart."
780 ? "The stronger the grayity,"
790 ? "the higher the elevation required"
800 ? "to keep the dart 'on target'"
810 ? "A few practice games will help"
820 ? "to improve your score dramatically"
830 ? CHR$(29);"---- HIT THE FIRE BUTTON TO START ----"
840 GOTO 470
850 REM **********DATA FOR MUSIC
860 DATA 57,75,57,75,57,75,72,250,-1,0
870 DATA 65,75,65,75,79,75,58,75,65,150,79,100,-1,0
880 DATA 136,30,100,30,80,30,65,70,80,30,65,100,-1,0
890 DATA 96,75,85,75,108,75,216,75,144,200,-1,0