import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import javax.swing.*;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author akr065
*/
public class RPS extends JFrame {
private static final int FRAME_WIDTH = 1300;
private static final int FRAME_HEIGHT = 800;
private static final int AREA_ROWS = 10;
private static final int AREA_COLUMNS = 30;
private JButton Rock, Paper, Scissor, Reset, Simu;
private JPanel cpuSide, playerSide, buttonPanel, gamePanel, outcomePanel;
private JPanel playerWinsPanel,cpuWinsPanel,tiesPanel,Computer, Player, Tie;
private JTextArea resultArea;
private JLabel label, label1, label2, label3, label4, label5, label6;
Container contentPane;
public RPS ()
{
resultArea = new JTextArea(AREA_ROWS, AREA_COLUMNS);
resultArea.setEditable(false);
JScrollPane scrollPane = new JScrollPane(resultArea);
setSize(FRAME_WIDTH, FRAME_HEIGHT);
setTitle("Rock, Paper, Scissors");
contentPane = getContentPane();
contentPane.setLayout(new FlowLayout());
contentPane.setLayout(new BorderLayout(5,5));
Rock = new JButton("Rock");
Paper = new JButton("Paper");
Scissor = new JButton("Scissor");
Reset = new JButton("Reset ScoreBoard");
Simu = new JButton("Run Simulation");
ButtonListener listener = new ButtonListener();
Rock.addActionListener(listener);
Paper.addActionListener(listener);
Scissor.addActionListener(listener);
Reset.addActionListener(listener);
Simu.addActionListener(listener);
label = new JLabel ("Make your Selection");
buttonPanel = new JPanel();
buttonPanel.setLayout(new GridLayout(4,3));
buttonPanel.setBorder(BorderFactory.createTitledBorder("Buttons"));
buttonPanel.setBackground(Color.BLUE);
buttonPanel.add(Rock);
buttonPanel.add(Paper);
buttonPanel.add(Scissor);
label1= new JLabel("");
playerSide = new JPanel();
playerSide.setBorder(BorderFactory.createTitledBorder("Player"));
playerSide.setLayout(new GridLayout(3,0));
playerSide.setBackground(Color.GRAY);
playerSide.add(label1);
label1.setFont(new Font("Areil", Font.BOLD, 16));
label2 = new JLabel("");
cpuSide = new JPanel();
cpuSide.setBorder(BorderFactory.createTitledBorder("Computer"));
cpuSide.setLayout(new GridLayout(1,0));
cpuSide.setBackground(Color.GRAY);
label2.setFont(new Font("Areil", Font.BOLD, 16));
label3 = new JLabel("");
outcomePanel = new JPanel();
outcomePanel.setLayout(new GridLayout(4,0));
outcomePanel.setBackground(Color.GREEN);
JLabel labelResult =new JLabel ("No Results");
outcomePanel.add(labelResult);
label3.setFont(new Font("Areil", Font.BOLD, 16));
label4= new JLabel("");
playerWinsPanel= new JPanel();
playerWinsPanel.setLayout(new GridLayout(2,0));
playerWinsPanel.setBackground(Color.WHITE);
JLabel labelPW = new JLabel ("Player Wins");
playerWinsPanel.add(labelPW);
playerWinsPanel.add(label4);
label5= new JLabel("");
cpuWinsPanel= new JPanel();
cpuWinsPanel.setLayout(new GridLayout(2,0));
cpuWinsPanel.setBackground(Color.WHITE);
JLabel labelCW = new JLabel ("Computer Wins");
cpuWinsPanel.add(labelCW);
cpuWinsPanel.add(label5);
label6= new JLabel("");
tiesPanel= new JPanel();
tiesPanel.setLayout(new GridLayout(2,0));
tiesPanel.setBackground(Color.WHITE);
JLabel labelTie = new JLabel ("Draw");
tiesPanel.add(labelTie);
tiesPanel.add(label6);
contentPane.add(cpuSide, BorderLayout.EAST);
contentPane.add(playerSide, BorderLayout.WEST);
contentPane.add(gamePanel, BorderLayout.CENTER);
contentPane.add(buttonPanel, BorderLayout.SOUTH);
contentPane.add(scrollPane);
gamePanel = new JPanel();
gamePanel.setBackground(Color.black);
gamePanel.setLayout(new GridLayout(0,3));
gamePanel.add(label);
gamePanel.add(buttonPanel);
gamePanel.add(playerSide);
gamePanel.add(cpuSide);
gamePanel.add(playerWinsPanel);
gamePanel.add(cpuWinsPanel);
gamePanel.add(Reset);
gamePanel.add(Simu);
}
public class ButtonListener implements ActionListener {
//-----------------------------------------------
// Determines which button was pushed and outputs text accordingly
//-----------------------------------------------
Random generate= new Random();
int Computer = 0, Player =0, Tie = 0, compic, playpic;
public void actionPerformed (ActionEvent event)
{
compic=generate.nextInt(3)+1;
// Computer Choice
if (compic== 1)
label2.setText(" Rock ");
else if ( compic== 2)
label2.setText(" Paper ");
else
label2.setText(" Scissor ");
// Player Choice
if (event.getSource () == Rock)
label1.setText(" Rock ");
else if (event.getSource () == Paper)
label1.setText(" Paper ");
else
label1.setText(" Scissor ");
if (event.getSource () == Rock)
playpic = 1;
else if (event.getSource () == Paper)
playpic = 2;
else
playpic = 3;
}
//-------------------------------------------------------------------------------------------------------------------------
// Compares Computer and Players choice
//-------------------------------------------------------------------------------------------------------------------------
{
switch (playpic)
{
case 1:
{
if (compic==2)
{
label3.setText
("Paper covers Rock - computer wins");
Computer++;
}
else if (compic==3)
{
label3.setText
("Rock breaks Scissors - player wins");
Player++;
}
else
{
label3.setText ("Tie");
Tie++;
}
break;
}
case 2:
{
if (compic==1)
{
label3.setText
("Paper covers Rock - player wins");
Player++;
}
else if (compic==3)
{
label3.setText
("Scissors cut Paper - computer wins");
Computer++;
}
else
{
label3.setText ("Tie");
Tie++;
}
break;
}
case 3:
{
if (compic==1)
{
label3.setText
("Rock breaks Scissors - computer wins");
Computer++;
}
else if (compic==2)
{
label3.setText
("Scissors cuts Paper - player wins");
Player++;
}
else
{
label3.setText("Tie");
Tie++;
break;
}
}
}
}
}
}
import javax.swing.JFrame;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author akr065
*/
public class RPSTest {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
JFrame frame = new JFrame("ROCK");
frame.getContentPane().add(new RPS());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
This post has been edited by jumptrooper: 16 February 2011 - 11:46 AM
Reason for edit:: closed code tag

New Topic/Question
Reply




MultiQuote








|