El rodillo
Descripción del contenido de la página
Programa de entretenimiento escrito en Sinclair BASIC, para dibujar franjas de colores.
Etiquetas:
Otro programita intrascendente pero curioso, de cuando empezaba a aprender a programar. Al igual que story-s.f. (La historia interminable), El rodillo no es un juego ni tiene utilidad. Es un entretenimiento para pintar franjas de colores poco menos que a lo loco. No recuerdo qué me dio la idea o la inspiración para escribir esto el primer día de 1984...
Pantallazos
Como corresponde a la época, las instrucciones eran un ejemplo de claridad y estética:
Y estas maravillas era posible crear con el programa (mientras no saliera el error Integer out of range):
Código fuente
1 REM El rodillo
2 REM Copyright (C) 1984 Marcos Cruz (http://programandala.net)
3 REM Licencia/Permesilo/License: http://programandala.net/lp
4 REM 1984-01-01
5 REM ***********************
6 GO TO 10
7 SAVE "EL RODILLO" LINE 10: VERIFY "EL RODILLO": CLS
10 LET t=RND*8: LET d=50: LET x=10: LET u=31: PAPER 0: FOR n=7 TO 0 STEP -1: BORDER n: PRINT AT 10,10; PAPER n; INK 9;"EL RODILLO": PAUSE 10: NEXT n
11 CLS : PLOT 0,0: INK 7: DRAW 255,0: PRINT AT 1,2;"'q'y'p' suben (excepto despues de chocar con el techo)";AT 3,2;"'a'y'l' bajan"
12 PRINT AT 5,2;"'s' para";AT 7,2;"CUIDADO CON EL MARGEN INFERIOR";AT 9,2;"'i' reduce la longitud del tra-zo";AT 11,2;"'o' la aumenta"
13 PRINT AT 13,2;"'j' disminuye el tiempo";AT 15,2;"'k' lo aumenta";AT 17,1;"'b'=BRIGHT1 - 'v'=BRIGHT0";AT 19,2;"Pulse cualquier tecla": PAUSE 0
14 CLS : PRINT AT 2,2;"PAUSA negativa = sin pausa";AT 5,2;"BEEP de aviso si:";AT 8,3;"- PAUSA = 0(manual)";AT 10,3;"- LONGITUD = 31(maxima)"
15 PRINT AT 20,0;"Pulse cualquier tecla para empe-zar";AT 15,1;"El numero en blanco le indica el proximo color"
16 PAUSE 0: CLS : PLOT 0,0: INK 7: DRAW 255,0: PAPER 0: GO SUB 100
17 LET t=INT (RND*8): LET m=(RND*20): PRINT AT 21,28;t
18 FOR n=1 TO 500: NEXT n
19 PRINT AT 21,1; INK 6;"PAUSA: ";x;" ": FOR c=0 TO u
20 PRINT AT m,c; INK 9; PAPER t;"N";AT m,c-2;" F";AT m,c-3; INK t;"█"
25 PRINT AT 21,14; INK 6;"LONGITUD: ";u;" ";AT 21,1; INK 6;"PAUSA: ";x;" "
30 IF INKEY$="a" OR INKEY$="A" OR INKEY$="l" OR INKEY$="L" THEN LET m=m+1: PRINT AT m-1,c; INK t;"█";AT m-1,c-1;"█"
32 IF INKEY$="j" OR INKEY$="J" THEN LET x=x-1: PRINT AT 21,1; INK 6;"PAUSA: ";x;" "
33 IF INKEY$="k" OR INKEY$="K" THEN LET x=x+1: PRINT AT 21,1; INK 6;"PAUSA: ";x;" "
34 IF INKEY$="i" OR INKEY$="I" THEN LET u=u-1
35 IF INKEY$="o" OR INKEY$="O" THEN LET u=u+1
36 IF INKEY$="q" OR INKEY$="Q" OR INKEY$="p" OR INKEY$="P" THEN LET m=m-1: PRINT AT m+1,c; INK t;"█";AT m+1,c-1;"█"
37 IF INKEY$="b" OR INKEY$="B" THEN BRIGHT 1
38 IF INKEY$="v" OR INKEY$="V" THEN BRIGHT 0
45 IF x=0 OR c=31 THEN BEEP 0.1,4
46 IF x<0 THEN LET d=55
47 IF INKEY$="s" THEN STOP
49 GO TO d
50 PAUSE x
55 NEXT c
56 PRINT AT m,c-3; INK t;"███"
60 GO TO 17
100 FOR n=0 TO 7: READ f: POKE USR "N"+n,f
110 NEXT n
120 FOR n=0 TO 7: READ f: POKE USR "F"+n,f
130 NEXT n
300 DATA BIN 0000000,BIN 1111000,BIN 1001000,BIN 1011100,BIN 1011100,BIN 0011100,BIN 0011100,BIN 0000000
310 DATA BIN 0000000,BIN 0000000,BIN 0000000,BIN 0111110,BIN 1111111,BIN 0111110,BIN 0000000,BIN 0000000
400 RETURN