SORT-COL para NEC-8201A

dancresp
Mensajes: 5220
Registrado: 13 Nov 2010 02:08
Agradecido : 82 veces
Agradecimiento recibido: 163 veces

SORT-COL para NEC-8201A

Mensajepor dancresp » 24 Ene 2014 23:04

DSC_0167.jpg


EL PROGRAMA
El objetivo del juego consiste en ordenar todas las columnas alfabéticamente, con un número de movimientos limitado.
Para ello controlamos un cursor que une dos letras que podemos girar.

Controles:
Usa los cursores para mover el selector.
Pulsa espacio para girar las dos letras del selector. Con cada giro perdemos un movimiento.
Pulsa ENTER para revisar el tablero. Si es incorrecto perderemos un movimiento.

Descargar programa en formato WAV:
Sort-Col.rar
(1.11 MiB) Descargado 100 veces


LISTADO

Código: Seleccionar todo

  10 DIM A$(8,16)

  50 GOSUB 2000

      Lectura del Teclado
 100 K$=INKEY$:IF K$="" THEN 100
 110 IF K$=" " THEN GOSUB 1000:GOSUB 1500:GOTO 180
 120 IF K$=CHR$(13) THEN 1300
 130 K=ASC(K$)-27:IF K<1 OR K>4 THEN 100 ELSE GOSUB 1200
 140 IF K=1 AND X<15 THEN X=X+1
 150 IF K=2 AND X>1 THEN X=X-1
 160 IF K=3 AND Y>1 THEN Y=Y-1
 170 IF K=4 AND Y<8 THEN Y=Y+1
 180 GOSUB 1100
 190 IF M>0 THEN 100

      Final de Partida
 200 BEEP:BEEP:BEEP:GOSUB 1600:GOTO 50

      Rotar las piezas
1000 B$=A$(Y,X):A$(Y,X)=A$(Y,X+1):A$(Y,X+1)=B$:M=M-1:RETURN

      Poner el cursor
1100 H=(X-1)*2
1110 LOCATE H,Y-1:PRINT "<";A$(Y,X);"=";A$(Y,X+1);">":RETURN
      Borrar el cursor
1200 LOCATE H,Y-1:PRINT " ";A$(Y,X);" ";A$(Y,X+1);" ":RETURN

      Comprobar si se ha completado
1300 F=64:I=0
1310 FOR XX=1 TO 16:B$=CHR$(F+XX)
1320 FOR YY=1 TO 8
1330 IF A$(YY,XX)<>B$ THEN I=I+1
1340 NEXT YY,XX
1350 IF I<>0 THEN BEEP:BEEP:M=M-1:GOTO 190

      Pasar de Nivel
1400 BEEP:S=S+L*100+M*8:L=L+1
1410 GOSUB 1200:GOSUB 2010:GOTO 100

      Mostrar Movimientos
1500 LOCATE 36,7:PRINT USING "###";M;:RETURN

      Pulsar Tecla
1600 IF INKEY$="" THEN 1600 ELSE RETURN

      Presentación
2000 CLS:SCREEN 0,0:L=1:S=0
2010 LOCATE 34,0:PRINT "SCORE"
2020 LOCATE 34,3:PRINT "LEVEL"
2030 LOCATE 34,6:PRINT "MOVES"
2040 LOCATE 8,0:PRINT "*** SORT-COL ***":PRINT
2050 PRINT "   CONTROLS:  CURSOR = MOVE"
2060 PRINT TAB(15);"SPACE = ROTATE"
2070 PRINT TAB(15);"ENTER = VERIFY":PRINT:PRINT
2080 PRINT "     (C) SCAINET SOFT, 2014";
2090 GOSUB 1600

      Inicializar variables del nivel
2100 GOSUB 2500:Y=4:X=8:GOSUB 1100:M=L*8+4
2110 LOCATE 34,1:PRINT USING "#####";S
2120 LOCATE 36,4:PRINT USING "###";L
2130 GOSUB 1500:RETURN

      Inicializar el tablero
