Anexos diversos. ================================================================================ Compartición de código entre proyectos Gradle de Netbeans ---------------------------------------------------------- El proceso es sencillo: 1. Localiza el archivo JAR que contiene las clases que quieres importar y aprovechar en tu proyecto. Probablemente la ruta sea algo como "c:\users\pepe\NetbeansProject\Proyecto\builds\libs\archivo.jar". 2. Ve a tu proyecto Gradle de Netbeans y localiza el archivo ``build.gradle``. 3. Dentro de ``build.gradle`` encuentra la sección ``dependencies`` y añade dentro esta línea ``implementation files(c:\\users\\pepe\\NetbeansProject\\Proyecto\\builds\\libs\\archivo.jar) Observa que en el último paso hemos duplicado la barra diagonal. Compartición de código entre proyectos Maven en Netbeans ------------------------------------------------------------ La clase ``UtilidadesFicheros`` ---------------------------------- A continuación se muestra el código completo de la clase ``UtilidadesFicheros``: .. literalinclude:: ../listados/Clase_com_utilidades_UtilidadesFicheros.java :language: java Solución al problema del simulador de Casino --------------------------------------------- Se ha optado por un diseño muy simple y con un acoplamiento muy alto. En pocas palabras hay solo dos clases: 1. La clase ``Banca``: ejecuta toda la simulación y acepta apuestas de jugadores. La banca crea los Jugadores (que serán hilos), y luego pasará a ejecutar la simulación, que puede pasar por diversos estados. Algunos métodos de la banca deben ser ``synchronized``, ya que todos los hilos Jugador tienen una referencia a la clase ``Banca`` y por lo tanto **puede haber varios hilos intentando entrar en un cierto método**. 2. La clase ``Jugador``: no necesita métodos ``synchronized``, ya que cada ``Jugador`` accede solo a su propia información. *Sin embargo, si hubiese más de una banca (quizá porque un Jugador jugase a varias ruletas a la vez) la situación sería muy distinta*. 3. En realidad, la clase ``Jugador`` es solo una base para poder crear distintos tipos de Jugador que siguen distintas estrategias. En las secciones siguientes se ilustra el código de las distintas clases. La clase Banca ~~~~~~~~~~~~~~~~~~~~~~~~ .. literalinclude:: ../listados/Clase_com_ies_casino_Banca.java :language: java La clase Jugador ~~~~~~~~~~~~~~~~~~~~~~~~ .. literalinclude:: ../listados/Clase_com_ies_casino_Jugador.java :language: java La clase JugadorClasico ~~~~~~~~~~~~~~~~~~~~~~~~ .. literalinclude:: ../listados/Clase_com_ies_casino_JugadorClasico.java :language: java La clase JugadorParImpar ~~~~~~~~~~~~~~~~~~~~~~~~ .. literalinclude:: ../listados/Clase_com_ies_casino_JugadorParImpar.java :language: java La clase JugadorMartingala ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. literalinclude:: ../listados/Clase_com_ies_casino_JugadorMartingala.java :language: java