Fundamentos:Solucións:Bomber

De ASIRodeira

Escribir un Xogo no que participan dous xogadores nun taboleiro de 8x8. En cada turno un xogador pode moverse ou poñer unha bomba, perdendo o xogador que non poda efectuar o seu movemento. Un xogador non poderá mover si a casilla á que se ten que desplazar está ocupada por unha bomba ou por outro xogador. As bombas impiden o paso tanto o xogador contrario como ó que as puxo, e teñen unha duración de 5 turnos.


Índice

Solucións de Xavi

Makefile

Ficheiro de construcción do programa.

Podes Descargar o Makefile

 
FLAGS = `pkg-config --cflags --libs libglade-2.0`
FLAGSC = `pkg-config --cflags libglade-2.0`
 
bomber: bomber.c
	gcc bomber.c -o bomber $(FLAGS) -export-dynamic

Aplicación GTK

E preciso ter a versión 2.8 das Gtk para que funcione o diálogo de acerca de... Si non se ten o GTK+ 2.8 é necesario comentar as liñas

 
 d=(GtkFileChooser *)glade_xml_get_widget(__gui,"gardar");
 gtk_file_chooser_set_do_overwrite_confirmation(d,TRUE);
 

Na función main.

Interface

Descargar GUI (ficheiro xml tablero.glade)
Descargar Debuxos (Descomprimir na carpeta do programa)

Pseudocódigo

 
  Cando se pulse unha tecla de movemento ou click no rato
     Segun a Xogada
          Si e moverse: comprobar que se pode e moverse
          Si e poñer bomba: comprobar que se pode e poñela
     Fin Segun
     Si o xogador efectuou a súa xogada
       Cambio de xogador
       Decrementar as bombas, si procede
       Comprobar que o outro xogador non perdeu
     Fin-Si

Implementación en C

Ver/Descargar
Ferramentas persoais