Closed
Bug 843737
Opened 13 years ago
Closed 13 years ago
Error connot find bug
Categories
(Firefox :: Untriaged, defect)
Tracking
()
RESOLVED
INVALID
People
(Reporter: devil_king_banes, Unassigned)
Details
Attachments
(1 obsolete file)
User Agent: Mozilla/5.0 (Windows NT 5.1; rv:19.0) Gecko/20100101 Firefox/19.0
Build ID: 20130215130331
Steps to reproduce:
coding small game
Actual results:
error can't run
Expected results:
how to fix
Updated•13 years ago
|
Group: core-security
Status: UNCONFIRMED → RESOLVED
Closed: 13 years ago
Resolution: --- → INVALID
| Reporter | ||
Comment 1•13 years ago
|
||
Comment on attachment 716697 [details]
tag.txt
>*
> Title: Tic-Tac-Toe Game
> Created: October 5, 2008
> Last Edited: pending...
> Author: Blmaster
> Changes:
> See Below...
>*/
>import javax.swqweqweqweing.*;
>import java.awt.*;
>import java.awt.event.*;
>import java.io.*;
>import java.util.*;
>public class TicTacToe implements ActionListener {
> final String VERSION = "1.0";
>//Setting up ALL the variables
> JFrame window = new JFrame("Tic-Tac-Toe " + VERSION);
>
> JMenuBar mnuMain = new JMenuBar();
> JMenuItem mnuNewGame = new JMenuItem("New Game"),
> mnuInstruction = new JMenuItem("Instructions"),
> mnuExit = new JMenuItem("Exit"),
> mnuAbout = new JMenuItem("About");
>
> JButton btn1v1 = new JButton("Player vs Player"),
> btn1vCPU = new JButton("Player vs CPU"),
> btnBack = new JButton("<--back");
> JButton btnEmpty[] = new JButton[10];
>
> JPanel pnlNewGame = new JPanel(),
> pnlNorth = new JPanel(),
> pnlSouth = new JPanel(),
> pnlTop = new JPanel(),
> pnlBottom = new JPanel(),
> pnlPlayingField = new JPanel();
> JLabel lblTitle = new JLabel("Tic-Tac-Toe");
> JTextArea txtMessage = new JTextArea();
>
> final int winCombo[][] = new int[][] {
> {1, 2, 3}, {1, 4, 7}, {1, 5, 9},
> {4, 5, 6}, {2, 5, 8}, {3, 5, 7},
> {7, 8, 9}, {3, 6, 9}
>/*Horizontal Wins*/ /*Vertical Wins*/ /*Diagonal Wins*/
> };
> final int X = 412, Y = 268, color = 190;
> boolean inGame = false;
> boolean win = false;
> boolean btnEmptyClicked = false;
> String message;
> int turn = 1;
> int wonNumber1 = 1, wonNumber2 = 1, wonNumber3 = 1;
>
> public TicTacToe() { //Setting game properties and layout and sytle...
> //Setting window properties:
> window.setSize(X, Y);
> window.setLocation(450, 260);
> window.setResizable(false);
> window.setLayout(new BorderLayout());
> window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
>
> //Setting Panel layouts and properties
> pnlNewGame.setLayout(new GridLayout(2, 1, 2, 10));
> pnlNorth.setLayout(new FlowLayout(FlowLayout.CENTER));
> pnlSouth.setLayout(new FlowLayout(FlowLayout.CENTER));
>
> pnlNorth.setBackground(new Color(color-20, color-20, color-20));
> pnlSouth.setBackground(new Color(color, color, color));
>
> pnlTop.setBackground(new Color(color, color, color));
> pnlBottom.setBackground(new Color(color, color, color));
>
> pnlTop.setLayout(new FlowLayout(FlowLayout.CENTER));
> pnlBottom.setLayout(new FlowLayout(FlowLayout.CENTER));
> pnlNewGame.setBackground(Color.blue);
>
> //Adding menu items to menu bar
> mnuMain.add(mnuNewGame);
> mnuMain.add(mnuInstruction);
> mnuMain.add(mnuAbout);
> mnuMain.add(mnuExit);//---->Menu Bar Complete
>
> //Adding buttons to NewGame panel
> pnlNewGame.add(btn1v1);
> pnlNewGame.add(btn1vCPU);
>
> //Adding Action Listener to all the Buttons and Menu Items
> mnuNewGame.addActionListener(this);
> mnuExit.addActionListener(this);
> mnuInstruction.addActionListener(this);
> mnuAbout.addActionListener(this);
> btn1v1.addActionListener(this);
> btn1vCPU.addActionListener(this);
> btnBack.addActionListener(this);
>
> //Setting up the playing field
> pnlPlayingField.setLayout(new GridLayout(3, 3, 2, 2));
> pnlPlayingField.setBackground(Color.black);
> for(int i=1; i<=9; i++) {
> btnEmpty[i] = new JButton();
> btnEmpty[i].setBackground(new Color(220, 220, 220));
> btnEmpty[i].addActionListener(this);
> pnlPlayingField.add(btnEmpty[i]);
> }
> //Adding everything needed to pnlNorth and pnlSouth
> pnlNorth.add(mnuMain);
> pnlSouth.add(lblTitle);
>
> //Adding to window and Showing window
> window.add(pnlNorth, BorderLayout.NORTH);
> window.add(pnlSouth, BorderLayout.CENTER);
> window.setVisible(true);
> }
>
>//-------------------START OF ACTION PERFORMED CLASS-------------------------//
> public void actionPerformed(ActionEvent click) {
> Object source = click.getSource();
> for(int i=1; i<=9; i++) {
> if(source == btnEmpty[i] && turn < 10) {
> btnEmptyClicked = true;
> if(!(turn % 2 == 0))
> btnEmpty[i].setText("X");
> else
> btnEmpty[i].setText("O");
> btnEmpty[i].setEnabled(false);
> pnlPlayingField.requestFocus();
> turn++;
> }
> }
> if(btnEmptyClicked) {
> checkWin();
> btnEmptyClicked = false;
> }
> if(source == mnuNewGame) {
> clearPanelSouth();
> pnlSouth.setLayout(new GridLayout(2, 1, 2, 5));
> pnlTop.add(pnlNewGame);
> pnlBottom.add(btnBack);
> pnlSouth.add(pnlTop);
> pnlSouth.add(pnlBottom);
>
> }
> else if(source == btn1v1) {
> if(inGame) {
> int option = JOptionPane.showConfirmDialog(null, "If you start a new game," +
> "your current game will be lost..." + "\n" +
> "Are you sure you want to continue?",
> "Quit Game?" ,JOptionPane.YES_NO_OPTION);
> if(option == JOptionPane.YES_OPTION) {
> inGame = false;
> }
> }
> if(!inGame) {
> btnEmpty[wonNumber1].setBackground(new Color(220, 220, 220));
> btnEmpty[wonNumber2].setBackground(new Color(220, 220, 220));
> btnEmpty[wonNumber3].setBackground(new Color(220, 220, 220));
> turn = 1;
> for(int i=1; i<10; i++) {
> btnEmpty[i].setText("");
> btnEmpty[i].setEnabled(true);
> }
> win = false;
> showGame();
>
> }
> }
> else if(source == btn1vCPU) {
> JOptionPane.showMessageDialog(null, "Coming Soon!!");
> }
> else if(source == mnuExit) {
> int option = JOptionPane.showConfirmDialog(null, "Are you sure you want to exit?",
> "Exit Game" ,JOptionPane.YES_NO_OPTION);
> if(option == JOptionPane.YES_OPTION)
> System.exit(0);
> }
> else if(source == mnuInstruction || source == mnuAbout) {
> clearPanelSouth();
> String message = "";
> txtMessage.setBackground(new Color(color, color, color));
> if(source == mnuInstruction) {
> message = "Instructions:\n\n" +
> "Your goal is to be the first player to get 3 X's or O's in a\n" +
> "row. (horizontally, diagonally, or vertically)";
> } else {
> message = "About:\n\n" +
> "Title: Tic-Tac-Toe\n" +
> "Author: Blmaster\n" +
> "Version: " + VERSION + "\n";
> }
> txtMessage.setEditable(false);
> txtMessage.setText(message);
> pnlSouth.setLayout(new GridLayout(2, 1, 2, 5));
> pnlTop.add(txtMessage);
> pnlBottom.add(btnBack);
> pnlSouth.add(pnlTop);
> pnlSouth.add(pnlBottom);
> }
> else if(source == btnBack) {
> if(inGame)
> showGame();
> else {
> clearPanelSouth();
> pnlSouth.setLayout(new FlowLayout(FlowLayout.CENTER));
> pnlNorth.setVisible(true);
> pnlSouth.add(lblTitle);
> }
> }
> pnlSouth.setVisible(false);
> pnlSouth.setVisible(true);
> }
>//-------------------END OF ACTION PERFORMED CLASS-------------------------//
>
>/*
> ----------------------------------
> Start of all the other methods. |
> ----------------------------------
>*/
> public void showGame() { // Shows the Playing Field
> // *IMPORTANT*- Does not start out brand new (meaning just shows what it had before)
> clearPanelSouth();
> inGame = true;
> pnlSouth.setLayout(new BorderLayout());
> pnlSouth.add(pnlPlayingField, BorderLayout.CENTER);
> pnlPlayingField.requestFocus();
> }
>
> public void checkWin() { // checks if there are 3 symbols in a row vertically, diagonally, or horizontally.
> // then shows a message and disables buttons.
> for(int i=0; i<7; i++) {
> if(
> !btnEmpty[winCombo[i][0]].getText().equals("") &&
> btnEmpty[winCombo[i][0]].getText().equals(btnEmpty[winCombo[i][1]].getText()) &&
> // if {1 == 2 && 2 == 3}
> btnEmpty[winCombo[i][1]].getText().equals(btnEmpty[winCombo[i][2]].getText())
> /*
> The way this checks the if someone won is:
> First: it checks if the btnEmpty[x] is not equal to an empty string- x being the array number
> inside the multi-dementional array winCombo[checks inside each of the 7 sets][the first number]
> Secong: it checks if btnEmpty[x] is equal to btnEmpty[y]- x being winCombo[each set][the first number]
> y being winCombo[each set the same as x][the second number] (So basically checks if the first and
> second number in each set is equal to each other)
> Third: it checks if btnEmtpy[y] is eual to btnEmpty[z]- y being the same y as last time and z being
> winCombo[each set as y][the third number]
> Conclusion: So basically it checks if it is equal to the btnEmpty is equal to each set of numbers
> */
> ) {
> win = true;
> wonNumber1 = winCombo[i][0];
> wonNumber2 = winCombo[i][1];
> wonNumber3 = winCombo[i][2];
> btnEmpty[wonNumber1].setBackground(Color.white);
> btnEmpty[wonNumber2].setBackground(Color.white);
> btnEmpty[wonNumber3].setBackground(Color.white);
> break;
> }
> }
> if(win || (!win && turn>9)) {
> if(win) {
> if(turn % 2 == 0)
> message = "X has won!";
> else
> message = "O has won!";
> win = false;
> } else if(!win && turn>9) {
> message = "Both players have tied!\nBetter luck next time.";
> }
> JOptionPane.showMessageDialog(null, message);
> for(int i=1; i<=9; i++) {
> btnEmpty[i].setEnabled(false);
> }
> }
> }
>
> public void clearPanelSouth() { //Removes all the possible panels
> //that pnlSouth, pnlTop, pnlBottom
> //could have.
> pnlSouth.remove(lblTitle);
> pnlSouth.remove(pnlTop);
> pnlSouth.remove(pnlBottom);
> pnlSouth.remove(pnlPlayingField);
> pnlTop.remove(pnlNewGame);
> pnlTop.remove(txtMessage);
> pnlBottom.remove(btnBack);
> }
>
> public static void main(String[] args) {
> new TicTacToe();// Calling the class construtor.
> }
>}
>/*
> Changes:
> 1.0- changes below: Stable
> 0.9- added back button, added comments.
> 0.8- added dynamic win message.
> 0.7- added game function- game playable.
> 0.6- changed menu layout.
> 0.5- basic functions with menu and nice GUI.
>*/
Attachment #716697 -
Flags: checkin+
Updated•13 years ago
|
Attachment #716697 -
Attachment is obsolete: true
Attachment #716697 -
Flags: checkin+
Comment 2•13 years ago
|
||
Do not create test bugs here. This is a production system and you are generating SPAM
You need to log in
before you can comment on or make changes to this bug.
Description
•