Grafikoak

Hemen azaltzera noan programa ZX Spectrum-ean adierazi behar da; bere ezaugarri propioetan oinarrituko bait naiz.

Orain arte azaldu ditudan programak, nahiz eta ZX Spectrum-arentzat eginak izan, edozein makinatan abieraz genitzake garrantzi handiko aldaketarik egin gabe.

Oraingoan, barkatuko duzu irakurle baina, hemen azaltzera noan programa ZX Spectrum-ean adierazi behar da; bere ezaugarri propioetan oinarrituko bait naiz.

Programa honek ez du berez balio handirik, baina bertan erabiltzen den zenbait instrukzio oso interesgarri gerta daiteke edozein programa osatzeko edo dotoretzeko.

Makinak, Spectrumak hain zuzen, bere barne-sistema kontrolatzeko memori-posizio batzuk gordetzen ditu. Bertan jasotzen da zein teklari sakatu zaion azkenean, zein izango den hurrengo instrukzio-lerroa, koloreak, inprimagailua erabiltzen ari den jakiteko pantailaren tratamendua eta abar luze bat (guztira 71 sistema-aldagai).

71 sistema-aldagai hauen artean badaude bi gure kasuan oso interesgarri direnak: 23677 eta 23678 posizioak.

Posizio hauetan, azkena marraztu den puntuaren koordenatuak jasotzen dira. Hau da: PRINT PEEK 23677 egiten baduzu, puntuaren x koordenatua ema
ngo dizu pantailan eta PRINT PEEK 23678 egiten baduzu, puntuaren y koordenatua emango dizu.

Honek laguntza handia eskaintzen digu programak diseinatzeko garaian.

Hemen azaltzen dudan programa sistema-aldagai hauetan oinarritzen da. Programak marrazki aleatorio eta mugagabeak egiten ditu.

DRAW x1,y1 instrukzioa exekutatu baino lehenago x1 eta y1-en balio zuzenak lortzen ditu 205 eta 230 lineatan, 210 eta 240 lineak hori egiaztatzeko erabiliaz. REM instrukzioek ez dute inolako eraginik programan; beraz nahi izanez gero tekleatu gabe utz daiteke.

ZIRRIBORROA

10 PRINT #0; "GERATZEKO SAKATU TEKLA"
20 LET I=0:REM "Tintaren kolorea definitzen du"
30 LET x=0:REM x koordenatua definitu
40 LET y=0:REM y koordenatua definitu
50 GOSUB 200
60 INK I
70 DRAW x1,y1
80 LET I=I+1: IF I=7 THEN LET I=0:REM kolorea aldatzeko
90 IF INKEY $="" THEN GO TO 50:REM zenbaki aleatorioak, positiboak ala negatiboak lortzeko
100 INK 0 (Hemen ez dago espaziorik)
110 STOP
200 REM MARRAZKETARAKO x1 eta y1 lortzeko azpirrutina
205 LET x1=INT(RND*-255)+125: REM zenbaki aleatorioak, positiboak ala negatiboak, lortzeko
210 LET x=PEEK 23677+x1
220 IF 0 x OR x 255 THEN GO TO 200:REM mugak ez igarotzeko
230 LET Y1= Int (Rnd*-175)+85:REM zenbaki aleatorioak, positiboak ala negatiboak, lortzeko
240 LET y=PEEK 23678+y1
250 IF 0 y OR y 175 THEN GO TO 230:REM pantailako mugak ez igarotzeko
260 RETURN

Babesleak
Eusko Jaurlaritzako Industria, Merkataritza eta Turismo Saila