Skip to content

Djruizz/Bitopoly

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bitopoly - Juego de Monopolio en C

Evaluación Asincrónica II - Programación estructurada

Descripción

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.

Autores

  • Dario Ruiz
  • Akemi Arao
  • Mateo Rodríguez

Estructura del Proyecto

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

Características Principales

Tablero

  • 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

Jugadores

  • 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

Mecánica del Juego

  • 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

Estructura de Datos

Estructura Casilla

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 bytes

Estructura Jugador

typedef 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 bytes

Menú Principal

El juego ofrece las siguientes opciones:

  1. Iniciar Nueva Partida: Comienza un nuevo juego
  2. Cargar Partida Existente: Continúa una partida guardada
  3. Mostrar Ranking: Visualiza el histórico de victorias
  4. Reglas Generales del Juego: Muestra las instrucciones
  5. Salir: Cierra el programa

Compilación

Para compilar el proyecto:

gcc -o bitopoly main.c bitopoly.c -lm

Ejecución

Para ejecutar el programa compilado:

./bitopoly

O en Windows:

bitopoly.exe

Reglas del Juego

  • 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

Archivos Generados

  • ranking.txt: Contiene el histórico de partidas ganadas por cada jugador

Tecnologías Utilizadas

  • Lenguaje: C
  • Estándar: C99 o superior
  • Librerías estándar: stdio.h, stdlib.h, string.h, time.h

Notas de Implementación

  • Uso de campos de bits para optimizar el uso de memoria en las estructuras Jugador y Casilla
  • 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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages