NOTE                  DATE: ......................................................
NOTE: ......................................................
   @reallygreatsite
      NOTE                                        DATE: ......................................................
                                                  NOTE: ......................................................
              INTRODUCCIÓN
EL PRESENTE PROYECTO SE BASA EN LA SIMULACIÓN DE UN JUEGO DE PROBABILIDAD
UTILIZANDO PROGRAMACIÓN ORIENTADA A OBJETOS. EL JUEGO CONSISTE EN
MANIPULAR UN CONJUNTO DE CANICAS BLANCAS (B) Y NEGRAS (N) DENTRO DE UN
RECIPIENTE OPACO, SIGUIENDO UN CONJUNTO ESPECÍFICO DE REGLAS HASTA QUE
QUEDE ÚNICAMENTE UNA CANICA.
LA FINALIDAD PRINCIPAL DE ESTE PROYECTO ES ANALIZAR CÓMO LAS CONDICIONES
INICIALES (EL NÚMERO DE CANICAS BLANCAS Y NEGRAS) INFLUYEN EN EL
RESULTADO FINAL DEL JUEGO. EN PARTICULAR, SE BUSCA DETERMINAR, MEDIANTE
SIMULACIONES, EL PROMEDIO DE OCASIONES EN LAS QUE EL JUEGO CONCLUYE CON
UNA SOLA CANICA BLANCA.
PARA LLEVAR A CABO ESTA SIMULACIÓN, SE DESARROLLÓ UN PROGRAMA EN JAVA,
QUE:
IMPLEMENTA LAS REGLAS DEL JUEGO DE MANERA EFICIENTE.
PERMITE REALIZAR MÚLTIPLES SIMULACIONES CON DIFERENTES VALORES DE B Y N.
GENERA UN ANÁLISIS ESTADÍSTICO SOBRE LOS RESULTADOS OBTENIDOS.
ESTE PROYECTO TAMBIÉN FOMENTA EL USO DE CONCEPTOS FUNDAMENTALES DE
PROGRAMACIÓN, COMO ESTRUCTURAS DE CONTROL, CLASES, OBJETOS Y
GENERACIÓN DE NÚMEROS ALEATORIOS, ADEMÁS DE REFORZAR HABILIDADES EN EL
MANEJO DE SIMULACIONES Y ANÁLISIS DE DATOS.
A TRAVÉS DE ESTA SIMULACIÓN, SE LOGRARÁ NO SOLO RESPONDER LA PREGUNTA
PLANTEADA, SINO TAMBIÉN COMPRENDER CÓMO LOS MODELOS MATEMÁTICOS Y
COMPUTACIONALES PUEDEN SER APLICADOS PARA RESOLVER PROBLEMAS
ABSTRACTOS DE MANERA PRÁCTICA.
                             @reallygreatsite
      NOTE                                         DATE: ......................................................
                                                   NOTE: ......................................................
                      DESARROLLO
EN ESTA SECCIÓN SE DESCRIBE CÓMO SE IMPLEMENTÓ EL PROGRAMA PARA SIMULAR
EL JUEGO, DETALLANDO LA ESTRUCTURA DEL CÓDIGO, LAS CLASES UTILIZADAS Y LOS
PRINCIPIOS DE PROGRAMACIÓN APLICADOS.
1. ESTRUCTURA DEL PROGRAMA
EL PROGRAMA ESTÁ DISEÑADO SIGUIENDO EL PARADIGMA DE PROGRAMACIÓN
ORIENTADA A OBJETOS (POO). LA ESTRUCTURA GENERAL INCLUYE LAS SIGUIENTES
PARTES:
A) CLASE SIMULADOR
ESTA CLASE ES LA ENCARGADA DE EJECUTAR LAS SIMULACIONES DEL JUEGO Y
APLICAR LAS REGLAS ESTABLECIDAS. CONTIENE DOS MÉTODOS PRINCIPALES:
     SIMULARJUEGO(INT B, INT N): EJECUTA UNA ÚNICA SIMULACIÓN DEL JUEGO.
     CALCULARPROMEDIO(INT B, INT N, INT SIMULACIONES): REALIZA MÚLTIPLES
     SIMULACIONES Y CALCULA EL PROMEDIO DE OCASIONES EN QUE EL JUEGO
     TERMINA CON UNA CANICA BLANCA.
B) CLASE JUEGODECANICAS
ESTA CLASE PRINCIPAL CONTIENE EL MÉTODO MAIN, QUE:
  1. SOLICITA O DEFINE LOS VALORES INICIALES DE LAS CANICAS BLANCAS (B) Y
     NEGRAS (N).
  2. DEFINE EL NÚMERO DE SIMULACIONES A REALIZAR.
  3. INVOCA LOS MÉTODOS DE LA CLASE SIMULADOR PARA REALIZAR EL ANÁLISIS Y
     MOSTRAR LOS RESULTADOS.
2. LÓGICA DEL JUEGO
LA SIMULACIÓN DEL JUEGO SIGUE ESTRICTAMENTE LAS REGLAS ESTABLECIDAS:
  1. SE SELECCIONAN DOS CANICAS AL AZAR DEL RECIPIENTE.
 2. SEGÚN LOS COLORES DE LAS CANICAS SELECCIONADAS, SE APLICAN LAS
     SIGUIENTES REGLAS:
         DOS CANICAS DEL MISMO COLOR:
            SI AMBAS SON BLANCAS, SE ELIMINAN AMBAS Y SE AÑADE UNA NEGRA.
            SI AMBAS SON NEGRAS, SE ELIMINA UNA NEGRA Y NO SE AÑADEN MÁS
            CANICAS.
         DOS CANICAS DE COLORES DIFERENTES:
            LA BLANCA REGRESA AL RECIPIENTE.
            LA NEGRA SE ELIMINA.
 3. EL PROCESO CONTINÚA HASTA QUE QUEDE UNA SOLA CANICA EN EL RECIPIENTE.
 4. SE REGISTRA SI LA ÚLTIMA CANICA RESTANTE ES BLANCA O NEGRA.
                              @reallygreatsite
      NOTE                                        DATE: ......................................................
                                                  NOTE: ......................................................
3. GENERACIÓN DE NÚMEROS ALEATORIOS
PARA SIMULAR LA SELECCIÓN DE CANICAS, SE UTILIZA LA CLASE RANDOM DE JAVA.
ESTA PERMITE DETERMINAR ALEATORIAMENTE SI LAS CANICAS SELECCIONADAS SON
BLANCAS, NEGRAS O DE COLORES DIFERENTES.
EJEMPLO DE CÓDIGO PARA LA SELECCIÓN ALEATORIA:
4. MÚLTIPLES SIMULACIONES
EL OBJETIVO DE ANALIZAR EL COMPORTAMIENTO PROMEDIO DEL JUEGO PARA
DIFERENTES VALORES DE B Y N, SE IMPLEMENTÓ LA FUNCIÓN CALCULARPROMEDIO.
ESTE MÉTODO REALIZA UN NÚMERO DETERMINADO DE SIMULACIONES (POR
EJEMPLO, 1,000) PARA CADA CONJUNTO DE VALORES Y CALCULA EL PORCENTAJE DE
OCASIONES EN LAS QUE EL JUEGO TERMINA CON UNA CANICA BLANCA.
EJEMPLO DE CÁLCULO DE PROMEDIO:
                             @reallygreatsite
      NOTE                                          DATE: ......................................................
                                                    NOTE: ......................................................
5. RESULTADOS EN CONSOLA
EL PROGRAMA IMPRIME LOS RESULTADOS EN LA CONSOLA DE MANERA CLARA Y
ESTRUCTURADA. POR EJEMPLO, PARA VALORES INICIALES B = 5 Y N = 7 Y 1,000
SIMULACIONES, SE MOSTRARÁ ALGO COMO:
6. EJEMPLO DE EJECUCIÓN
PRUEBA CON LOS VALORES:
   B = 10, N = 5, SIMULACIONES = 1000
   B = 7, N = 7, SIMULACIONES = 500
