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:

Instrucciones 1Instrucciones 2

Y estas maravillas era posible crear con el programa (mientras no saliera el error Integer out of range):

El rodillo 2El rodillo 3

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

Descargas