Juego de la vida (Juego en C)

7 03 2008

Hoy quería hablaros de un juego que ha publicado mi compañero Imydes y el cuál quiere compartir con todo el mundo. He aquí la creación de “Un Juego de la Vida”;

Los Requisitos: con las típicas librerias ANSI C y un compilador de C en condiciones (Veasé gcc(Linux/Unix) ó Dev C++ (Win32) debería bastaros para probar el juego, aún así cualquier duda que se os proponga podeís dejarmela aquí o en la web de mi compi sin ningún problema. La licencia es CC (Creative Commons)

Web Oficial de Imydes

/*
Autor: Imydes
Descripció: Joc de la vida
Data: 21/02/2008
*/

#include

/*****************************
* Definicions *
****************************/
#define MAX_COOR 7

/*****************************
* Tipus *
*****************************/

typedef int Tterreny[MAX_COOR][MAX_COOR];

/*****************************
* Capcelera de les funcions *
******************************/

void preparar_terreny(Tterreny &original, Tterreny &temporal);
void inserir_habitants(Tterreny &original);
void mostrar_terreny(Tterreny &original);
int obtenir_generacions(void);
void resoldre_terreny(int generacions, Tterreny &original, Tterreny &temporal);
void copiar_terreny(Tterreny &original,Tterreny &temporal);

int main() {

int generacions;
Tterreny original, temporal;

printf(”Introduce los habitantes mediante coordenadas, la tabla es de 5×5\n”);

preparar_terreny(original, temporal);

inserir_habitants(original);

mostrar_terreny(original);

generacions = obtenir_generacions();

resoldre_terreny(generacions, original, temporal);

return 0;
}

/* Copiar Terreny */
void copiar_terreny(Tterreny &original,Tterreny &temporal) {
int fila, col;
for (fila = 1; fila < MAX_COOR-1;fila++)
for (col = 1; col < MAX_COOR-1; col++)
original[fila][col] = temporal[fila][col];
}

/* Gestió d’habitants del terreny */
void resoldre_terreny(int generacions, Tterreny &original, Tterreny &temporal) {
int g, fila, col;
int contador;
for(g=0;g
printf(“GENERACION %i\n”,g+1);
for (fila=1;fila
for (col=1;col
contador = 0;
contador = original[fila-1][col-1]+original[fila-1][col]+original[fila-1][col+1];
contador = contador+original[fila][col-1]+original[fila][col+1];
contador = contador+original[fila+1][col-1]+original[fila+1][col]+original[fila+1][col+1];

/* Decidim si creem o eliminem un habitant */

if (original[fila][col] == 1) {
if (contador == 2 || contador == 2 ) {
temporal[fila][col] = 1;
}
else {
temporal[fila][col] = 0;
}
}
else {
if (contador == 3) temporal[fila][col] = 1;
else temporal[fila][col] = 0;
}
printf(“%i”,temporal[fila][col]);
}
printf(“\n”);
}
copiar_terreny(original,temporal);
}
}

/* Preparació del terreny */
void preparar_terreny(Tterreny &original, Tterreny &temporal) {
int fila, col;
for (fila=0;fila
for (col=0;col
original[fila][col] = 0;
temporal[fila][col] = 0;
}
}
/* Sistema d’insersió d’habitants */
void inserir_habitants(Tterreny &original) {
int fila, col;
do {
scanf(“%i”,&fila);
scanf(“%i”,&col);

if (fila > 0 && fila < MAX_COOR-1 && col > 0 && col < MAX_COOR-1)
if (original[fila][col] == 1)
printf(“Ya tienes un habitante en la casilla %i:%i\n”,fila,col);
else
original[fila][col] = 1;
else
if (fila != 0 || col != 0) printf(“El terreno es de 1×5 x 1×5\n”);
}while(fila != 0 || col != 0);
}

/* Obtenim el nombre de generacions */
int obtenir_generacions(void) {

int generacions;
printf(“Dime el numero de generacions que quieres que haga (valor positivo)\n”);

do {
scanf(“%i”,&generacions);
printf(“\n”);
}while(generacions < 1);
return generacions;
}

/* Mostrem el terreny amb els habitants */
void mostrar_terreny(Tterreny &original) {

int fila, col;

for (fila=1;fila
for (col=1;col
printf(“%i”,original[fila][col]);
printf(“\n”);
}
}

PS: Como ya sabreís WordPress no preformatea correctamente el texto, asíque para una versión completa del código fuente, ir al weblog del autor, más arriba indicado.





Koders Una manera de ver el Open Source

9 12 2007

Koders nos permite realizar busquedas en proyectos Open Source en cualquier lenguaje de programación y en cualquier Licencia.
Si necesitas un empujón y necesitas una parte de código ya escrito Koders es tu lugar.
Koders también se nos ofrece en formato Plugin para nuestro Eclipse, muy útil cuando estas corriendo eclipse y necesitas en ese preciso momento consultar alguna parte de código sin salir de Eclipse.
Con esta pequeña aportación espero haber solventado alguna que otra duda que nos suele aparecer a la hora de escribir código que a veces dudamos de que el sintaxis que hemos escrito sea el correcto.





Linux Mint Codename Daryna

7 11 2007

Linux Mint Codename Daryna en su versión 4.0 nos ofrece probar su Distribución, con tres “Gestores de VentanasKDE y XFCE y por defecto Gnome en su Main Install. Nos ofrece un sistema compacto, útil y potente y con su propio sistema de paquetería (*.mint).
Algunas screenshots se pueden ver desde aquí.
Probé Linux Mint hará algunos meses y destacaba por su funcionalidad y estabilidad. De momento no me he decidido por probar la nueva version Daryna 4.0, en caso de probarla instalaría la edición con XFCE ya que es un gestor de ventanas bastante versatil y ligero, útil y potente y con un buen aspecto visual, también debo decir que es bastante personalizable sabiendo usarlo claro.

Os dejo los links de Linux Mint y otros de interés.

Linux Mint Official Website

Linux Mint – Download

Descarga de Linux Mint (Servidores oficiales).

XFCE Community Edition BETA 008

Main Edition BETA 021 (Gnome)

KDE Community Edition BETA 011

Si teneís cualquier duda o alguna pregunta estaré encantado de responderla.