Omegan

Buongiorno Vic-Kommandos, oggi giochino d’abilità; con la nostra arma dobbiamo centrare un obiettivo, evitando degli ostacoli. Ho postato due versioni, una da 8k con grafica carina, e una versione ultracompatta, per i super programmatori che vogliono analizzare il listato che trovate in fondo al post.

Vi lascio anche la descrizione del programmatore, devo dire ottimo lavoro.

Marco Bergomi


*** THE OMEGAN TRIAL ***
by Anders Persson 2002For any VIC20 (unexpanded, expanded, PAL or NTSC).

It’s 100% Basic and written on a real VIC20.

Size: 1023 bytes.

The Omegan system is famous for its way of training itswarriors using android controlled fighters (code named”Omega Race”). However – first the cadets have to gothrough the “Omegan Trial”.

The “Omegan Trial” is a test with non-moving targets. Youpilote the never resting “Omegan Spider”, the most feareddroid controlled craft used in Omega Race. Because of itsextensive shielding, it’s safe for beginners. Your missionis to hit the star (“*”), but there are also other obstaclesyou must avoid. If you hit one of these obstacles, you willloose 10% of the shield (of the total shield).

So try tohit ONLY the star. For every new level, there will be moreobstacles.

The “Omegan Spider” is a craft that’s hard tocontrol. You can only control it when it’s bouncing backand forth closest to the ground. So aim (while moving) andpress “engage” (any key) and the craft is thrown away tobounce on the walls and to then return to ground level.

Now, are you ready for the trial? If you reach abovelevel 16, then you did a good job.

Well, have fun!

Kind Regards,

Anders Persson

Program listing: (Copyright (C) 2002 by Anders Persson)

0 q(0)=64:q(1)=77:q(2)=66:q(3)=78:o=0:s=10:m=22:j=255

1 q=4096:i=33792: IF PEEK(44)=16 THEN q=7680:i=307203 w=q-1:u=q+m:y=q+483:l=36875: POKE l+3,15: POKE l+4,10:f=l+2

4 PRINT ” omegan trial”: PRINT “by anders persson 2002http://listen.to/boray”

6 PRINT “try to hit the *, but only the *! use anykeyto jump.”: GOSUB 35

8 o=o+1: PRINT “get ready for level”;o: PRINT “shield:”;s*10;”%”: GOSUB 35

9 FOR t=128 TO 245: POKE l,t: POKE l,j-t: NEXT : POKE l,0: GOSUB 40: IF n=0 THEN n= RND(-ti)

12 PRINT “”:z= INT( RND(1)*2)+2:k= INT( RND(1)*60)+193

13 FOR t=1 TO o:v= INT( RND(1)*480)+q: POKE v+i,z+ INT( RND(1)*3)*2: POKE v,k: NEXT :b=y+5:c=1: GOSUB 34

16 e= INT( RND(1)*438)+q: IF PEEK(e)=k THEN 16

17 POKE e,42

18 GET a$: IF a$<>”” THEN IF b>y THEN c=c-m

19 POKE b,32:b=b+c: IF PEEK(b)<>32 THEN 25

20 POKE b,q(x):x=(x+1) AND 3: IF b>y THEN IF c>1 THEN c=c-m

21 IF b<u THEN c=c+44

22 r=(b-q)/m: IF r= INT(r) THEN c=c+2

23 r=(b-w)/m: IF r= INT(r) THEN c=c-2

24 GOTO 18

25 IF e=b THEN 4

26 POKE f,234:s=s-1: POKE f,0: IF s=0 THEN 28

27 GOTO 20

28 PRINT “”;: GOSUB 35

29 PRINT “game over!”: PRINT “you reached level”;o: PRINT : GOSUB 35

30 FOR t=0 TO j: POKE l,t: POKE l,j-t: POKE f,j-t: POKE f,t: NEXT : POKE f,0: GOSUB

40: RUN

34 FOR t=j TO 100 STEP -1: POKE l,t: POKE l,j-t: NEXT : POKE l,0: RETURN

35 PRINT “CCCCFRFCCFCC”: RETURN

40 : PRINT “press any key.”;

42 GET a$: IF a$=”” THEN 42

44 RETURN

———-

Was that all? 😉

Technical note: Setting the random seed to -ti ( X=RND(-TI) ) thefirst thing you do in a program still gives the same randomsequence every time in the VICE emulator if you started theprogram with “File/Autostart disk/tape image” just because ittakes exactly the same time to load and start the program everytime.

I solved this by putting it in after the first time wherethe program waited for the user to press any key. (Line 9).

Thisis just a fix for VICE. On a real VIC20 it will never take exaclythe same time to start the computer, load the program andrun it….

Gioca qui on line


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *