Un simulador clásico de casino desarrollado desde primeros principios en C++.

Casino Roulette es una aplicación de escritorio que recrea la experiencia visual y matemática de una ruleta de casino europea (de 37 casillas), desarrollada íntegramente en C++ sobre la librería gráfica graphics.h.

El proyecto integra un ciclo de juego completo con gestión bancaria en tiempo real, un tapiz de apuestas interactivo con múltiples zonas de juego y una simulación física que coordina el giro independiente de la rueda y la bola sin recurrir a motores externos.

  • Lenguaje Core
    C++
  • Librería Gráfica
    WinBGIm (Graphics.h)
  • Tipo de Proyecto
    Cliente Freelance
  • Arquitectura
    Paneles Modulares

Rendimiento Fluido

fps

Motores Externos

Zonas de Apuesta

Lógica Propia

%
Interfaz principal de Roulette Casino Simulator
Vista principal: panel de usuario (izquierda), tapiz de apuestas (centro) y ruleta física (derecha)

Diseño por módulos independientes y optimización de renderizado.

La interfaz está estructurada en tres componentes visuales desacoplados: el panel de perfil y balance del jugador, el tapiz interactivo de apuestas y el escenario visual de la ruleta física con sus controles de acción.

Para garantizar un rendimiento ágil sin sobrecargar el procesador en un entorno sin aceleración por tarjeta gráfica, el sistema implementa una estrategia de renderizado bajo demanda: durante el estado de reposo, la pantalla solo se actualiza cuando el usuario interactúa (como pasar el cursor sobre un botón o colocar una ficha).

Durante la animación del giro, el refresco continuo se aísla exclusivamente a la región circular de la ruleta. De este modo, los paneles de estadísticas y el tablero permanecen estáticos en memoria, ahorrando recursos de cómputo y evitando repintados innecesarios.

Dinámica de juego interactiva, física desacoplada y liquidación de apuestas.

Física de Giro Desacoplada: La ruleta y la bola rotan en sentidos opuestos con velocidades independientes y fricción gradual, simulando el comportamiento dinámico de un casino real. Al detenerse el plato, la bola desacelera suavemente hasta confluir con precisión en la casilla ganadora.

Tapiz de Apuestas Reactivo: El tablero ofrece 49 áreas clicables con detección de contacto precisa. Cada selección actualiza el saldo de forma inmediata, apila fichas visuales con relieve y permite combinar jugadas tanto internas (números plenos) como externas (rojo/negro, par/impar, docenas y columnas).

Motor de Liquidación y Banca: Al confirmarse el resultado, el sistema evalúa automáticamente todas las apuestas colocadas en la mesa, calculando los pagos según las reglas oficiales de la ruleta europea y actualizando el balance del usuario al instante.

Simulación en tiempo real: giro de rueda a 60 FPS, desaceleración suave de bola y parada precisa en la casilla ganadora

Superación del parpadeo gráfico y sincronización fluida de la animación.

Reto: Eliminación del parpadeo visual (Screen Flicker). Al dibujar decenas de formas geométricas y rellenar sectores circulares fotograma a fotograma directamente sobre la pantalla visible, el monitor generaba parpadeos molestos y cortes visuales que arruinaban la experiencia de usuario.

Solución: Se diseñó un flujo de doble búfer donde cada fotograma se dibuja por completo en un lienzo oculto en memoria antes de mostrarse al usuario en una única operación atómica. Esto eliminó cualquier rastro de parpadeo y garantizó una tasa de 60 cuadros por segundo constante.

Reto: Transición creíble y armoniosa entre la bola y la rueda. Coordinar dos elementos que giran a ritmos diferentes para que la bola descienda de forma orgánica sobre una casilla en movimiento representaba un desafío de precisión visual.

Solución: Se calibró una secuencia de frenado progresivo por etapas que simula la pérdida natural de energía por rozamiento, logrando que la bola se acomode de manera creíble en su destino sin frenazos bruscos ni saltos artificiales.

Mi primer encargo freelance: desarrollo iterativo y validación con cliente.

Casino Roulette representó mi primera experiencia profesional en desarrollo freelance. Afrontar este encargo me impulsó a adoptar de forma práctica un flujo de trabajo iterativo: descomponer el proyecto en entregables funcionales y coordinar demostraciones periódicas con el cliente.

En cada sesión revisamos avances tangibles (primero el tablero interactivo, luego la dinámica visual y finalmente el sistema de apuestas y cobros). La retroalimentación constante permitió pulir la usabilidad y resolver dudas a tiempo, culminando con la entrega satisfactoria de la versión 1.0, aprobada por el cliente y libre de fallos en la lógica bancaria.

  • Modalidad
    Freelance
  • Metodología
    Entregas Iterativas
  • Resultado
    Entrega Exitosa v1.0

Proyecto Freelance

er

Feedback Integrado

%

Versión de Producción

v1.0

<CONTACTO/>

[ Desmutea ]

Nada mas que decir ..

Siempre estoy disponible para una charla, sobre la última tecnología, filosofía de diseño, o tu próximo proyecto. Puedes contactarme en..

9S illustration