Evaluación Asincrónica II - Programación estructurada
Bitopoly es un juego de estrategia inspirado en Monopoly, implementado en C. Es un juego para dos jugadores donde el objetivo es acumular riqueza comprando propiedades, cobrando rentas y evitando perder dinero en casillas especiales.
- Dario Ruiz
- Akemi Arao
- Mateo Rodríguez
Bitopoly/
├── bitopoly.h # Definiciones de estructuras y funciones principales
├── bitopoly.c # Implementación de las funciones del juego
├── main.c # Punto de entrada del programa
├── datos/
│ └── ranking.txt # Archivo de ranking histórico de partidas
└── README.md # Este archivo
- 20 casillas dispostas en el tablero
- Tipos de casillas:
- Inicio (Posición 0): Punto de partida donde los jugadores reciben dinero
- Propiedades (Posiciones varias): Pueden ser compradas y generan renta
- Suerte (Posición 8): El jugador recibe una cantidad aleatoria de dinero (50-400)
- Impuesto (Posición 16): El jugador pierde el 40% de su dinero
- Cárcel (Posición 10): Casilla de penalización
- Dos jugadores por partida
- Cada jugador comienza con dinero inicial
- Posición: Se calcula mediante un lanzador de dados (1-6)
- Propiedades: Pueden poseer hasta 20 propiedades (usando campos de bits)
- Estado: Activo o en Bancarrota
- Lanzamiento de dados: Cada turno se lanzan dados para determinar el movimiento
- Dobles: Si sacas dobles, vuelves a tirar
- Compra de propiedades: En propiedades sin dueño, puedes comprar
- Pago de renta: Si caes en una propiedad ajena, pagas renta al dueño
- Sistema de ranking: Se guarda el histórico de partidas ganadas
typedef struct {
unsigned int precio; // Precio de la propiedad
unsigned int renta; // Renta a pagar
TipoCasilla tipo; // Tipo de casilla
char nombre[20]; // Nombre de la propiedad
unsigned char propietario : 2; // ID del propietario
} Casilla; // 36 bytestypedef struct {
int dinero; // Dinero disponible
EstadoJugador estado; // Activo o en Bancarrota
char nombre[20]; // Nombre del jugador
unsigned int posicion : 5; // Posición en el tablero (0-19)
unsigned int propiedades : 20; // Propiedades que posee (campo de bits)
unsigned int enCarcel : 2; // Indica si está en cárcel
} Jugador; // 32 bytesEl juego ofrece las siguientes opciones:
- Iniciar Nueva Partida: Comienza un nuevo juego
- Cargar Partida Existente: Continúa una partida guardada
- Mostrar Ranking: Visualiza el histórico de victorias
- Reglas Generales del Juego: Muestra las instrucciones
- Salir: Cierra el programa
Para compilar el proyecto:
gcc -o bitopoly main.c bitopoly.c -lmPara ejecutar el programa compilado:
./bitopolyO en Windows:
bitopoly.exe- Los jugadores comienzan en la casilla de Inicio
- Alternan turnos lanzando dados para moverse alrededor del tablero
- Si caen en una propiedad sin dueño, pueden comprarla
- Si caen en una propiedad de otro jugador, deben pagar la renta
- Las casillas especiales (Suerte, Impuesto, Cárcel) tienen efectos específicos
- El juego termina cuando uno de los jugadores queda en Bancarrota
- El ganador es quien logra arruinar al otro jugador
- ranking.txt: Contiene el histórico de partidas ganadas por cada jugador
- Lenguaje: C
- Estándar: C99 o superior
- Librerías estándar: stdio.h, stdlib.h, string.h, time.h
- Uso de campos de bits para optimizar el uso de memoria en las estructuras
JugadoryCasilla - Implementación de funciones recursivas para el lanzamiento de dados (dobles)
- Sistema de menús interactivo en consola
- Gestión de archivos para guardar y cargar partidas