0% encontró este documento útil (0 votos)
12 vistas

Programación Juego de Máquina Tragaperras Con Java » Java Desde Cero

El documento describe cómo programar una máquina tragaperras simple en Java, orientada a principiantes. Se detalla la mecánica del juego, incluyendo el inicio con créditos, la selección aleatoria de imágenes y las reglas de ganancia y pérdida. También se proporciona un ejemplo de código fuente para ayudar en el desarrollo del juego.

Cargado por

Cabina Avanradio
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
12 vistas

Programación Juego de Máquina Tragaperras Con Java » Java Desde Cero

El documento describe cómo programar una máquina tragaperras simple en Java, orientada a principiantes. Se detalla la mecánica del juego, incluyendo el inicio con créditos, la selección aleatoria de imágenes y las reglas de ganancia y pérdida. También se proporciona un ejemplo de código fuente para ayudar en el desarrollo del juego.

Cargado por

Cabina Avanradio
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 22

15/6/23, 21:31 Programación Juego de Máquina Tragaperras con Java » Java desde Cero

Programación Juego de Máquina Tragaperras con Java


/ Codigos (https://javadesdecero.es/categoria/codigos/) / Home (https://javadesdecero.es)

Java desde Cero


Programación Juego de Máquina Tragaperras con Java
Codigos (https://javadesdecero.es/categoria/codigos/)

Ejemplos (https://javadesdecero.es/etiqueta/ejemplos/) Juegos (https://javadesdecero.es/etiqueta/juegos/)

Dejar un comentario (https://javadesdecero.es/codigos/juego-maquina-tragaperras/#respond) por Alex Walton

No importa lo simple o complejo que sea el juego, ¡Java puede hacer el trabajo!

En esta publicación, vamos a echar un vistazo a cómo los principiantes de la programación en Java pueden hacer
una máquina tragaperras (o conocidas en inglés como slots) simple, pero totalmente funcional en Java. Las
máquinas tragaperras existen desde hace mucho tiempo, pero su valor de entretenimiento no parece desvanecerse
ni un poco. InterCasino, el primer sitio web que ofreció juegos de casino en línea al mundo en 1996, sigue existiendo
y sus juegos de tragaperras parecen actualizarse a menudo.

Además, según la American Gaming Association, las tragaperras generan entre el 62% y el 90% del dinero del
juego, lo que convierte a las máquinas en las vacas lecheras de los casinos. Teniendo en cuenta estos datos, ¿no
quieres crear tu propia máquina tragaperras que pueda gustar a millones de aficionados a los juegos de casino en el
futuro? Si estás interesado en crear juegos de tragaperras basados en Java, el código que aparece a continuación
podría resultarle útil.

Si estás más interesado en el tema de Tragaperras, en SlotJava (https://www.slotjava.es/) podrás encontrar las
máquinas de slots más recientes del mercado. No tendrás que descargar ni instalar ningún programa, puesto de
Utilizamos
disfrutar cookies en
de máquinas nuestro sitio
tragaperras web paradesde
directamente proporcionarle la experiencia más relevante recordando sus
el navegador.
preferencias y visitas repetidas. Al hacer clic en "Aceptar", consiente en el uso de TODAS las cookies.
No vender.
Tabla de Contenido 
Ajustes Cookies
Descripción ACEPTAR
del Proyecto
Código fuente

https://javadesdecero.es/codigos/juego-maquina-tragaperras/ 1/22
15/6/23, 21:31 Programación Juego de Máquina Tragaperras con Java » Java desde Cero

Palabras Finales

Descripción del Proyecto


Una máquina tragaperras es un dispositivo de juego en el que el usuario introduce dinero y luego tira de una palanca
(o pulsa un botón). La máquina tragaperras muestra entonces un conjunto de imágenes aleatorias. Si dos o más de
las imágenes coinciden, el usuario gana una cantidad de dinero que la máquina tragaperras le devuelve.

(https://javadesdecero.es/medios/2021/06/Juego-Tragaperras-
Java.png)
Juego Tragaperras con Java

Crea una clase que simule una máquina tragaperras. Cuando el programa se ejecuta, debe hacer lo siguiente

El jugador inicia con 100 créditos y $0 de dinero.


Pide al usuario que gire la palanca y empiece a jugar.
El programa mostrará al azar algunas de las siguientes imágenes: Plátano, Bar, Campana, Cerezas, Ficha de
5, Ficha de 25, Ficha de 50, Ficha de 100, Flor, Moneda, Diamante, Oro, Billete, Ciruela, 7, Cara de troll
Utilizamos cookies en nuestro sitio web para proporcionarle la experiencia más relevante recordando sus
(Trollface), Sandía.
preferencias y visitas repetidas. Al hacer clic en "Aceptar", consiente en el uso de TODAS las cookies.
No vender.

Ajustes Cookies ACEPTAR

https://javadesdecero.es/codigos/juego-maquina-tragaperras/ 2/22
15/6/23, 21:31 Programación Juego de Máquina Tragaperras con Java » Java desde Cero

(https://javadesdecero.es/medios/2021/06/Modo-Trollface-
Tragaperras.png)
Modo Trollface en juego Tragaperras

El programa debe seleccionar al azar una imagen de esta lista tres veces y mostrar las tres imágenes.
Si ninguna de las palabras seleccionadas al azar coincide, el programa informará al usuario de que ha perdido
15 créditos.
Si dos de las imágenes coinciden, el programa informará al usuario que ha ganado $5.
Si tres de las imágenes coinciden, el programa informará al usuario que ha ganado $25.

Utilizamos cookies en nuestro sitio web para proporcionarle la experiencia más relevante recordando sus
preferencias y visitas repetidas. Al hacer clic en "Aceptar", consiente en el uso de TODAS las cookies.
No vender.

Ajustes Cookies ACEPTAR

https://javadesdecero.es/codigos/juego-maquina-tragaperras/ 3/22
15/6/23, 21:31 Programación Juego de Máquina Tragaperras con Java » Java desde Cero

(https://javadesdecero.es/medios/2021/06/Ganar-Tragaperras-
Java.png)
Ganar en juevo Tragaperras con Java

El costo de 100 créditos es de $10. Cada vez que te quedes sin créditos, se mostrará un mensaje para
comprar más, con el dinero disponible.

Utilizamos cookies en nuestro sitio web para proporcionarle la experiencia más relevante recordando sus
preferencias y visitas repetidas. Al hacer clic en "Aceptar", consiente en el uso de TODAS las cookies.
No vender.

Ajustes Cookies ACEPTAR

https://javadesdecero.es/codigos/juego-maquina-tragaperras/ 4/22
15/6/23, 21:31 Programación Juego de Máquina Tragaperras con Java » Java desde Cero

(https://javadesdecero.es/medios/2021/06/Comprar-creditos-
apuesta.png)
Comprar créditos para apostar

Cada vez que el usuario gana, aumenta el estado de una barra para desbloquear el menú de trucos (se
necesitan 100 victorias). El menú de trucos incluye: “Modo siempre gana”, “Trollface”, y “Super Jackpot”.

Utilizamos cookies en nuestro sitio web para proporcionarle la experiencia más relevante recordando sus
preferencias y visitas repetidas. Al hacer clic en "Aceptar", consiente en el uso de TODAS las cookies.
No vender.

Ajustes Cookies ACEPTAR

https://javadesdecero.es/codigos/juego-maquina-tragaperras/ 5/22
15/6/23, 21:31 Programación Juego de Máquina Tragaperras con Java » Java desde Cero

(https://javadesdecero.es/medios/2021/06/Desbloquear-menu-de-
trucos.png)
Desbloquear menú de trucos para juego de Slots

Existe una opción independiendo del llenado de la barra: El botón “Sonido ON”, activa o desactiva el sonido
de fondo.
El juego pregunta si el usuario desea comprar más créditos con dinero. Si es así, se repiten estos pasos. Si
no, el programa muestra la cantidad total de dinero disponible en la máquina tragaperras, el saldo de la
cuenta y la cantidad total ganada o perdida.

Utilizamos cookies en nuestro sitio web para proporcionarle la experiencia más relevante recordando sus
preferencias y visitas repetidas. Al hacer clic en "Aceptar", consiente en el uso de TODAS las cookies.
No vender.

Ajustes Cookies ACEPTAR

https://javadesdecero.es/codigos/juego-maquina-tragaperras/ 6/22
15/6/23, 21:31 Programación Juego de Máquina Tragaperras con Java » Java desde Cero

(https://javadesdecero.es/medios/2021/06/Sin-saldo-slot.png)
Sin saldo para apostar. Fin del juego

Código fuente
Los juegos de máquinas tragaperras son los más populares tanto en los casinos físicos como en los online. Aunque
la mecánica de estos juegos parece sencilla en comparación con otros juegos de casino populares, crearlos puede
ser un poco más difícil de lo que podrías haber imaginado.

Utilizamos cookies en nuestro sitio web para proporcionarle la experiencia más relevante recordando sus
preferencias y visitas repetidas. Al hacer clic en "Aceptar", consiente en el uso de TODAS las cookies.
No vender.

Ajustes Cookies ACEPTAR

https://javadesdecero.es/codigos/juego-maquina-tragaperras/ 7/22
15/6/23, 21:31 Programación Juego de Máquina Tragaperras con Java » Java desde Cero

(https://javadesdecero.es/medios/2021/06/Codigo-fuente-
Tragaperras.png)
Al parece he tenido mucha suerte en este juego de tragaperras en
Java.

A continuación, ofrecemos un ejemplo sobre el proceso de construcción y desarrollo de tu propio juego de máquinas
tragaperras desde cero. Empecemos.

Utilizamos cookies en nuestro sitio web para proporcionarle la experiencia más relevante recordando sus
preferencias y visitas repetidas. Al hacer clic en "Aceptar", consiente en el uso de TODAS las cookies.
No vender.

Ajustes Cookies ACEPTAR

https://javadesdecero.es/codigos/juego-maquina-tragaperras/ 8/22
15/6/23, 21:31 Programación Juego de Máquina Tragaperras con Java » Java desde Cero

package slotMachineGUI;
import java.awt.*;
import javax.swing.*;
import javax.swing.LayoutStyle.ComponentPlacement;
import java.text.DecimalFormat;
import java.util.Random;
import java.util.ArrayList;
import javax.swing.border.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class SlotMachineGUI {
private JButton btnCash, btnSpin;
private JCheckBox cbAlwaysWin, cbSuperJackpot, cbTrollface;
private JFrame frmFrame;
private JLabel lblCredits, lblLost, lblMatchThree, lblMatchTwo, lblMoney, lblReel1, lblReel2, lblRe
private JPanel pnlReels, pnlReel1, pnlReel2, pnlReel3;
private JProgressBar prgbarCheatUnlocker;
private JSeparator sepCheats, sepStats, sepStats2, sepStatus;
private JToggleButton tgglSound;
private int credits = 100, boughtCredits = 100, bet = 15, matchThree, matchTwo, win, lost;
private double payout = 25.0, creditBuyout = 10.0, funds;
private int reel1 = 7, reel2 = 7, reel3 = 7; // starting values of the reels.
private ArrayList<ImageIcon> images = new ArrayList<ImageIcon>();
private DecimalFormat df = new DecimalFormat("0.00");
public SlotMachineGUI(int credits, int boughtCredits, int bet, double payout, double creditBuyout,
this.credits=credits;
this.boughtCredits=boughtCredits;
this.bet=bet;
this.payout=payout;
this.creditBuyout=creditBuyout;
this.reel1=reel1;
this.reel2=reel2;
this.reel3=reel3;
createForm();
loadImages();
addFields();
addButtons();
layoutFrame();
layoutReels();
layoutOther();
}

public SlotMachineGUI() {
createForm();
loadImages();
addFields();
addButtons();
Utilizamos cookies en nuestro sitio web para proporcionarle la experiencia más relevante recordando sus
layoutFrame();
preferencias y visitas repetidas. Al hacer clic en "Aceptar", consiente en el uso de TODAS las cookies.
layoutReels();
No vender.
layoutOther();
}
Ajustes Cookies ACEPTAR
/** Creates the JFrame and Panels. */
private void createForm() {

https://javadesdecero.es/codigos/juego-maquina-tragaperras/ 9/22
15/6/23, 21:31 Programación Juego de Máquina Tragaperras con Java » Java desde Cero

frmFrame = new JFrame();


frmFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frmFrame.setTitle("Warner Slots");
frmFrame.setResizable(false);
frmFrame.setVisible(true);
pnlReels = new JPanel();
pnlReels.setBorder(BorderFactory.createEtchedBorder());
pnlReel1 = new JPanel();
pnlReel1.setBackground(new Color(255, 215, 0));
pnlReel1.setBorder(new SoftBevelBorder(BevelBorder.LOWERED));
pnlReel2 = new JPanel();
pnlReel2.setBackground(new Color(255, 216, 0));
pnlReel2.setBorder(new SoftBevelBorder(BevelBorder.LOWERED));
pnlReel3 = new JPanel();
pnlReel3.setBackground(new java.awt.Color(255, 215, 0));
pnlReel3.setBorder(new SoftBevelBorder(BevelBorder.LOWERED));
}
/** Adds labels to the form. */
private void addFields() {
lblReel1 = new JLabel();
lblReel2 = new JLabel();
lblReel3 = new JLabel();
sepStats = new JSeparator();
lblMatchTwo = new JLabel();
lblMatchTwo.setText("Dos Coincidencias: ");
lblMatchThree = new JLabel();
lblMatchThree.setText("Tres Coincidencias: ");
lblWon = new JLabel();
lblWon.setText("Ganado: ");
sepStats2 = new JSeparator();
sepStats2.setOrientation(SwingConstants.VERTICAL);
lblCredits = new JLabel();
lblCredits.setText("Créditos: "+credits);
lblMoney = new JLabel();
lblMoney.setText("Dinero: $"+df.format(funds));
lblLost = new JLabel();
lblLost.setText("Perdido: ");
sepStatus = new JSeparator();
lblStatus = new JLabel();
lblStatus.setBackground(new Color(255, 255, 255));
lblStatus.setFont(new Font("Arial", 1, 14));
lblStatus.setHorizontalAlignment(SwingConstants.CENTER);
lblStatus.setText("¡¡Bienvenido a WARNER SLOTS!! ©2021");
sepCheats = new JSeparator();
prgbarCheatUnlocker = new JProgressBar();
prgbarCheatUnlocker.setToolTipText("Llena la barra para desbloquear el menú de trucos.");
lblReel1.setIcon(images.get(reel1));
Utilizamos cookies en nuestro sitio web para proporcionarle la experiencia más relevante recordando sus
lblReel2.setIcon(images.get(reel2));
preferencias y visitas repetidas. Al hacer clic en "Aceptar", consiente en el uso de TODAS las cookies.
lblReel3.setIcon(images.get(reel3));
No} vender.
/** Adds buttons to the form. */
private
Ajustes void addButtons()
Cookies ACEPTAR {
btnSpin = new JButton();

https://javadesdecero.es/codigos/juego-maquina-tragaperras/ 10/22
15/6/23, 21:31 Programación Juego de Máquina Tragaperras con Java » Java desde Cero

btnSpin.setBackground(new Color(50, 255, 50));


btnSpin.setText("Girar");
btnSpin.setToolTipText("¡Haz clic para hacer girar los carretes!");
btnSpin.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
btnSpin.setInheritsPopupMenu(true);
btnSpin.setMaximumSize(new Dimension(200, 50));
btnSpin.setMinimumSize(new Dimension(200, 50));
btnSpin.addActionListener(new SpinHandler());
btnCash = new JButton();
btnCash.setBackground(new Color(255, 0, 0));
btnCash.setText("Comprar Créditos");
btnCash.setToolTipText("$"+df.format(bet)+" se convierte en "+boughtCredits+" créditos.");
btnCash.setHorizontalTextPosition(SwingConstants.CENTER);
btnCash.addActionListener(new BuyCreditsHandler());
tgglSound = new JToggleButton();
tgglSound.setSelected(false);
tgglSound.setText("Sonido ON");
tgglSound.addActionListener(new SoundHandler());
cbAlwaysWin = new JCheckBox();
cbAlwaysWin.setText("Modo Siempre Gana");
cbAlwaysWin.setEnabled(false);
cbAlwaysWin.addActionListener(new AlwaysWinHandler());
cbTrollface = new JCheckBox();
cbTrollface.setText("Trollface");
cbTrollface.setEnabled(false);
cbTrollface.addActionListener(new TrollfaceHandler());
cbSuperJackpot = new JCheckBox();
cbSuperJackpot.setText("Super Jackpot");
cbSuperJackpot.setEnabled(false);
cbSuperJackpot.addActionListener(new SuperPrizeHandler());
}
/** Lays out the frame. */
private void layoutFrame() {
GroupLayout frameLayout = new GroupLayout(frmFrame.getContentPane());
frmFrame.getContentPane().setLayout(frameLayout);
frameLayout.setHorizontalGroup(
frameLayout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGap(0, 400, Short.MAX_VALUE)
);
frameLayout.setVerticalGroup(
frameLayout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGap(0, 300, Short.MAX_VALUE)
);
}
/** Lays out the panels and reels. */
private void layoutReels() {
GroupLayout pnlReelsLayout = new GroupLayout(pnlReels);
Utilizamos cookies en nuestro sitio web para proporcionarle la experiencia más relevante recordando sus
pnlReels.setLayout(pnlReelsLayout);
preferencias y visitas repetidas. Al hacer clic en "Aceptar", consiente en el uso de TODAS las cookies.
pnlReelsLayout.setHorizontalGroup(
No vender.pnlReelsLayout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(pnlReelsLayout.createSequentialGroup()
.addContainerGap()
Ajustes Cookies ACEPTAR
.addComponent(pnlReel1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout

https://javadesdecero.es/codigos/juego-maquina-tragaperras/ 11/22
15/6/23, 21:31 Programación Juego de Máquina Tragaperras con Java » Java desde Cero

.addGap(18, 18, 18)


.addComponent(pnlReel2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout
.addGap(18, 18, 18)
.addComponent(pnlReel3, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout
.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
pnlReelsLayout.setVerticalGroup(
pnlReelsLayout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(pnlReelsLayout.createSequentialGroup()
.addContainerGap()
.addGroup(pnlReelsLayout.createParallelGroup(GroupLayout.Alignment.TRAILING, false)
.addComponent(pnlReel2, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, Gro
.addComponent(pnlReel1, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, Gro
.addComponent(pnlReel3, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX
.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
GroupLayout pnlReel1Layout = new GroupLayout(pnlReel1);
pnlReel1.setLayout(pnlReel1Layout);
pnlReel1Layout.setHorizontalGroup(
pnlReel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(pnlReel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(lblReel1)
.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
pnlReel1Layout.setVerticalGroup(
pnlReel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(pnlReel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(lblReel1)
.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
GroupLayout pnlReel2Layout = new GroupLayout(pnlReel2);
pnlReel2.setLayout(pnlReel2Layout);
pnlReel2Layout.setHorizontalGroup(
pnlReel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(pnlReel2Layout.createSequentialGroup()
.addContainerGap()
.addComponent(lblReel2)
.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
pnlReel2Layout.setVerticalGroup(
pnlReel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(pnlReel2Layout.createSequentialGroup()
.addContainerGap()
.addComponent(lblReel2)
.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
Utilizamos);cookies en nuestro sitio web para proporcionarle la experiencia más relevante recordando sus
preferencias y visitas
GroupLayout repetidas. Al=hacer
pnlReel3Layout clic en "Aceptar", consiente en el uso de TODAS las cookies.
new GroupLayout(pnlReel3);
No vender.
pnlReel3.setLayout(pnlReel3Layout);
pnlReel3Layout.setHorizontalGroup(
pnlReel3Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
Ajustes Cookies ACEPTAR
.addGroup(pnlReel3Layout.createSequentialGroup()

https://javadesdecero.es/codigos/juego-maquina-tragaperras/ 12/22
15/6/23, 21:31 Programación Juego de Máquina Tragaperras con Java » Java desde Cero

.addContainerGap()
.addComponent(lblReel3)
.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
pnlReel3Layout.setVerticalGroup(
pnlReel3Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(pnlReel3Layout.createSequentialGroup()
.addContainerGap()
.addComponent(lblReel3)
.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
}
/** lays out the remaining labels, check boxes, progress bars, etc. */
private void layoutOther() {
GroupLayout layout = new GroupLayout(frmFrame.getContentPane());
frmFrame.getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING, false)
.addComponent(sepCheats)
.addComponent(prgbarCheatUnlocker, GroupLayout.DEFAULT_SIZE, 426, Short.MAX_V
.addGap(0, 0, Short.MAX_VALUE))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING, f
.addGroup(layout.createSequentialGroup()
.addComponent(cbAlwaysWin)
.addGap(18, 18, 18)
.addComponent(cbTrollface)
.addGap(18, 18, 18)
.addComponent(cbSuperJackpot)
.addPreferredGap(ComponentPlacement.RELATED, GroupLayout.DEFA
.addComponent(tgglSound))
.addComponent(btnSpin, GroupLayout.Alignment.TRAILING, Group
.addComponent(pnlReels, GroupLayout.Alignment.TRAILING, Grou
.addComponent(sepStats, GroupLayout.Alignment.TRAILING)
.addComponent(lblStatus, GroupLayout.DEFAULT_SIZE, GroupLayo
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(GroupLayout.Alignme
.addComponent(lblMatchTwo, GroupLayout.Alignment.LEAD
.addComponent(lblWon, GroupLayout.Alignment.LEADING,
.addComponent(lblMatchThree, GroupLayout.DEFAULT_SIZ
.addPreferredGap(ComponentPlacement.UNRELATED)
Utilizamos cookies en nuestro sitio web para proporcionarle la experiencia más relevante
.addComponent(sepStats2, recordando sus
GroupLayout.PREFERRED_SIZE,
preferencias y visitas repetidas. Al hacer clic en "Aceptar", consiente en el uso de TODAS las cookies.
.addPreferredGap(ComponentPlacement.UNRELATED)
No vender. .addGroup(layout.createParallelGroup(GroupLayout.Alig
.addComponent(lblLost, GroupLayout.DEFAULT_SIZE,
Ajustes Cookies ACEPTAR .addComponent(lblCredits, GroupLayout.DEFAULT_SIZ
.addComponent(lblMoney, GroupLayout.DEFAULT_SIZE

https://javadesdecero.es/codigos/juego-maquina-tragaperras/ 13/22
15/6/23, 21:31 Programación Juego de Máquina Tragaperras con Java » Java desde Cero

.addGap(0, 0, Short.MAX_VALUE)))
.addGroup(layout.createParallelGroup(GroupLayout
.addComponent(btnCash)
.addComponent(sepStatus, GroupLayout.PREFERR
.addContainerGap())))
);
layout.setVerticalGroup(
layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(pnlReels, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(btnSpin, GroupLayout.PREFERRED_SIZE, 56, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(ComponentPlacement.UNRELATED)
.addComponent(sepStats, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout
.addPreferredGap(ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(lblWon, GroupLayout.PREFERRED_SIZE, 19, GroupLayout.PREFERRED_SIZE
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(lblMatchTwo, GroupLayout.PREFERRED_SIZE, 19, GroupLayout.PREFERRED_
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(lblMatchThree, GroupLayout.DEFAULT_SIZE, 25, Short.MAX_VALUE))
.addComponent(sepStats2)
.addGroup(layout.createSequentialGroup()
.addComponent(lblLost, GroupLayout.PREFERRED_SIZE, 19, GroupLayout.PREFERRED_
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(lblCredits, GroupLayout.PREFERRED_SIZE, 19, GroupLayout.PREFER
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(lblMoney, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, S
.addComponent(btnCash, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, S
.addPreferredGap(ComponentPlacement.UNRELATED)
.addComponent(sepStatus, GroupLayout.PREFERRED_SIZE, 2, GroupLayout.PREFERRED
.addPreferredGap(ComponentPlacement.UNRELATED)
.addComponent(lblStatus, GroupLayout.PREFERRED_SIZE, 30, GroupLayout.PREFERR
.addPreferredGap(ComponentPlacement.UNRELATED)
.addComponent(sepCheats, GroupLayout.PREFERRED_SIZE, 5, GroupLayout.PREFERRED
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(prgbarCheatUnlocker, GroupLayout.PREFERRED_SIZE, GroupLayout.D
.addPreferredGap(ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(cbAlwaysWin)
.addComponent(cbTrollface)
.addComponent(cbSuperJackpot)
.addComponent(tgglSound))
.addContainerGap())
);
Utilizamos cookies en nuestro sitio web para proporcionarle la experiencia más relevante recordando sus
frmFrame.pack();
preferencias
} y visitas repetidas. Al hacer clic en "Aceptar", consiente en el uso de TODAS las cookies.
No/**vender.
Performs action when Buy Credits button is clicked. */
class BuyCreditsHandler implements ActionListener {
public
Ajustes void actionPerformed(ActionEvent
Cookies ACEPTAR event) {
buyCredits();

https://javadesdecero.es/codigos/juego-maquina-tragaperras/ 14/22
15/6/23, 21:31 Programación Juego de Máquina Tragaperras con Java » Java desde Cero

}
}
/** if the player has enough funds credits are added. */
public void buyCredits() {
if (funds >= creditBuyout) {
funds -= creditBuyout;
lblMoney.setText("Dinero: $"+df.format(funds));
credits += boughtCredits;
lblCredits.setText("Créditos: "+credits);
lblStatus.setText("+"+boughtCredits+" ¡créditos comprados! -$"+df.format(creditBuyout));
} else {
lblStatus.setText("¡No hay dinero suficiente para comprar créditos!");
}
buyCreditsCheck();
}
/** if user has enough funds to buy credits changes buttons colour to alert user. */
public void buyCreditsCheck() {
if (funds < bet) {
btnCash.setBackground(new java.awt.Color(255, 0, 0));
} else {
btnCash.setBackground(new java.awt.Color(50, 255, 50));
}
}
/** Performs action when Spin button is clicked. */
class SpinHandler implements ActionListener {
public void actionPerformed(ActionEvent event) {
if (funds < creditBuyout && credits < bet) {
lblStatus.setText("<html><a href='https://www.slotjava.es/'>www.slotjava.es</a></html>");
} else if ((credits - bet) >= 0) {
pnlReel1.setBackground(new java.awt.Color(255, 215, 0));
pnlReel2.setBackground(new java.awt.Color(255, 215, 0));
pnlReel3.setBackground(new java.awt.Color(255, 215, 0));
genReelNumbers();
matchCheck();
} else {
lblStatus.setText("La apuesta es de "+bet+" créditos, compra más con $!");
}
buyCreditsCheck();
}
}
/** Generates the 3 reel numbers. */
public void genReelNumbers() {
Random rand = new Random();
if (cbAlwaysWin.isSelected() == true) { // If the Always win cheat mode is enabled.
int winType = rand.nextInt(4); // generates number between 0-3 to determine the type of win
reel1 = rand.nextInt(images.size());
if (winType == 0) { // winType = 0 - Reels 1, 2 and 3 will all match.
Utilizamos cookies
reel2 en nuestro sitio web para proporcionarle la experiencia más relevante recordando sus
= reel1;
preferencias y visitas
reel3 repetidas. Al hacer clic en "Aceptar", consiente en el uso de TODAS las cookies.
= reel1;
No vender.
} else if (winType == 1) { // winType = 1 - Reels 1 and 2 will match.
reel2 = reel1;
Ajustes} Cookies
else if (winType == 2) {
ACEPTAR // winType = 2 - Reels 1 and 3 will match.
reel3 = reel1;

https://javadesdecero.es/codigos/juego-maquina-tragaperras/ 15/22
15/6/23, 21:31 Programación Juego de Máquina Tragaperras con Java » Java desde Cero

} else { // winType = 3 - Reels 2 and 3 will match.


if (reel1 >= 0 ) {
reel2 = reel1 + 1;
reel3 = reel1 + 1;
} if (reel1 == images.size()-1) {
reel2 = reel1 - 1;
reel3 = reel1 - 1;
}
}
} else { // If the Always win cheat mode is disabled play a normal game.
reel1 = rand.nextInt(images.size());
reel2 = rand.nextInt(images.size());
reel3 = rand.nextInt(images.size());
}
setReelIcon(reel1, reel2, reel3); // Set the reel image
}
/** Sets the reels icon based on loaded image in images ArrayList. */
public void setReelIcon(int ico1, int ico2, int ico3) {
lblReel1.setIcon(images.get(ico1)); // icon = the ArrayList index = random reel number
lblReel2.setIcon(images.get(ico2));
lblReel3.setIcon(images.get(ico3));
}
/** Checks for number matches and adjusts score depending on result. */
public void matchCheck() {
if (reel1 == reel2 && reel2 == reel3) {
lblStatus.setText("Has hecho coincidir TRES símbolos ("+images.get(reel1).getDescription()+")!
lblMatchThree.setText("Tres Coincidencias: "+matchThree());
pnlReel1.setBackground(new java.awt.Color(255, 0, 0)); // Highlights matched icons.
pnlReel2.setBackground(new java.awt.Color(255, 0, 0));
pnlReel3.setBackground(new java.awt.Color(255, 0, 0));
} else if (reel1 == reel2 || reel1 == reel3) {
lblStatus.setText("Has hecho coincidir DOS símbolos ("+images.get(reel1).getDescription()+")! +
lblMatchTwo.setText("Dos Coincidencias: "+matchTwo());
if (reel1 == reel2) {
pnlReel1.setBackground(new java.awt.Color(255, 0, 0)); // Highlights matched icons.
pnlReel2.setBackground(new java.awt.Color(255, 0, 0));
} else if (reel1 == reel3){
pnlReel1.setBackground(new java.awt.Color(255, 0, 0)); // Highlights matched icons.
pnlReel3.setBackground(new java.awt.Color(255, 0, 0));
}
} else if (reel2 == reel3) {
lblStatus.setText("Has hecho coincidir DOS símbolos ("+images.get(reel2).getDescription()+")! +
lblMatchTwo.setText("Dos Coincidencias: "+matchTwo());
pnlReel2.setBackground(new java.awt.Color(255, 0, 0)); // Highlights matched icons.
pnlReel3.setBackground(new java.awt.Color(255, 0, 0));
} else {
lblStatus.setText("Lo siento, no has coincidido con ningún símbolo. -"+bet+" créditos!");
Utilizamos cookies en nuestro sitio web
lblLost.setText("Perdidos: para proporcionarle la experiencia más relevante recordando sus
"+lose());
preferencias
} y visitas repetidas. Al hacer clic en "Aceptar", consiente en el uso de TODAS las cookies.
No vender.
lblCredits.setText("Créditos: "+(credits -= bet)); // deduct bet amount from available credits.
lblMoney.setText("Dinero: $"+df.format((funds += getPrize(payout)))); // If there is a win add am
lblWon.setText("Ganados:
Ajustes Cookies ACEPTAR "+win()); // increment win amount.
}

https://javadesdecero.es/codigos/juego-maquina-tragaperras/ 16/22
15/6/23, 21:31 Programación Juego de Máquina Tragaperras con Java » Java desde Cero

/** sets progress bar equal to the current win count. if bar is full it unlocks cheat menu */
public void prgBarCheck() {
if (prgbarCheatUnlocker.getValue() <= 99) {
prgbarCheatUnlocker.setValue(win);
} else if (prgbarCheatUnlocker.getValue() == 100) { // after 100 wins unlock the cheats.
prgbarCheatUnlocker.setValue(100);
lblStatus.setText("¡100 victorias! Enhorabuena, has desbloqueado el menú de trucos.");
cbTrollface.setEnabled(true);
cbSuperJackpot.setEnabled(true);
cbAlwaysWin.setEnabled(true);
}
}
/** calculates prize to be awarded for win based on number of matches and cheats. */
public double getPrize(double prize) {
if (reel1 == reel2 && reel2 == reel3) {
if (cbSuperJackpot.isSelected() == true) {
prize *= 100; // if cheating and all are matched return the full pay out x100.
} else {
prize = payout; // if all are matched return the full pay out.
}
} else if (reel1 == reel2 || reel1 == reel3 || reel2 == reel3) {
if (cbSuperJackpot.isSelected() == true) {
prize *= 50; // if cheating and two are matched return the pay out x50.
} else {
prize = payout / 5; // if two are matched return 1/5th of the pay out.
}
} else {
prize = 0; // If no win return no prize.
}
return prize;
}
/** Performs action when Super Jack pot check box is clicked. */
class SuperPrizeHandler implements ActionListener{
public void actionPerformed(ActionEvent e) {
if (cbSuperJackpot.isSelected() == true) {
lblStatus.setText("¡Modo de Superpremio Habilitado! El $ ganado es ahora x100!");
}
if (cbSuperJackpot.isSelected() == false) {
lblStatus.setText("¡Modo de superpremio DESACTIVADO! :'(");
}
}
}
/** Performs action when Troll face check box is clicked. */
class AlwaysWinHandler implements ActionListener{
public void actionPerformed(ActionEvent e) {
if (cbAlwaysWin.isSelected() == true) {
lblStatus.setText("¡Modo Siempre Ganar Habilitado! ¡7-7-7's aquí vamos!");
Utilizamos
} cookies en nuestro sitio web para proporcionarle la experiencia más relevante recordando sus
preferencias y visitas repetidas. Al hacer
if (cbAlwaysWin.isSelected() == clic en "Aceptar",
false) { consiente en el uso de TODAS las cookies.
No vender.lblStatus.setText("¡Modo de ganar siempre DESACTIVADO! :'(");
}
}
Ajustes Cookies ACEPTAR
}

https://javadesdecero.es/codigos/juego-maquina-tragaperras/ 17/22
15/6/23, 21:31 Programación Juego de Máquina Tragaperras con Java » Java desde Cero

/** Performs action when Troll face check box is clicked. */


class TrollfaceHandler implements ActionListener{
public void actionPerformed(ActionEvent e) {
if (cbTrollface.isSelected() == true && images.get(images.size()-1) != createImageIcon("images/
images.add(createImageIcon("images/Trollface.png", "Trollface")); // adds a bonus image to t
lblStatus.setText("¡Modo Trollface ACTIVADO! Trolololololol!");
}
if (cbTrollface.isSelected() == false && images.get(images.size()-1) != createImageIcon("image
images.remove(images.size()-1); // removes the bonus image (or last one added to the ArrayL
lblStatus.setText("¡Modo Trollface DESACTIVADO! :'(");
}
}
}
/** Performs action when sound toggle button is clicked.
* NOT IMPLEMENTED
*/
class SoundHandler implements ActionListener{
public void actionPerformed(ActionEvent e) {
if (tgglSound.isSelected() == false) {
tgglSound.setText("Sonido ON");
lblStatus.setText("Se han HABILITADO los efectos de sonido.");
// allowed to play sounds
} else {
tgglSound.setText("Sonido OFF");
lblStatus.setText("Los efectos de sonido se han DESACTIVADO.");
// disable sounds
}
}
}
/** Loads ImageIcons into the images ArrayList.
* The difficulty is determined by the number of images present in the ArrayList:
* • Add images here to make game more difficult.
* • Remove images here to make game easier.
*/
public void loadImages() {
images.add(createImageIcon("images/Banana.png", "Banana"));
images.add(createImageIcon("images/Bar.png", "Bar"));
images.add(createImageIcon("images/Bell.png", "Bell"));
images.add(createImageIcon("images/Cherry.png", "Cherry"));
images.add(createImageIcon("images/Clover.png", "Clover"));
images.add(createImageIcon("images/Diamond.png", "Diamond"));
images.add(createImageIcon("images/Plum.png", "Plum"));
images.add(createImageIcon("images/Seven.png", "Seven"));
images.add(createImageIcon("images/Watermelon.png", "Watermelon"));
}
/** Create a new ImageIcon, unless the URL is not found. */
public ImageIcon createImageIcon(String path, String description) {
Utilizamos cookies imgURL
java.net.URL en nuestro sitio web para proporcionarle la experiencia más relevante recordando sus
= getClass().getResource(path);
preferencias y visitas
if (imgURL repetidas.
!= null) { Al hacer clic en "Aceptar", consiente en el uso de TODAS las cookies.
No vender.
return new ImageIcon(imgURL, description);
} else {
AjustesSystem.err.println("Couldn't
Cookies ACEPTAR find file: " + path);
return null;

https://javadesdecero.es/codigos/juego-maquina-tragaperras/ 18/22
15/6/23, 21:31 Programación Juego de Máquina Tragaperras con Java » Java desde Cero

}
}

/** Increments matchThree by 1 and returns value. */


public int matchThree() {
matchThree++;
return matchThree;
}
/** Increments matchTwo by 1 and returns value. */
public int matchTwo() {
matchTwo++;
return matchTwo;
}
/** Increments lost by 1 and returns value. */
public int lose() {
lost++;
return lost;
}
/** Increments win by 1, increases progress bar and returns value. */
public int win() {
win = matchThree + matchTwo;
prgBarCheck(); // Increments the progress bar to unlock cheat menu.
return win;
}
public static void main(String args[]) {
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFee
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(SlotMachineGUI.class.getName()).log(java.util.logging.Level
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(SlotMachineGUI.class.getName()).log(java.util.logging.Level
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(SlotMachineGUI.class.getName()).log(java.util.logging.Level
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(SlotMachineGUI.class.getName()).log(java.util.logging.Level
}
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new SlotMachineGUI();
}
});
}
Utilizamos
} cookies en nuestro sitio web para proporcionarle la experiencia más relevante recordando sus
preferencias y visitas repetidas. Al hacer clic en "Aceptar", consiente en el uso de TODAS las cookies.
No vender.
El trabajo es de Mike Warner (https://www.youtube.com/watch?v=c4L_WUuwOso), un usuario de YouTube, que
Ajustes el
desarrolló Cookies ACEPTAR
código anterior. Este código fuente (https://ufile.io/mvcvke7a) incluye las imágenes que utilizó en la
creación del juego.

https://javadesdecero.es/codigos/juego-maquina-tragaperras/ 19/22
15/6/23, 21:31 Programación Juego de Máquina Tragaperras con Java » Java desde Cero

Palabras Finales
Las tragaperras tienen la particularidad de que deben ser programadas en un lenguaje determinado. El lenguaje
Java es el más común y el más fácil de usar ya que permite la creación de juegos y aplicaciones en línea. Java es
un lenguaje de programación que es muy complejo e implica muchos temas diferentes. La programación en Java
puede utilizarse para crear muchos tipos de juegos diferentes, como juegos de cartas, videojuegos y los populares
juegos interactivos de Internet.

Las máquinas tragaperras son el juego más popular en los casinos modernos. Si nunca has visto una, una máquina
tragaperras se parece a un juego de arcade que tiene una palanca en su lado. Por un módico precio puedes tirar de
la palanca y la máquina generará una combinación aleatoria de tres símbolos. Si aparece la combinación correcta,
puedes ganar un premio, incluso el premio mayor. ¡Disfruta del código fuente y el juego!

Compartir       

Sobre el Autor: Alex Walton (https://javadesdecero.es/perfil/qzal0/)


Hey hola! Yo soy Alex Walton y tengo el placer de compartir conocimientos hacía ti sobre el tema de
Programación en Java, desde cero, Online y Gratis.

ARTÍCULOS RELACIONADOS

CÓDIGO FUENTE: TRANSACCIONES BANCARIAS CON PROYECTOS DE CASINO EN JAVA CON CÓDIGO FUENTE GENERACIÓN DE NÚMEROS ALEATORIOS EN JAVA
JAVA

(https://javadesdecero.es/codigos/codigo-
(https://javadesdecero.es/codigos/proyectos-
(https://javadesdecero.es/codigos/generar
fuente-transacciones-bancarias/) casino-java/) numeros-aleatorios/)

Utilizamos cookies en nuestro sitio web para proporcionarle la experiencia más relevante recordando sus
preferencias y visitas repetidas. Al hacer clic en "Aceptar", consiente en el uso de TODAS las cookies.
No vender. DEJA UNA RESPUESTA
Comentario
Ajustes Cookies ACEPTAR

https://javadesdecero.es/codigos/juego-maquina-tragaperras/ 20/22
15/6/23, 21:31 Programación Juego de Máquina Tragaperras con Java » Java desde Cero

Nombre *

Email *

ENVIAR
Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios
(https://akismet.com/privacy/).

Buscar

PUBLICACIONES POPULARES
4 Razones para Aprender a Programar en Java este 2022 (https://javadesdecero.es/blog/4-
razones-aprender-java-2022/)

Utilizamos cookies en nuestro sitio web para proporcionarle la experiencia más relevante recordando sus
(https://javadesdecero.es/blog/4-
preferencias y visitas repetidas. Al hacer clic en "Aceptar", consiente en el uso de TODAS las cookies.
razones-aprender-
No vender.
¿Qué es y Para qué Sirve DevOps? (https://javadesdecero.es/blog/para-que-sirve-devops/)
java-2022/)
Ajustes Cookies ACEPTAR

https://javadesdecero.es/codigos/juego-maquina-tragaperras/ 21/22
15/6/23, 21:31 Programación Juego de Máquina Tragaperras con Java » Java desde Cero

(https://javadesdecero.es/blog/para-
que-sirve-devops/)
El Arte del Código Limpio o «Clean Code» en el Entorno Java
(https://javadesdecero.es/blog/codigo-limpio-o-clean-code/)

(https://javadesdecero.es/blog/codigo-
limpio-o-clean-code/)

© Java, 2021. Todos los derechos reservados. Java desde Cero (https://www.google.es/url?
sa=i&rct=j&q=aprender%20%java%20%desde%20%cero&esrc=s&url=https%3A%2F%2Fptop.only.wip.la%3A443%2Fhttps%2Fwww.javadesdecero.es%2F) |
Términos y Condiciones (https://javadesdecero.es/terminos-y-condiciones-uso/)

Utilizamos cookies en nuestro sitio web para proporcionarle la experiencia más relevante recordando sus
preferencias y visitas repetidas. Al hacer clic en "Aceptar", consiente en el uso de TODAS las cookies.
No vender.

Ajustes Cookies ACEPTAR

https://javadesdecero.es/codigos/juego-maquina-tragaperras/ 22/22

También podría gustarte