EL CÓDIGO COMPLETO Y LOS RESULTADOS GENERADOS SE DOCUMENTAN EN LAS
SIGUIENTES SECCIONES.
                              @reallygreatsite
      NOTE                                         DATE: ......................................................
                                                   NOTE: ......................................................
                    RESULTADOS
EN ESTA SECCIÓN SE PRESENTAN LOS RESULTADOS OBTENIDOS TRAS LA EJECUCIÓN
DEL PROGRAMA, QUE INCLUYEN EL ANÁLISIS DE LAS SIMULACIONES REALIZADAS
CON DIFERENTES VALORES INICIALES DE CANICAS BLANCAS (B) Y NEGRAS (N). LOS
RESULTADOS SE OBTUVIERON UTILIZANDO UN ENFOQUE ESTADÍSTICO BASADO EN
LA REPETICIÓN DE MÚLTIPLES SIMULACIONES.
1. CONFIGURACIÓN DE LAS SIMULACIONES
SE REALIZARON SIMULACIONES CON DIFERENTES VALORES DE B Y N PARA ESTUDIAR
CÓMO AFECTA LA PROPORCIÓN INICIAL DE CANICAS BLANCAS Y NEGRAS AL
RESULTADO FINAL. LAS CONFIGURACIONES INICIALES INCLUYEN:
NÚMERO DE SIMULACIONES POR CASO: 1000.
VALORES INICIALES DE B Y N:
    CASO 1: B = 5, N = 5
    CASO 2: B = 10, N = 7
    CASO 3: B = 3, N = 10
    CASO 4: B = 7, N = 7
2. RESULTADOS OBTENIDOS
LOS RESULTADOS MUESTRAN EL PROMEDIO DE OCASIONES EN LAS QUE EL JUEGO
TERMINA CON UNA CANICA BLANCA. A CONTINUACIÓN, SE PRESENTAN LOS DATOS
ORGANIZADOS EN UNA TABLA:
                              @reallygreatsite
      NOTE                                          DATE: ......................................................
                                                    NOTE: ......................................................
3. ANÁLISIS DE RESULTADOS
A PARTIR DE LOS DATOS OBTENIDOS, SE PUEDEN EXTRAER LAS SIGUIENTES
CONCLUSIONES:
   RELACIÓN ENTRE B Y N: CUANDO EL NÚMERO INICIAL DE CANICAS BLANCAS (B) ES
   MAYOR QUE EL DE NEGRAS (N), LA PROBABILIDAD DE TERMINAR CON UNA
   CANICA BLANCA AUMENTA CONSIDERABLEMENTE.
   PROPORCIONES IGUALES: EN EL CASO DE PROPORCIONES IGUALES (B = N), LA
   PROBABILIDAD TIENDE A SER CERCANA AL 50%.
   PREDOMINIO DE CANICAS NEGRAS: CUANDO EL NÚMERO DE CANICAS NEGRAS ES
   MAYOR, LA PROBABILIDAD DE TERMINAR CON UNA CANICA BLANCA DISMINUYE
   DRÁSTICAMENTE.
4. CAPTURAS DE PANTALLA
A CONTINUACIÓN, SE MUESTRAN CAPTURAS DE LA EJECUCIÓN DEL PROGRAMA EN
CONSOLA PARA UNO DE LOS CASOS PROBADOS:
                              @reallygreatsite
      NOTE                                          DATE: ......................................................
                                                    NOTE: ......................................................
