★ AMSTRAD CPC ★ GAMESLIST ★ SOLITARIO DE LOS ESPACIOS (c) AMSTRAD EDUCATIVO ★

Amstrad Educativo
★ 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 ★ 

1. DESCRIPCION

El ejecutar el programa, aparecen en pantalla todas las cartas de una baraja francesa excepto los ases. La disposición de las mismas es de 4 filas con 13 posiciones por cada fila. Cada carta está dibujada creando una ventana (número 2) que según la carta va ser de unas dimensiones u otras. Posteriormente se hará incapié en ello. Ahora, sólo queda decir (y es muy importante para entender lo siguiente) que cada carta esta formada por 5 caracteres en vertical por 4 en horizontal:

***** (pretende ser una carta ex-
***** presacja en sus correspon-
***** d¡entes longitudes).
*****

La ventana número 4 la usamos para poner en la primera fila el número de columna que ocupa cada carta.

La línea 40 es usada para representar los tréboles que no se están incluidos en el juego de caracteres ASCII. Consite en dibujar (lo mejor que se pueda) un trébol en un cuadrado de 8 x 8. Cada cuadrado relleno se sustiurá por dos elevado a n.0 cuadrado-1. Se realiza esta operación en cada fila (sumándose cada potencia en caso de tener más de un cuadrado relleno por fila) y el resultado se pone en la intrucción 'SYMBOL'. El primer dígito va a ser el código en ASCII que va a representar. Nótese que tras este primer dígito, hay 8 más
(correspondientes a cada fila del cuadrado).

En la línea 50 reservamos espacio para las siguientes tablas:

  • posic$ (4,1 3): guarda el valor que hay en cada posición. El primero representa la fila; el segundo, la columna. Este array va a contener algo de la forma: "4, 1”, ''13,4'', ... Esto indica (en el primer caso) que la carta es un 4 y el palo es 1 (El 1 es carros; el 2 picas, el 3 corazones y el 4 tréboles).
  • da (13,4): almacena 1 cuando la carta obtenida ya se ha dado. O en caso se dibujará.

La primera carta comienza en la línea 2 (filai = 2: o sea, fila inicial) para terminar 3 líneas más abajo (fila f = fila i + 3; esto es, fila final. Nótese que ocupa las líneas 2, 3, 4, 5 o sea 5 líneas en total). La impresión en ancho comienza en la

columna 2 (coli = 2, o sea columna Inicial) y termina 4 más allá (col f = col i + 4: columna final. Nótese lo mismo que anteriormente se ha dicho). Con este resultado se invierten los colores de fondo y tinta (línea 140). Este método de impresión de cartas se va a utilizar a lo largo de todo este programa.

Como las reglas del juego exigen no colocar los ases, en la línea 190 obligamos un salto para dejar esa posición en vacío.

Lo que ocurre en las líneas 200-280 es lo siguiente:

  • Si v$ (palo de la carta) es 1 se imprime el caracter 227 del código ASCII que es un rombo (carros).
  • Si vale 2, se imprime el 299 (picas).
  • Valiendo 3 se imprime un corazón (caracter 228).
  • Cualquier otro valor que sea (4 evidentemente) para imprimir el carácter 250 que hemos creado (trébol).

Al finalizar el juego calcula las cartas colocadas correctamente sabiendo que la carta colocada en cada posición ha de ser una unidad mayor que su columna correspondiente (910) de manera que en la columna 1 h a de haber un 2 (una unidad más); de esta manera, en la columna 1 2 debe haber una carta con valor 13 (rey) y en la última columna (la 13) debe haber un blanco (el correspondiente a los ases suprimidos en el comienzo).

2. FUNCIONAMIENTO

El objeto del juego es conseguir 4 hileras de 1 2 cartas; del 2 al rey.

Se reparten todas las cartas y se retiran los ases. Los espacios dejados por los ases se rellenan con una carta más alta que la anterior teniendo muy presente que de haber más de un espacio junto, habrá de ponerse la carta elegida en el que este más a la izquierda. De manera que si un espacio sigue al 4 de picas sólo puede ocuparse con un 5. Un espacio a la derecha de un rey no puede ser ocupado y en la primera columna de la izquierda sólo puede colocarse un 2.

