Gráficos

El programa que voy a explicar aquí ZX Spectrum, porque me basaré en sus propias características.

Los programas que he explicado hasta ahora, aunque sean para el ZX Spectrum, podríamos abrirlos en cualquier máquina sin realizar cambios de gran importancia.

Esta vez, perdonarás al lector, pero el programa que voy a explicar aquí hay que expresarlo en el ZX Spectrum, porque me basaré en sus propias características.

Este programa no tiene por sí mismo un gran valor, pero algunas de las instrucciones que se utilizan en el mismo pueden resultar de gran interés para la elaboración o elegancia de cualquier programa.

La máquina, concretamente el Spectrum, guarda una serie de posiciones memorísticas para controlar su sistema interno. En él se recoge la tecla que finalmente se ha pulsado, cuál será la siguiente línea de instrucción, los colores, el tratamiento de la pantalla para saber si la impresora está utilizando, etc. (un total de 71 variables de sistema).

Entre estas 71 variables de sistema hay dos muy interesantes en nuestro caso: Posiciones 23677 y 23678.

En estas posiciones se recogen las coordenadas del punto final dibujado. Es decir: Si haces PRINT PEEK 23677, la coordenada x del punto te
aparecerá en la pantalla y si haces PRINT PEEK 23678 te dará la coordenada y del punto.

Esto nos ayuda mucho en el diseño de los programas.

El programa que expongo a continuación se basa en las siguientes variables de sistema. El programa realiza dibujos aleatorios e ilimitados.

Antes de ejecutar la instrucción DRAW x1,y1 obtiene los valores correctos de x1 e y1 en las líneas 205 y 230, utilizando las líneas 210 y 240 para su verificación. Las instrucciones REM no tienen ningún efecto sobre el programa, por lo que si se desea se puede dejar de teclear.

BORRADOR

10 PRINT #0; "TECLA DE PARADA"
20 LET I=0:REM "Define el color de la tinta"
30 LET x=0:REM x definir
40 LET y=0:REM y definir
50 GOSUB 200
60 INK I
70 DRAW
x1,y1 I+1 LET: IF I=7 THEN LET I=0:REM
90 IF INKEY $=" Números aleatorios THEN GO TO 50:REM,
100 INK 0 (Aquí no hay espacio)
110 STOP
200 REM X1 y Y1
Subrutinas 55-NINT* Números aleatorios REM, positivos o negativos, para la obtención de
210 LET x=PEEK 23677+x1
220 IF 0 x OR x 255 THEN GO TO 200:REM
230 LET Y1= Int (Rnd*-175)+85:REM para la obtención de
250 GO y
240
TEP

Babesleak
Eusko Jaurlaritzako Industria, Merkataritza eta Turismo Saila