5. RESPUESTA A LA PREGUNTA DEL PROYECTO
CON BASE EN LAS SIMULACIONES REALIZADAS, LA PROBABILIDAD PROMEDIO DE
TERMINAR CON UNA CANICA BLANCA DEPENDE DIRECTAMENTE DE LA PROPORCIÓN
INICIAL DE CANICAS BLANCAS (B) RESPECTO A LAS NEGRAS (N). A MAYOR NÚMERO DE
CANICAS BLANCAS AL INICIO, MAYOR SERÁ LA PROBABILIDAD DE QUE LA ÚLTIMA
CANICA SEA BLANCA.
                              @reallygreatsite
      NOTE                                        DATE: ......................................................
                                                  NOTE: ......................................................
                 CONCLUSIÓN
EL DESARROLLO Y LA IMPLEMENTACIÓN DE ESTE PROYECTO NOS PERMITIÓ
ANALIZAR DE MANERA DETALLADA CÓMO LAS CONDICIONES INICIALES DEL JUEGO
AFECTAN SU RESULTADO FINAL. A PARTIR DE LAS SIMULACIONES REALIZADAS, SE
LLEGÓ A LAS SIGUIENTES CONCLUSIONES:
    INFLUENCIA DE LAS PROPORCIONES INICIALES:
EL NÚMERO INICIAL DE CANICAS BLANCAS (B) Y NEGRAS (N) JUEGA UN PAPEL
FUNDAMENTAL EN EL RESULTADO FINAL DEL JUEGO. SI B ES SIGNIFICATIVAMENTE
MAYOR QUE N, LA PROBABILIDAD DE QUE LA ÚLTIMA CANICA SEA BLANCA AUMENTA
CONSIDERABLEMENTE.
POR EL CONTRARIO, SI EL NÚMERO DE CANICAS NEGRAS ES MAYOR, ES MENOS
PROBABLE QUE LA ÚLTIMA CANICA SEA BLANCA.
    COMPORTAMIENTO EN PROPORCIONES IGUALES:
CUANDO B Y N SON IGUALES, EL RESULTADO TIENDE A SER CASI ALEATORIO, CON
UNA PROBABILIDAD CERCANA AL 50% PARA AMBOS COLORES. ESTE CASO REFLEJA LA
NATURALEZA IMPARCIAL DEL JUEGO CUANDO NO HAY UN COLOR PREDOMINANTE.
    RESULTADOS ESTADÍSTICOS:
LA EJECUCIÓN DE MÚLTIPLES SIMULACIONES NOS PERMITIÓ OBTENER PROMEDIOS
ESTADÍSTICAMENTE SIGNIFICATIVOS QUE CONFIRMAN EL IMPACTO DE LOS VALORES
INICIALES DE B Y N. ESTO RESALTA LA IMPORTANCIA DE LOS MÉTODOS
COMPUTACIONALES EN EL ANÁLISIS DE PROBLEMAS PROBABILÍSTICOS.
    UTILIDAD DEL MODELO COMPUTACIONAL:
LA IMPLEMENTACIÓN DE ESTE JUEGO SIRVIÓ PARA ILUSTRAR CÓMO LOS CONCEPTOS
DE PROGRAMACIÓN PUEDEN SER UTILIZADOS PARA RESOLVER PROBLEMAS
MATEMÁTICOS Y PROBABILÍSTICOS COMPLEJOS. ADEMÁS, REFUERZA EL
APRENDIZAJE SOBRE SIMULACIÓN, ANÁLISIS DE DATOS Y PROGRAMACIÓN
ORIENTADA A OBJETOS.
EN CONCLUSIÓN, ESTE PROYECTO NO SOLO PERMITIÓ RESPONDER LA PREGUNTA
PLANTEADA ACERCA DEL PROMEDIO DE FINALES CON UNA CANICA BLANCA, SINO
TAMBIÉN COMPRENDER CÓMO SE PUEDEN MODELAR SISTEMAS PROBABILÍSTICOS
UTILIZANDO HERRAMIENTAS DE PROGRAMACIÓN. A TRAVÉS DE LA PRÁCTICA, SE
FORTALECIERON HABILIDADES CLAVE EN DESARROLLO DE SOFTWARE, ANÁLISIS
ESTADÍSTICO Y PENSAMIENTO LÓGICO.
                             @reallygreatsite