Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Source code auto-generated by Simple GUI Extension for BlueJ
- */
- import javax.swing.UIManager.LookAndFeelInfo;
- import java.awt.*;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.event.KeyAdapter;
- import java.awt.event.KeyEvent;
- import java.awt.event.MouseAdapter;
- import java.awt.event.MouseEvent;
- import java.awt.event.MouseWheelEvent;
- import java.awt.event.MouseWheelListener;
- import javax.swing.border.Border;
- import javax.swing.*;
- /** Graphical High Low Game. The user guesses whether the next card will be
- * higher or lower than the current card.
- * @author jdalbey
- * @version 2016.4.9
- */
- public class HiLoGame extends JFrame
- {
- public enum Guess{ low, high };
- private int bankroll; // how much money the player has
- private int currentNum; // the current displayed number
- private int maxHigh; // the highest number that can be dealt
- private JMenuBar menuBar;
- private JButton button1;
- private JButton button2;
- private JLabel label1;
- private JLabel label2;
- private JTextField txtNumber;
- private JTextField txtBalance;
- //Constructor
- public HiLoGame()
- {
- this.setTitle("Hi Lo Game");
- this.setSize(366,225);
- //menu generate method
- generateMenu();
- this.setJMenuBar(menuBar);
- //pane with null layout
- JPanel contentPane = new JPanel(null);
- contentPane.setPreferredSize(new Dimension(366,225));
- contentPane.setBackground(new Color(192,192,192));
- button1 = new JButton();
- button1.setBounds(13,90,112,34);
- button1.setBackground(new Color(214,217,223));
- button1.setForeground(new Color(0,0,0));
- button1.setEnabled(true);
- button1.setFont(new Font("DejaVu Sans",0,12));
- button1.setText("Guess High");
- button1.setVisible(true);
- //Set action for button click
- //Call defined method
- button1.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent evt) {
- guessHigh(evt);
- }
- });
- button2 = new JButton();
- button2.setBounds(14,139,110,33);
- button2.setBackground(new Color(214,217,223));
- button2.setForeground(new Color(0,0,0));
- button2.setEnabled(true);
- button2.setFont(new Font("DejaVu Sans",0,12));
- button2.setText("Guess Low");
- button2.setVisible(true);
- //Set action for button click
- //Call defined method
- button2.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent evt) {
- guessLow(evt);
- }
- });
- label1 = new JLabel();
- label1.setBounds(16,31,90,35);
- label1.setBackground(new Color(214,217,223));
- label1.setForeground(new Color(0,0,0));
- label1.setEnabled(true);
- label1.setFont(new Font("DejaVu Sans",0,12));
- label1.setText("Number");
- label1.setVisible(true);
- label2 = new JLabel();
- label2.setBounds(177,27,87,41);
- label2.setBackground(new Color(214,217,223));
- label2.setForeground(new Color(0,0,0));
- label2.setEnabled(true);
- label2.setFont(new Font("DejaVu Sans",0,12));
- label2.setText("Balance");
- label2.setVisible(true);
- txtNumber = new JTextField();
- txtNumber.setBounds(75,30,54,32);
- txtNumber.setBackground(new Color(255,255,255));
- txtNumber.setForeground(new Color(0,0,0));
- txtNumber.setEnabled(true);
- txtNumber.setFont(new Font("DejaVu Sans",0,12));
- txtNumber.setText("0");
- txtNumber.setVisible(true);
- txtNumber.setEditable(false);
- txtBalance = new JTextField();
- txtBalance.setBounds(247,30,71,34);
- txtBalance.setBackground(new Color(255,255,255));
- txtBalance.setForeground(new Color(0,0,0));
- txtBalance.setEnabled(true);
- txtBalance.setFont(new Font("DejaVu Sans",0,12));
- txtBalance.setText("100");
- txtBalance.setVisible(true);
- txtBalance.setEditable(false);
- //adding components to contentPane panel
- contentPane.add(button1);
- contentPane.add(button2);
- contentPane.add(label1);
- contentPane.add(label2);
- contentPane.add(txtNumber);
- contentPane.add(txtBalance);
- //adding panel to JFrame and seting of window position and close operation
- this.add(contentPane);
- this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- this.setLocationRelativeTo(null);
- this.pack();
- this.setVisible(true);
- // initialize the game
- bankroll = 100;
- maxHigh = 13;
- // A random integer value in the range [1,maxHigh]
- currentNum = 1 + (int)(Math.random() * ((maxHigh - 1) + 1));
- refresh();
- }
- //Method actionPerformed for button1
- private void guessHigh (ActionEvent evt)
- {
- takeTurn(Guess.high);
- refresh();
- }
- //Method actionPerformed for button2
- private void guessLow (ActionEvent evt)
- {
- takeTurn(Guess.low);
- refresh();
- }
- /**
- * Take a turn
- * @param guess The user's guess if the next number is higher or lower than current.
- * @post outcome is computed and bankroll updated, a new currentNum is selected randomly.
- */
- public void takeTurn(Guess guess)
- {
- // pick the next num
- int newNum = 1 + (int)(Math.random() * ((maxHigh - 1) + 1));
- // compare to previous num
- int diff = newNum - currentNum;
- // Evaluate user's guess
- if (diff > 0)
- {
- // Change the amount of money based on correctness of guess
- if ( guess == Guess.high )
- {
- bankroll += 10;
- }
- else
- {
- bankroll -= 10;
- }
- }
- else if (diff < 0)
- {
- // Change the amount of money based on correctness of guess
- if ( guess == Guess.low )
- {
- bankroll += 10;
- }
- else
- {
- bankroll -= 10;
- }
- }
- // if numbers are same nothing happens
- currentNum = newNum;
- }
- /* Update the fields with current values */
- private void refresh()
- {
- txtNumber.setText(""+currentNum);
- txtBalance.setText(""+bankroll);
- }
- //method for generate menu
- public void generateMenu()
- {
- menuBar = new JMenuBar();
- JMenu file = new JMenu("File");
- JMenuItem exit = new JMenuItem("Exit ");
- exit.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- dispose();
- }
- });
- file.add(exit);
- menuBar.add(file);
- }
- public static void main(String[] args)
- {
- System.setProperty("swing.defaultlaf", "com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
- javax.swing.SwingUtilities.invokeLater(new Runnable()
- {
- public void run()
- {
- new HiLoGame();
- }
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement