brilliant_moves

Puggies.java

Feb 8th, 2013
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5 4.80 KB | None | 0 0
  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import javax.swing.*;
  4. import java.util.Random;
  5.  
  6. public class Puggies {
  7.  
  8.     /**
  9.     *   Program:    Puggies.java
  10.     *   Purpose:    Simulate a slot machine
  11.     *   Creator:    Chris Clarke
  12.     *   Created:    07.02.2013
  13.     */
  14.  
  15.     public static void main(String[] args) {
  16.         PuggiesJFrame frame = new PuggiesJFrame();
  17.         frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE);
  18.         // Set to a reasonable size.
  19.         frame.setSize(740, 500);
  20.         frame.setVisible(true);
  21.     } // end main
  22. } // end class
  23.  
  24. class PuggiesJFrame extends JFrame implements ActionListener {
  25.  
  26.     public PuggiesJFrame() {
  27.         setTitle("Puggies by Chris Clarke");
  28.         setLayout(new BorderLayout());
  29.         userControlPanel = new JPanel();
  30.         userControlPanel.setLayout( new FlowLayout());
  31.             btnNudge1 = new Button( "Nudge");
  32.         btnNudge1.addActionListener( this);
  33.         btnNudge1.setEnabled(false);
  34.             userControlPanel.add( btnNudge1);
  35.             btnNudge2 = new Button( "Nudge");
  36.         btnNudge2.addActionListener( this);
  37.         btnNudge2.setEnabled(false);
  38.             userControlPanel.add( btnNudge2);
  39.             btnNudge3 = new Button( "Nudge");
  40.         btnNudge3.addActionListener( this);
  41.         btnNudge3.setEnabled(false);
  42.             userControlPanel.add( btnNudge3);
  43.             btnSpin = new Button( "Spin!");
  44.         btnSpin.addActionListener( this);
  45.             userControlPanel.add( btnSpin);
  46.         add("South", userControlPanel);
  47.     }
  48.  
  49.     public void paint (Graphics g) {
  50.         g.setColor(Color.WHITE);
  51.         g.fillRect(0,0, 740, 500);
  52.  
  53.         g.setFont(new Font("Courier", Font.PLAIN, 90));
  54.  
  55.         g.setColor(Color.BLACK);
  56.         g.drawString("| | | |", 180, 200);
  57.  
  58.         if (!show) return;
  59.  
  60.         g.setColor(Color.LIGHT_GRAY);
  61.         g.drawString("|" +nudge1 + "|" + nudge2 + "|" + nudge3+ "|", 180, 120);
  62.         g.setColor(Color.BLACK);
  63.         g.drawString("|" +numberOne+"|"+numberTwo+ "|" + numberThree+"|", 180, 200);
  64.         if (numberOne == numberTwo && numberTwo == numberThree) {
  65.             //All of your numbers match
  66.             int prize = 1;
  67.             if (numberOne==5 || numberOne==6) {
  68.                 prize = 2;
  69.             }
  70.             if (numberOne>6) {
  71.                 prize = 3;
  72.             }
  73.             g.drawString("WIN £"+prize+"!!", 180, 300);
  74.             n=0;    // no nudges
  75.             doingNudges = true;
  76.         } else if (numberOne == numberTwo || numberTwo == numberThree) {
  77.             //Two of your numbers match
  78.             g.drawString("WIN £0.20!", 120, 300);
  79.         }
  80.  
  81.         if (n==0 && !doingNudges) {
  82.             n = getNudges();
  83.         }
  84.  
  85.         g.drawString("Nudges: "+n, 220, 400);
  86.         if (n>0) {
  87.             doingNudges = true;
  88.             btnNudge1.setEnabled(true);
  89.             btnNudge2.setEnabled(true);
  90.             btnNudge3.setEnabled(true);
  91.         } else {
  92.  
  93.             btnNudge1.setEnabled(false);
  94.             btnNudge2.setEnabled(false);
  95.             btnNudge3.setEnabled(false);
  96.         }
  97.     }
  98.  
  99.     public int getNudges() {
  100.         Random number = new Random();
  101.         int[] nudges = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3 };
  102.  
  103.         int num = number.nextInt(nudges.length);
  104.         if (nudges[num]>0) doingNudges = true;
  105.         return nudges[num];
  106.     }
  107.  
  108.     public void spin() {
  109.         Random number = new Random();
  110.         int numSymbols = symbols1.length;
  111.  
  112.         r1 = number.nextInt(numSymbols);
  113.         r2 = number.nextInt(numSymbols);
  114.         r3 = number.nextInt(numSymbols);
  115.  
  116.         doingNudges = false;
  117.         n = 0;
  118.     }
  119.  
  120.     public void calcSymbols() {
  121.         numberOne = symbols1[r1];
  122.         numberTwo = symbols2[r2];
  123.         numberThree = symbols3[r3];
  124.  
  125.         nudge1 = r1 == symbols1.length-1? symbols1[0]: symbols1[r1+1];
  126.         nudge2 = r2 == symbols2.length-1? symbols2[0]: symbols2[r2+1];
  127.         nudge3 = r3 == symbols3.length-1? symbols3[0]: symbols3[r3+1];
  128.     }
  129.  
  130.     public void nudge1() {
  131.         numberOne = nudge1;
  132.         r1++;
  133.         if (r1>=symbols1.length) r1 = 0;
  134.     }
  135.  
  136.     public void nudge2() {
  137.         numberTwo = nudge2;
  138.         r2++;
  139.         if (r2>=symbols2.length) r2 = 0;
  140.     }
  141.  
  142.     public void nudge3() {
  143.         numberThree = nudge3;
  144.         r3++;
  145.         if (r3>=symbols3.length) r3 = 0;
  146.     }
  147.  
  148.     public void actionPerformed(ActionEvent evt) {
  149.         if (evt.getSource() == btnSpin) {   // spin button clicked
  150.             show = true;
  151.             spin();
  152.         } else if (evt.getSource() == btnNudge1) {
  153.             if (n>0) {
  154.                 nudge1();
  155.                 n--;
  156.             }
  157.         } else if (evt.getSource() == btnNudge2) {
  158.             if (n>0) {
  159.                 nudge2();
  160.                 n--;
  161.             }
  162.         } else if (evt.getSource() == btnNudge3) {
  163.             if (n>0) {
  164.                 nudge3();
  165.                 n--;
  166.             }
  167.         }
  168.         calcSymbols();
  169.         repaint();
  170.     }
  171.  
  172.     public static final int[]   symbols1 = { 2, 7, 4, 1, 8, 9, 5, 3, 6, 0, 2, 3 };
  173.     public static final int[]   symbols2 = { 3, 0, 8, 1, 5, 6, 4, 2, 9, 7, 1, 4 };
  174.     public static final int[]   symbols3 = { 8, 9, 4, 2, 7, 3, 0, 1, 6, 5, 0, 2 };
  175.  
  176.     private static int      numberOne, numberTwo, numberThree;
  177.     private static int      nudge1, nudge2, nudge3;
  178.     private static int      n=0; // the number of available nudges
  179.     private static boolean      doingNudges = false;
  180.    
  181.     private static int      r1, r2, r3;
  182.  
  183.     private static boolean      show = false;
  184.     public static JPanel        userControlPanel;
  185.     public static Button        btnSpin;
  186.     public static Button        btnNudge1, btnNudge2, btnNudge3;
  187. }
Advertisement
Add Comment
Please, Sign In to add comment