Con este programa, jugar a la brisca contra el ordenador puede resultar bastante divertido, si tenemos en cuenta que ganarle no es nada fácil, ya que el ordenador no tira las cartas al azar, sino ajustándose a las normas del juego. Este es el juego de cartas de la brisca, en el que juega un jugador contra el ordenador. La pantalla se presenta de la forma siguiente: [NOIMG] El juego se termina cuando se han acabado las cartas del mazo, momento en el cual se expone la puntuación y se pregunta si se desea jugar de nuevo. También se puede detener durante la ejecución pulsando la tecla de borrado cuando nos toca tirar. Las jugadas del ordenador no son al azar, sino en cierto modo inteligentes, y muy fácil de variarlas o introducir otras nuevas, pues la ejecución es muy sistemática. La estructura principal del programa es un bucle que contiene cada jugada y que está situado entre las líneas 630 y 2480. En cada jugada el primero en tirar carta es aquel que ha ganado la baza anterior. Si ha sido el ordenador, este tira primero seleccionando la jugada que va a hacer entre 3 posibles. Posteriormente, se pide al jugador que tire su carta y se comprueba quién ha ganado. Si el jugador debe tirar el primero, porque ha ganado la baza anterior, según la carta que seleccione, el ordenador escogerá la suya, de acuerdo con el siguiente criterio: Se pregunta si es o no triunfo, y en cada caso si tiene o no tiene puntos. En cada uno de estos casos buscará entre las cartas que tiene la mejor. El criterio de mejor se hace secuencialmente, buscando primero una carta que gane; si no encuentra ninguna busca una que pierda cediendo pocos puntos, etc., todo ello dependiendo de a qué grupo pertenece la carta tirada por el jugador. Por ejemplo, si quiere tirar una carta que gane a la tirada por el jugador, la condición de búsqueda de la carta será que su palo sea el mismo y que sea de valor superior. Además, se informa de si, caso de encontrarse una carta que cumpla esa condición ganará el ordenador o el jugador. Con esta condición se entra en la subrutina de las líneas 3370-3490, que nos indica si hay alguna carta entre las que tiene el ordenador que cumple esa condición, y en caso afirmativo la tira. En caso de no encontrar ninguna, buscaríamos entonces una carta que no gane, pero que no ceda muchos puntos, o un triunfo, etc., siguiendo en todos los casos el mismo proceso anterior. Cuando se acaba una jugada se borran las cartas tiradas del grupo que tiene cada jugador y se sustituyen por las siguientes del mazo. Las cartas se presentan en seis ventanas, que son las siguientes: #1,#2 y #3: cartas del jugador #4: carta que pinta #5: carta tirada por el jugador #6: carta tirada por el ordenador Las cartas se almacenan en variables de tipo caracter, y la forma de las mismas es: a$ = ”3” palo de la carta núm. de la carta (1 a 9, y k Por tanto, left$ (a$,l) será el número para el rey) de la carta, y right$(a$,l) será su palo. El resto del programa es: Líneas 10-450: inicialización de variables, definición de caracteres y de ventanas. 460-620: baraja las cartas, reparte las primeras y establece el pinte. 630-2480: estructura principal. Realiza una jugada completa. 2490-2570: fin del juego y vuelta a empezar. 2580: subrutinas Subrutinas Líneas 2580-3250: escribe una carta, que esté introducida en la variable carta$, y en la ventana indicada por la variable ventana. Líneas 3260-3360: rutina fin de jugada. Borra las cartas tiradas y espera un instante. Líneas 3370-3490: rutina de búsqueda de una carta que cumpla una condición introducida en FNcondición (x). Si encuentra una, tira esa carta (la escribe en la ventana #5), determina si gana o pierde, y suma los puntos obtenidos. Variables Las más importantes en el desarrollo del programa son: a$(): contiene las cartas según el orden en que se van a dar. b$(): contiene en cada momento las tres cartas del jugador. c$(): id. con las del ordenador. l(): valores en puntos de las cartas del jugador. m(): id. del ordenador, p: puntos acumulados por el jugador, q: determina quién ha ganado, y por tanto a quién toca jugar el primero en la siguiente baza. Si es O juega primero el ordenador, si no el jugador. n: número de jugadas que se llevan. Sirve para ir rebajando las cartas del mazo. t: número de la carta elegida por el jugador (1, 2 ó 3). FNcondicion: contiene la condición para tirar una carta. Es una función que da un resultado booleano. ganacpu: variable booleana, que indica quién gana en la jugada si el ordenador tiene la carta buscada. encontre:también es booleana. Si es cierto quiere decir que ya se ha encontrado una carta, y nD es necesario seguir buscando en otras opciones. carta$, ventana: variables de entrada a la subrutina de escritura de las cartas. AS |