Anuncios

Bienvenidos sean a este post, hoy terminaremos todo lo visto en los posts anteriores.

Anuncios

Para ello debemos tomar el codigo que creamos en el post anterior para modificarlo, en caso de no tenerlo les dejo aqui los archivos:

Anuncios

Simplemente descarguen el archivo, extraigan estos archivos en un mismo directorio y listo, nuestro siguiente paso sera modificar el codigo actual en el archivo cartas.c con el siguiente codigo:

cartas.c

#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#include <stdlib.h>
#include <time.h>
#include "cartas.h"

int main()
{
	Mazo mazo;
	Mazo* aMazo = &mazo;

	IniciarMazo(aMazo);
	MezclarMazo(aMazo);

	Jugador j1, j2, j3, j4;

	Jugador* jugadores[] = { &j1, &j2, &j3, &j4 };

	for(int i=0; i < cNumJugadores; i++)
		IniciarJugador(jugadores[i]);

	for(int i=0; i < cCartasEnMano; i++)
	{
		for(int j=0; j < cNumJugadores; j++)
		{
			AgregarCartaAJugador(jugadores[j],
				TomarCartaDelMazo(aMazo));
		}
	}

	MostrarTodosJugadores(jugadores);
}
Anuncios

Primero definimos todas nuestras librerias necesarias:

  • stdio.h, la libreria basica
  • strings.h, la encargada de manejar las cadenas
  • stdbool.h, esta es necesaria para manejar el tipo bool
  • stdlib.h, esta es necesaria para la parte del PRNG
  • time.h, es la necesaria para manejar la funcion time de la semilla
  • cartas.h, donde estan todos los elementos de nuetras cartas
Anuncios
Anuncios

Al igual que en el post anterior primero declaramos un mazo, luego definimos un apuntador a este mazo, nuestras primeras dos acciones seran iniciar el mazo y luego mezclarlo, nuestro siguiente paso sera declarar nuestros cuatro jugadores, despues definiremos un array de los jugadores y le pasaremos la direccion de memoria de los jugadores anteriores, lo siguiente sera un bucle for donde iniciaremos a cada uno de los jugadores para despues por medio de dos bucles for anidados pasaremos primero por todas las cartas que debe tener cada jugador y con el otro le iremos agregando las cartas a cada uno de los jugadores, por ultimo llamamaremos a la funcion encargada de mostrar a todos los jugadores con sus respectivas cartas, compilemos y veamos como es su salida:

tinchicus@dbn001vrt:~/lenguajes/C$ ./prog/cartas
Jug 1: 
     as de Espadas
    nueve de Copas
   siete de Bastos
Jug 2: 
     rey de Bastos
    siete de Copas
   ocho de Espadas
Jug 3: 
     tres de Copas
   cinco de Bastos
caballo de Espadas
Jug 4: 
   seis de Espadas
  cinco de Espadas
    dos de Espadas
tinchicus@dbn001vrt:~/lenguajes/C$
Anuncios

Si vienen de los posts anteriores y recuerdan cuando vimos la primera vez el tema de los jugadores y las cartas siempre asignabamos las mismas cartas. pero ahora cada jugador tendra sus propias cartas, antes de terminar vamos a agregar una linea mas detras de la encargada de mostrar los jugadores y es la siguiente:

MostrarMazo(aMazo);
Anuncios

Esta la usaremos para mostrar el mazo, se vera completo o solo el resto? compilemos y veamos como es su salida:

Anuncios

Como pueden ver nuestras cartas siguen variando para cada jugador, pero ahora nos indica la cantidad de cartas que se repartieron a los jugadores y el resto del mazo que no se repartio, con esto tenemos un «juego» de cartas pero de forma muy basica.

Anuncios

En resumen, hoy hemos visto como hacer un juego de cartas mas real con todo lo implementado en los posts anteriores, hemos visto como solo haciendo un par de llamadas a funciones previamente vistas, hemos visto como nos genera un mazo mezclado para repartir entre los jugadores y por ultimo cual es el mazo restante, espero les haya sido de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios

Donación

Es para mantenimento del sitio, gracias!

$1.50