2500 FOR X=1 TO 16
2510 FOR Y=1 TO 8:A$(Y,X)=CHR$(64+X):NEXT
2520 NEXT
      Desordenar el tablero
2530 FOR F=1 TO L*8
2540 Y=INT(RND(1)*8)+1:X=INT(RND(1)*15)+1:GOSUB 1000
2550 NEXT
      Mostrar el tablero
2560 FOR Y=1 TO 8
2570 LOCATE 1,Y-1:FOR X=1 TO 16:PRINT A$(Y,X);" ";:NEXT
2580 NEXT
2590 RETURN



APUNTES FINALES
Este es el primer desarrollo que realizo con este equipo y la verdad es que la experiencia ha sido muy satisfactoria.

Para resumirlo en pocas palabras, es como tener un MSX portátil.

Dispone de un Microsoft BASIC ampliado y potente con instrucciones muy interesantes, como por ejemplo las que nos permite controlar un modem.

La pantalla permite 8 filas y 40 columnas, aunque realmente es una pantalla gráfica de 64x240 pixels. Y de una forma sencilla se pueden redefinir los caracteres, lo que amplia sus posibilidades a la hora de programar juegos. Eso si, todo en perfecto monocromo.

Tenemos a nuestra disposición 4 canales de sonido y 3.5 octavas, mediante la instrucción SOUND, o un simple pitido mediante BEEP.

El procesador Intel 80C85 a 2.4MHz queda un poco justo para según que tareas, pero para el juego que presento ha sido más que suficiente.
Y con los 32 KB de RAM de mi equipo no he tenido problemas de memoria.

Para estrenarme con el equipo me planteé un programa sencillo y entretenido para ejercitar un poco el cerebro, pero a medida que he ido aprendiendo más de las posibilidades del equipo (gracias a un PDF del manual original), he visto que para próximos desarrollos puedo ser más ambicioso. Espero que la CPU de la talla.

El listado puede ser adaptado a cualquier BASIC con mínimos cambios., pero para futuras versiones no descarto permitir la rotación horizontal pero también vertical de dos o más letras. Veremos.

No puedo terminar sin decir que este equipo es una delicia. Grandote, buena pantalla, excelente teclado, buen sistema operativo y con muchas posibilidades de ampliación y de conexión de periféricos. Muy recomendable.


Pues nada más, solo me queda…

Invitaros a probarlo

DSC_0165.jpg

DSC_0167.jpg

DSC_0169.jpg

DSC_0170.jpg

DSC_0173.jpg

race8086
Mensajes: 438
Registrado: 29 Oct 2010 22:05
Agradecimiento recibido: 2 veces

Re: SORT-COL para NEC-8201A

Mensajepor race8086 » 28 Ene 2014 00:50

dani te superas día a día. -drinks
Saludos desde Mexico!! -11

dancresp
Mensajes: 5220
Registrado: 13 Nov 2010 02:08
Agradecido : 82 veces
Agradecimiento recibido: 163 veces

Re: SORT-COL para NEC-8201A

Mensajepor dancresp » 09 Feb 2014 02:10

A medio desarrollo descubrí que este sistema da más de si de lo que pensaba.
Así que tengo futuros planes para él.

Y race8086, a ver que tal por México !!!

Avatar de Usuario
ron
Mensajes: 17986
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 915 veces
Agradecimiento recibido: 989 veces

Re: SORT-COL para NEC-8201A

Mensajepor ron » 09 Feb 2014 17:45

Ya contarás ! siempre he pensado que estas máquinas tienen algo. Si no me equivoco unas están fabricadas por Kyoto Ceramics, Kyocera y otras por NEC

Kyocera KC85, Tandy 100/102/200 y Olivetti fueron fabricadas por Kyocera y el NEC PC820la/8300 fue producido por NEC.


Volver a “Lenguajes de Programación y herramientas Dev”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados