Consultas, desarrollo de programas y petición de presupuestos:

Mostrando entradas con la etiqueta juegos. Mostrar todas las entradas
Mostrando entradas con la etiqueta juegos. Mostrar todas las entradas

domingo, 3 de junio de 2012

Gambas: Aventura conversacional en POO "Salir de la Mansion"

Como os comente la semana pasada, queria modificar el código del programa que estaba con el paradigma de programación estructurada, y pasarlo a programación orientada a objeto. Bueno pues ya esta...

Lo que me costó más trabajo fue crear el "interprete" de ordenes para que el personaje obedeciera las ordenes tipo "ir sur", etc.

Ademas, para que los objetos interactuaran correctamente (por ejemplo, para que se pueda coger la escalera, solo cuando el perro este tranquilo), lo que hice fue crear una serie de "intrucciones de condiciones" que las añado cuando creaba el objeto "Escalera", y asi el interprete analizaba esa instruccion de condiciones para saber si podia coger la escalera del escenario y añadirla a la "mochila".

En fin, el programa es un ejemplo de un juego simple, pero creo que es una buena forma de aplicar algo de la programación orientada a objetos.


Enlace de descarga: Enlace de descarga

Nota:
Sale un anuncio, (que tarda 8 segundos), luego pulsais sobre el boton:
Image
y ya se descarga el archivo.
Perdonad por las molestos anuncios, pero la crisis nos afecta a todos  






domingo, 28 de agosto de 2011

Juguemos al BingoGambas con Gambas2

Bingo-Gambas


Es un programa para simular el juego de Bingo, genera la salida de  los números aleatorios (de 1 a 75), y los señala en la pantalla.



En el aspecto sobre la programación de este programa, os comento:

Es fácilmente ampliable para más (o menos) números, al utilizar array de label para dibujar y hacer cambios en el cartón de la pantalla.
Módulo "var" donde se encuentras las variables globales:

' Gambas module file
PUBLIC num_max AS Integer = 75
PUBLIC num_sinsalir AS Integer = 75
PUBLIC incx AS Integer
PUBLIC incy AS Integer
PUBLIC fichas AS NEW Object[] ' var.num_max]
PUBLIC ficha_temp AS Object
PUBLIC texto AS String



Módulo "carton":

' Gambas module file

PUBLIC SUB rellenacarton()
DIM a AS Integer
var.incx = -47 + 4
var.incy = 70
FOR a = 0 TO var.num_max - 1
var.ficha_temp = NEW Textlabel(FormCarton)
var.incx = var.incx + 47
IF var.incx > 670 THEN
var.incy = var.incy + 47
var.incx = 4
ENDIF
var.ficha_temp.x = var.incx
var.ficha_temp.y = var.incy
var.ficha_temp.Background = &H5FAFFF&
var.ficha_temp.Alignment = 3
var.ficha_temp.border = 3
var.ficha_temp.height = 42
var.ficha_temp.width = 42
var.ficha_temp.text = Str(a + 1)
var.fichas.Add(var.ficha_temp)
NEXT
END
 

 Y  acceder a ellos para cambiar el color del fondo es también muy sencillo. Módulo "sacar"
 
…..
'pongo la el numero de la ficha en fondo rojo....
var.fichas[numero - 1].Background = &HFF3D5D&
…..


El sistema de elegir el "número" aleatorio, es similar al que utilice en el programa "Refranero":
- Se crea una lista con todos los números.
- Luego elegimos aleatoriamente la posición,
- sacamos el numero elegido de la lista
-  y recostruimos la lista con un elemento menos.

Todo este proceso se realiza con ayuda del archivo "bolas.txt", que es el que tiene la lista de los números que aun no han salido.
 
….
posicion = Rnd(0, var.num_sinsalir)
'una cosa es el numero y otra es la posicion de la lista...
'abre el archivo que contiene las bolas
cadena = lista.leer()
bolas_txt = Split(cadena, "|")
'crear un nuevo array con los datos
FOR a = 0 TO bolas_txt.count - 2
bolas[a] = CInteger(bolas_txt[a])
NEXT
' coge el que ocupa la posicion
numero = bolas[posicion]
'crea una nuevo array sin esa posicion
c = -1
FOR a = 0 TO bolas_txt.count - 2
IF a <> posicion THEN
c += 1
bolas_reformada[c] = bolas[a]
ENDIF
NEXT
'lo guarda
cadena = ""
FOR a = 0 TO bolas_reformada.Count - 1
cadena &= Str$(bolas_reformada[a]) & "|"
NEXT
File.Save(User.home & "/bolas.txt", cadena)
….


 También he añadido la opción de decir en voz el número que sale escogido, usando el comando speak. Módulo "hablar"

' Gambas module file

PUBLIC SUB di(texto AS String)
EXEC ["aoss", "espeak", "-ves", "-s 120", texto] 
END

Aquí tenéis una captura de la pantalla del IDE, donde podéis ver los módulos que forman el programa.


Aquí teneís el enlace de descarga del código fuente

Varios juegos en Gambas: Tetris

n amigo, me ha pasado un código fuente de un juego de tetris. En el código me he dado cuenta de que viene el autor Carlo Cominotti y su pagina web  http://comisat-games.sf.net. y me he llevado una gran sorpresa al encontrar en dicha página web varios juegos realizados en gambas, pero para la version 1.0, con lo cual habría que revisarlos para que funcionen bien en la versión actual de gambas2 (os dejo el codigo fuente de varios juegos, pero dan algunos errores y habrá que revisar su código...)

También, os dejo el codigo fuente del Tetris (que funciona perfectamente en gambas2). Nota los comentarios del codigo fuente están en italiano.


Aplicación Algoritmo MiniMax: Juego 3 en raya con sonido

       Aquí os dejo mi primer juego de Inteligencia Artificial (I.A.)... no tiene mucho merito porque gracias al videotutorial de Jorge Rubira, de la revista Solo Programadores, donde explicaba como hacer el algoritmo del MiniMax para un juego de 3 en raya en Java, "solo" he tenido que traducir de Java a Gambas2.
          Pero bueno, creo que el resultado obtenido y lo que he aprendido (me he visto el vídeo a cámara lenta por lo menos 5 veces)...pues merece la pena haberlo hecho (y también bastante parte del  código es reutilizable para otros juegos de I.A.).



 Aqui os dejo el código fuente

Nota:
El archivo es de 2.1 mb, ya que le he incluido algunos sonidos.

Juegos de Naves Espaciales

Blog: http://ibone.org.ua/
Además de su foro me he bajado un juego de naves espaciales….jejeje (que aunque sencillo, es muy interesante su código ya que nos vale para aprender sobre clases (las naves espaciales), y como ejemplo de usos de sdl, etc…).
Enlace de descarga del juego (foro ruso)
Enlace de descarga del juego (google code)


Son las cosas que tienes con internet y el software libre, gente del todo el mundo participando y aportando….

Juego Rubik 2D

He encontrado en este foro un interesante codigo de un juego realizado por ARIEL.
Os adjunto varias capturas de pantalla