Las casrtas que se consideran mal colocadas son aquéllas que no están en sus columnas respectivas (el dos en la primera, 3 en la segunda...).

Los movimientos de cartas se realizan de acuerdo con las coordenadas de cada una (indicando fila y columna). La primera fila es la que está más alta en la pantalla; la segunda la siguiente más abajo; así hasta la cuarta fila que es la inferior. Las columnas son las marcadas en la primera línea de la pantalla.

La carta "origen" se refiere a aquélla que es seleccionada para trasladar a otra posición (este término es equivalente en "fila" y "columna").

La carta "destino”, "fila destino” o "columna destino" son las coordenadas de la posición libre que se va a ocupar con la "carta origen".

  • Si "carta" que contiene el valor de cada carta vale 11, se imprime una "J".
  • En caso de valer 12 saldría una Q.
  • En caso del 1 3, pondría una K. En cualquier otro caso (que la variable este comprendida entre 2 y 10) imprimirá su propio valor.

La línea 300 hace moverse la ventana a la siguiente carta. Es decir, actualiza los valores de columnas (inicial y final) y filas (inicial y final) para la siguiente carta. En la línea 300 mueve la columna inicial 6 posiciones a la derecha (contando un blanco entre carta y carta). Cuando se imprimen 1 3 columnas (salida del bucle en la línea 310) se inicializa las columnas iniciales y finales (coli y colf) puesto que se pasa a la línea siguiente y, sin embargo, se suma 5 unidades a la fila que teníamos antes (fila i = fila i + 5). Entre fila y fila, también existe un espacio en blanco.

En las líneas 340-370 se escoge una carta especificando sus coordenadas de fila y columna comprobándose que se trata de cartas existentes (la columna no excede de 13...)

Entre 380 y 440 se localizan (por el procedimiento anterior) las coordenadas de la carta que se quiere mover. Se invierten las tintas para marcar dicha carta y solicita (560-590) el lugar donde se va a colocar.

A continuación (600-670) se comprueba la validez del movimiento según las reglas establecida y que se darán más ampliamente en el punto 2:

  • "cartad” contendrá el valor del destino. Este sólo puede ser un o (valor de los ases que quitamos al principio. En caso contrario indicaría que estamos tratando de colocar una carta sobre otra.
  • En la línea 620 se comprueba que si la posición destino es la primera columna, la carta que se va a colocar en dicha posición sea un 2. Cualquier otra carta será rechazada.
  • El objeto de la línea 630 es el de reconocer la carta anterior a la que ponemos. Esta carta ha de ser, obligatoriamente, inferior a la que ponemos. La variable "cartaa” es la que posee el valor de dicha carta. Si la diferencia entre la carta anterior y la que ponemos es distinto de 1, es rechazada (Tras un 8 sólo puede ir un 9...); esto corresponde a las líneas 650 y 655.

Si "w" vale 1, es indicativo de que la carta que hemos pretendido colocar es errónea por lo que volvemos a imprimirla en su posición original (línea 770).

Si "w" vale O implica la posibilidad de colocar esa carta en la posición escogida. Para ello calcula las coordenadas (680-740) es decir, se pone el valor de la posición inicial en la final y un 1 en la original (todo ello apoyado en una variable auxiliar).

El final de partida (805-850) viene dado cuando todos los espacios en blanco están tras los reyes (líneas 840 y 845). "car" contiene la carta anterior a la columna que apunta "j" y "carp" el valor de la carta de la columna.

SOLITARIO DE LOS ESPACIOS
(c) AMSTRAD EDUCATIVO

Author: Angel Larumbe

★ YEAR: 1986
★ LANGUAGE:
★ GENRE: BASIC , CARD GAME
★ LiCENCE: LISTING

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» Solitario  de  los  Espacios    (Amstrad  Educativo)    LISTING    SPANISHDATE: 2022-12-04
DL: 18 fois
TYPE: PDF
SIZE: 1891Ko
NOTE: Supplied by www.acpc.me ; 2 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 146 millisecondes et consultée 91 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.