cursos:basic:zxmines_ejemplo_comentado

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
cursos:basic:zxmines_ejemplo_comentado [20-03-2009 19:39] sromerocursos:basic:zxmines_ejemplo_comentado [24-03-2009 09:29] (actual) sromero
Línea 1: Línea 1:
 ====== ZXMines: Juego Completo en BASIC comentado ====== ====== ZXMines: Juego Completo en BASIC comentado ======
  
-ZXMines es un juego en BASIC que se presentó al concurso de programación de Juegos en Basic 2003 de ByteManiacos. ZXMines implementa en BASIC un sencillo juego de Buscaminas en el cual debemos destapar todo el tablero sin levantar las casillas en que se alojan las minas (destapar una mina finaliza el juego). Para poder destapar totalmente el tablero sin levantar casillas con minas disponemos de una información providencial: cada casilla que no contiene una mina nos indica numéricamente cuántas minas hay en las 8 casillas de alrededor de la casilla actual. +//ZXMines es un juego en BASIC que se presentó al concurso de programación de Juegos en Basic 2003 de ByteManiacos. ZXMines implementa en BASIC un sencillo juego de Buscaminas en el cual debemos destapar todo el tablero sin levantar las casillas en que se alojan las minas (destapar una mina finaliza el juego). Para poder destapar totalmente el tablero sin levantar casillas con minas disponemos de una información providencial: cada casilla que no contiene una mina nos indica numéricamente cuántas minas hay en las 8 casillas de alrededor de la casilla actual.// 
- +\\  
-ZXMines: el clásico juego Buscaminas, en BASIC+\\ 
  
 Así, si destapamos una casilla y contiene el número 1, sabemos que alguna de las 8 casillas de alrededor de la misma contiene una mina. Utilizando la información numérica que nos proporcionan las diferentes casillas que vamos destapando podemos ser capaces de averiguar qué casillas contienen minas y evitarlas. El juego acaba cuando destapamos una mina (y perdemos) o bien cuando destapamos todas las casillas del tablero quedando sólo por destapar las casillas con minas (ganando el juego). Por último, una cosa a destacar es que si destapamos una casilla sin minas alrededor, se abre todo un área de juego a la vista, para acelerar el ritmo de juego. Así, si destapamos una casilla y contiene el número 1, sabemos que alguna de las 8 casillas de alrededor de la misma contiene una mina. Utilizando la información numérica que nos proporcionan las diferentes casillas que vamos destapando podemos ser capaces de averiguar qué casillas contienen minas y evitarlas. El juego acaba cuando destapamos una mina (y perdemos) o bien cuando destapamos todas las casillas del tablero quedando sólo por destapar las casillas con minas (ganando el juego). Por último, una cosa a destacar es que si destapamos una casilla sin minas alrededor, se abre todo un área de juego a la vista, para acelerar el ritmo de juego.
 +
 +\\ 
 +{{ :cursos:basic:zxmines_1.gif }}
 +;#;
 +//ZXMines: el clásico juego Buscaminas, en BASIC//
 +;#;
 +\\ 
  
 El objetivo del presente artículo es mostrar y explicar el código BASIC utilizado para programar ZXMINES, mostrando así algunos trucos que en BASIC proporcionan una mayor velocidad de ejecución. El objetivo del presente artículo es mostrar y explicar el código BASIC utilizado para programar ZXMINES, mostrando así algunos trucos que en BASIC proporcionan una mayor velocidad de ejecución.
  
 \\  \\ 
 +
 ===== Pseudocódigo del juego ===== ===== Pseudocódigo del juego =====
  
Línea 224: Línea 232:
 Los 3 dibujos han sido creados con SevenuP de la misma forma. Por ejemplo, para crear la mina, abrimos SevenuP y creamos un nuevo dibujo de 8x8. Dibujamos la mina (en la siguiente figura la veremos a medio dibujar) y vamos a File , y luego a Output Options y seleccionamos "No attributes" y como Byte Sort Priority dejamos "X char, Char line, Y char, Mask". Los 3 dibujos han sido creados con SevenuP de la misma forma. Por ejemplo, para crear la mina, abrimos SevenuP y creamos un nuevo dibujo de 8x8. Dibujamos la mina (en la siguiente figura la veremos a medio dibujar) y vamos a File , y luego a Output Options y seleccionamos "No attributes" y como Byte Sort Priority dejamos "X char, Char line, Y char, Mask".
  
-Creando nuestros gráficos en SevenuP+\\  
 +{{ :cursos:basic:zxmines_2.gif }} 
 +;#; 
 +//Creando nuestros gráficos en SevenuP// 
 +;#; 
 +\\  
  
 A continuación exportamos los datos, desde el menu File, opción Export Data. Escribimos un nombre de fichero (por ejemplo, mina.c), y en el desplegable seleccionamos "C source" en lugar de "raw Binary". Al darle a OK habremos creado un fichero mina.c con el gráfico exportado a formato C. El aspecto del fichero será similar (comentarios aparte) al siguiente: A continuación exportamos los datos, desde el menu File, opción Export Data. Escribimos un nombre de fichero (por ejemplo, mina.c), y en el desplegable seleccionamos "C source" en lugar de "raw Binary". Al darle a OK habremos creado un fichero mina.c con el gráfico exportado a formato C. El aspecto del fichero será similar (comentarios aparte) al siguiente:
Línea 242: Línea 256:
  
  
-Aspecto de la pantalla de presentación+\\  
 +{{ :cursos:basic:zxmines_3.gif }} 
 +;#; 
 +//Aspecto de la pantalla de presentación// 
 +;#; 
 +\\  
  
 \\  \\ 
Línea 579: Línea 599:
 ===== Enlaces ===== ===== Enlaces =====
  
-    * Fichero basic_zxmines.zip conteniendo: zxmines.*, Makefile, README. +    * {{:cursos:basic:basic_zxmines.zip|Fichero basic_zxmines.zip}} conteniendo: zxmines.*, Makefile, README. 
-    * Fichero zxmines.tap (el programa ya compilado). +    * {{:cursos:basic:zxmines.tap|Fichero zxmines.tap}} (el programa ya compilado). 
-    * Concurso de BASIC 2003 de Bytemaniacos. +    * [[http://www.bytemaniacos.com/html/basic2003.html|Concurso de BASIC 2003 de Bytemaniacos]]
-    * SevenuP. +    * [[http://www.speccy.org/metalbrain/|Editor gráfico SevenuP]]
-    * bas2tap.+    * [[http://www.worldofspectrum.org/utilities.html#other|Herramienta bas2tap]].
  
  
 \\  \\ 
-;#;+;;#
 **Santiago Romero\\ Septiembre 2005\\ Magazine ZX #12** **Santiago Romero\\ Septiembre 2005\\ Magazine ZX #12**
-;#;+;;#
  
  • cursos/basic/zxmines_ejemplo_comentado.1237577981.txt.gz
  • Última modificación: 20-03-2009 19:39
  • por sromero