★ AMSTRAD CPC ★ GAMESLIST ★ ATROPELLO (c) MUNDO AMSTRAD/UNICORNIO SOFT ★

Mundo Amstrad
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

ATROPELLO.— Es un programa para dos jugadores. El 'primero de ellos (jugador de la izquierda), controla los movimientos del atrevido peatón. El otro jugador {jugador de la derecha), maneja un automóvil con el cual ha de atropellar al peatón, antes de que el tiempo se agote y el transeúnte se 'escape.

Las teclas de control del peatón son:

  • Q. ARRIBA
  • A. ABAJO
  • X. IZQUIERDA
  • C. DERECHA

...y las del maniático del volante son:

Cursor arriba. ARRIBA Curso abajo. ABAJO Cursor derecha. DERECHA Cursor izquierda. IZQUIERDA

La mejor manera de entender un programa es entender su funcionamiento. Por lo tanto, vamos á intentar explicar de una forma sencilla la manera en que trabaja este programa.

Visto a grandes rasgos, el programa consta de tres partes: la presentación, el juego y la conclusión.

— La presentación incluye dos apartados; la portada de presentación, líneas 1000 a 1460, que ha sido creada en el MODO 0 de pantalla, y las instrucciones líneas 1470-1560.

De este bloque cabe destacar el, modo en que se imprimen fas instrucciones, que se . hacen cargando en la variables A$, la frase a imprimir, y llamando con un GOSUB a la subrutina encargada de centrar el texto, y de imprimirlo letra a letra, situada en las líneas 1430-1460. La forma en que funciona esta subrutina es muy sencilla, con la función LEN calculamos la longitud de la cadena A$, y como sabemos que la pantalla en MODO 1 tiene de ancho 40 caracteres, le restamos la longitud de la cadena y el número resultante dividido entre 2 son los espacios que hay que dejar empleando TAB antes de imprimir la frase.

Para imprimir la línea de texto, se hace un bucle que tome desde el primer elemento de la cadena hasta el último (calculado con LEN (A$}), y subdividendo la cadena con MID$ vamos imprimiendo una a una las letras.

— El segundo bloque del que hemos hablado, el juego, es talvez la parte más complicada, pero vamos con ello.

Lo primero que se hace es fijar el modo de pantalla, definir el color del borde, del papel y de las tintas, definir dos ven tanas a inicializar las variables que se van a usar durante el juego. Esto comprende las líneas 1570-1680.

En el grupo de líneas 1690-1930 se encuentra el bucle principal. En este bucle lo primero que se hace es comprobar qué teclas son pulsadas por el jugador de la derecha. Inmediatamente despues, mediante el empleo de una rutina en máquina (más adelante la explicaremos), comprobaremos si el coche choca contra el muro, entonces vuelve a las 'coordenadas anteriores, o si choca contra el peatón, lo que significa que lo ha atropellado por lo que se salta la línea 1990 que da como vencedor al conductor. Luego se imprime el coche y se produce el sonido de su motor.

A continuación se leen las teclas pulsadas por el peatón, y al igual que antes comprobamos si choca contra los ladrillos o contra el coche, y lo imprimimos.

El siguiente paso es decrementar en una unidad el tiempo, y llamar a la subrutina que ,!o imprime y comprueba si se ha acabado, localizada en las lineas 2040-2100. La siguiente línea, la 1930, hace un GOTO 1740 que vuelve a repetir todo el proceso.

— El tercer bloque, la conclusión, consta de tres partes:

Informe de que ha ganado el conductor líneas 1940-2020.

Informe de que el ganador es el peatón, líneas 2580-2640.

Y el final propiamente dicho, donde se pregunta si se desea jugar de nuevo. Lineas 2650-2790. Hemos dejado para el final ciertas subrutinas, que son las siguientes: La que imprime el circuito. Líneas 2110-2360. Introducción en memoria de los datos de la rutina en C/M. Líneas 2370-2440. Su listado en ensamblador sería:

ORG 30000

CALL #BDD6; salto directo al firmware. Lee carácter.
LD (29999), A; guarda en 29999 el carácter leido.
RET

Esta sencilla rutina se basa en una llamada al sistema operativo, a la subrutina TXT UNWRITE, que lee un carácter de la pantalla. H debe contener la columna, L contiene la fila, y tras la llamada en A se devuelve el código del carácter, que se guarda en la posición de memoria 29999 para ser leido desde el BASIC.

— Redefinición de los gráficos. Líneas 2450-2570. El método empleado, es el normal; SYMBOL AFTER n para decir a partir de que gráfico se va ha cambiar, y SYMBOL n, 8 datos, para ir definiendo los gráficos.

Si eres programador pueden serte de utilidad la subrutina que centra, y la que reconoce el carácter que hay en la posición del cursor.

Mundo Amstrad

ATROPELLO
(c) MUNDO AMSTRAD , UNICORNIO SOFT

AUTOR: ANGEL GARCIA DELGADO (A.G.D)

★ YEAR: 1987
★ LANGUAGE:
★ GENRE: BASIC
★ LiCENCE: LISTING

 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» Atropello    (Mundo  Amstrad)    SPANISH    LISTINGDATE: 2022-08-13
DL: 172
TYPE: PDF
SiZE: 4069Ko
NOTE: 5 pages/PDFlib v1.6

Je participe au site:
» Pour ce titre nous ne disposons de fichier executable sur CPC (Dump, Saisie du listing) , alors si vous avez ça dans vos cartons ou vous désirez usé vos petit doigts boudinés sur votre clavier faites le nous savoir.
» Vous avez des infos personnel ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 260 millisecondes et consultée 1048 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.