(PERHATIAN! INGAT! DILARANG MAIN SLOT! JUDI ONLINE! HARAM) Blog ini hanya untuk memberitahukan bahwa :
1. Dilarang Judi Online
2. Dilarang Main Slot sampai PAKAI TARUHAN UANG
3. Program ini hanya permainan biasa
source code dari :
https://www.javacodegeeks.com/2014/08/programming-a-simple-slot-machine-game-using-java.html
Di Folder src,
Buat Folder images
Pada Folder images, simpan file gambar2 di bawah ini
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
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, lblReel3, lblStatus, lblWon;
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, int reel1, int reel2, int reel3) {
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();
layoutFrame();
layoutReels();
layoutOther();
}
/** Creates the JFrame and Panels. */
private void createForm() {
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("Matched Two: ");
lblMatchThree = new JLabel();
lblMatchThree.setText("Matched Three: ");
lblWon = new JLabel();
lblWon.setText("Won: ");
sepStats2 = new JSeparator();
sepStats2.setOrientation(SwingConstants.VERTICAL);
lblCredits = new JLabel();
lblCredits.setText("Credits: "+credits);
lblMoney = new JLabel();
lblMoney.setText("Money: £"+df.format(funds));
lblLost = new JLabel();
lblLost.setText("Lost: ");
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("Welcome to WARNER SLOTS!!! ©2012");
sepCheats = new JSeparator();
prgbarCheatUnlocker = new JProgressBar();
prgbarCheatUnlocker.setToolTipText("Fill the bar to unlock the cheat menu.");
lblReel1.setIcon(images.get(reel1));
lblReel2.setIcon(images.get(reel2));
lblReel3.setIcon(images.get(reel3));
}
/** Adds buttons to the form. */
private void addButtons() {
btnSpin = new JButton();
btnSpin.setBackground(new Color(50, 255, 50));
btnSpin.setText("Spin");
btnSpin.setToolTipText("Click to spin the reels!");
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("Buy Credits");
btnCash.setToolTipText("£"+df.format(bet)+" converts to "+boughtCredits+" credits.");
btnCash.setHorizontalTextPosition(SwingConstants.CENTER);
btnCash.addActionListener(new BuyCreditsHandler());
tgglSound = new JToggleButton();
tgglSound.setSelected(false);
tgglSound.setText("Sound ON");
tgglSound.addActionListener(new SoundHandler());
cbAlwaysWin = new JCheckBox();
cbAlwaysWin.setText("Always Win Mode");
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);
pnlReels.setLayout(pnlReelsLayout);
pnlReelsLayout.setHorizontalGroup(
pnlReelsLayout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(pnlReelsLayout.createSequentialGroup()
.addContainerGap()
.addComponent(pnlReel1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(pnlReel2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(pnlReel3, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.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, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(pnlReel1, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(pnlReel3, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.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))
);
GroupLayout pnlReel3Layout = new GroupLayout(pnlReel3);
pnlReel3.setLayout(pnlReel3Layout);
pnlReel3Layout.setHorizontalGroup(
pnlReel3Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(pnlReel3Layout.createSequentialGroup()
.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_VALUE))
.addGap(0, 0, Short.MAX_VALUE))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING, false)
.addGroup(layout.createSequentialGroup()
.addComponent(cbAlwaysWin)
.addGap(18, 18, 18)
.addComponent(cbTrollface)
.addGap(18, 18, 18)
.addComponent(cbSuperJackpot)
.addPreferredGap(ComponentPlacement.RELATED, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(tgglSound))
.addComponent(btnSpin, GroupLayout.Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(pnlReels, GroupLayout.Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(sepStats, GroupLayout.Alignment.TRAILING)
.addComponent(lblStatus, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.TRAILING, false)
.addComponent(lblMatchTwo, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(lblWon, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(lblMatchThree, GroupLayout.DEFAULT_SIZE, 149, Short.MAX_VALUE))
.addPreferredGap(ComponentPlacement.UNRELATED)
.addComponent(sepStats2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING, false)
.addComponent(lblLost, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(lblCredits, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(lblMoney, GroupLayout.DEFAULT_SIZE, 154, Short.MAX_VALUE))
.addGap(0, 0, Short.MAX_VALUE)))
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.TRAILING)
.addComponent(btnCash)
.addComponent(sepStatus, GroupLayout.PREFERRED_SIZE, 426, GroupLayout.PREFERRED_SIZE)))
.addContainerGap())))
);
layout.setVerticalGroup(
layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(pnlReels, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(btnSpin, GroupLayout.PREFERRED_SIZE, 56, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(ComponentPlacement.UNRELATED)
.addComponent(sepStats, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.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_SIZE)
.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_SIZE)
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(lblCredits, GroupLayout.PREFERRED_SIZE, 19, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(lblMoney, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addComponent(btnCash, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(ComponentPlacement.UNRELATED)
.addComponent(sepStatus, GroupLayout.PREFERRED_SIZE, 2, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(ComponentPlacement.UNRELATED)
.addComponent(lblStatus, GroupLayout.PREFERRED_SIZE, 30, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(ComponentPlacement.UNRELATED)
.addComponent(sepCheats, GroupLayout.PREFERRED_SIZE, 5, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(prgbarCheatUnlocker, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(cbAlwaysWin)
.addComponent(cbTrollface)
.addComponent(cbSuperJackpot)
.addComponent(tgglSound))
.addContainerGap())
);
frmFrame.pack();
}
/** Performs action when Buy Credits button is clicked. */
class BuyCreditsHandler implements ActionListener {
public void actionPerformed(ActionEvent event) {
buyCredits();
}
}
/** if the player has enough funds credits are added. */
public void buyCredits() {
if (funds >= creditBuyout) {
funds -= creditBuyout;
lblMoney.setText("Money: £"+df.format(funds));
credits += boughtCredits;
lblCredits.setText("Credits: "+credits);
lblStatus.setText("+"+boughtCredits+" credits purchased! -£"+df.format(creditBuyout));
} else {
lblStatus.setText("Insufficient £ to purchase credits!");
}
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='http://www.gambleaware.co.uk/'>www.gambleaware.co.uk</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("Bet is "+bet+" credits, purchase more with £!");
}
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.
reel2 = reel1;
reel3 = reel1;
} else if (winType == 1) { // winType = 1 - Reels 1 and 2 will match.
reel2 = reel1;
} else if (winType == 2) { // winType = 2 - Reels 1 and 3 will match.
reel3 = reel1;
} 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("You matched THREE symbols ("+images.get(reel1).getDescription()+")! +£"+df.format(getPrize(payout))+"!");
lblMatchThree.setText("Matched Three: "+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("You matched TWO symbols ("+images.get(reel1).getDescription()+")! +£"+df.format(getPrize(payout))+"!");
lblMatchTwo.setText("Matched Two: "+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("You matched TWO symbols ("+images.get(reel2).getDescription()+")! +£"+df.format(getPrize(payout))+"!");
lblMatchTwo.setText("Matched Two: "+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("Sorry, you didn't match any symbols. -"+bet+" credits!");
lblLost.setText("Lost: "+lose());
}
lblCredits.setText("Credits: "+(credits -= bet)); // deduct bet amount from available credits.
lblMoney.setText("Money: £"+df.format((funds += getPrize(payout)))); // If there is a win add amount to cash pot.
lblWon.setText("Wins: "+win()); // increment win amount.
}
/** 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 wins! Congratulations you've unlocked the cheat menu!");
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("Super Prize mode ENABLED! The £ won is now x100!");
}
if (cbSuperJackpot.isSelected() == false) {
lblStatus.setText("Super Prize mode DISABLED! :'(");
}
}
}
/** Performs action when Troll face check box is clicked. */
class AlwaysWinHandler implements ActionListener{
public void actionPerformed(ActionEvent e) {
if (cbAlwaysWin.isSelected() == true) {
lblStatus.setText("Always Win mode ENABLED! 7-7-7's here we come!");
}
if (cbAlwaysWin.isSelected() == false) {
lblStatus.setText("Always Win mode DISABLED! :'(");
}
}
}
/** 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/Trollface.png", "Trollface")) {
images.add(createImageIcon("images/Trollface.png", "Trollface")); // adds a bonus image to the images ArrayList.
lblStatus.setText("Trollface mode ENABLED! Trolololololol!");
}
if (cbTrollface.isSelected() == false && images.get(images.size()-1) != createImageIcon("images/Trollface.png", "Trollface")) {
images.remove(images.size()-1); // removes the bonus image (or last one added to the ArrayList) from the images ArrayList.
lblStatus.setText("Trollface mode DISABLED! :'(");
}
}
}
/** 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("Sound ON");
lblStatus.setText("Sound effects have been ENABLED!");
// allowed to play sounds
} else {
tgglSound.setText("Sound OFF");
lblStatus.setText("Sound effects have been DISABLED!");
// 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) {
java.net.URL imgURL = getClass().getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL, description);
} else {
System.err.println("Couldn't find file: " + path);
return null;
}
}
/** 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.getInstalledLookAndFeels()) {
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.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(SlotMachineGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(SlotMachineGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(SlotMachineGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new SlotMachineGUI();
}
});
}
}
HASIL
Tidak ada komentar:
Posting Komentar