Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Newer to Java, don\'t want a complex tic-tac-toe program just an easy basic one.

ID: 3643395 • Letter: N

Question

Newer to Java, don't want a complex tic-tac-toe program just an easy basic one.

Design and code a swing GUI for a 2 player tic-tac-toe game on a 3x3 board. The JFrame should use a BorderLayout with a JLabel in the NORTH region to display messages and a JPanel in the CENTER region to display the board. For the board in JPanel use a grid layout manager with a 3x3 layout of JButton's in each cell to display the game board. The button label should initially be blank. When a player clicks on an empty button an X or O should be placed in the label field of the button depending on the player. Display the winner in the JLabel at the top of the window if there is one. If all 9 cells have been filled without a winner the program should indicate there was a tie.

Explanation / Answer

package mytictactoe; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class TicTacToe implements ActionListener { /*Instance Variables*/ private JFrame window = new JFrame("Tic-Tac-Toe"); private JButton button1 = new JButton(""); private JButton button2 = new JButton(""); private JButton button3 = new JButton(""); private JButton button4 = new JButton(""); private JButton button5 = new JButton(""); private JButton button6 = new JButton(""); private JButton button7 = new JButton(""); private JButton button8 = new JButton(""); private JButton button9 = new JButton(""); private String letter = ""; private int count = 0; private boolean win = false; public TicTacToeV1(){ /*Create Window*/ window.setSize(300,300); window.setDefaultCloseOperation(JFram… window.setLayout(new GridLayout(3,3)); /*Add Buttons To The Window*/ window.add(button1); window.add(button2); window.add(button3); window.add(button4); window.add(button5); window.add(button6); window.add(button7); window.add(button8); window.add(button9); /*Add The Action Listener To The Buttons*/ button1.addActionListener(this); button2.addActionListener(this); button3.addActionListener(this); button4.addActionListener(this); button5.addActionListener(this); button6.addActionListener(this); button7.addActionListener(this); button8.addActionListener(this); button9.addActionListener(this); /*Make The Window Visible*/ window.setVisible(true); } public void actionPerformed(ActionEvent a) { count++; /*Calculate Who's Turn It Is*/ if(count == 1 || count == 3 || count == 5 || count == 7 || count == 9){ letter = "X"; } else if(count == 2 || count == 4 || count == 6 || count == 8 || count == 10){ letter = "O"; } /*Display X's or O's on the buttons*/ if(a.getSource() == button1){ button1.setText(letter); button1.setEnabled(false); } else if(a.getSource() == button2){ button2.setText(letter); button2.setEnabled(false); } else if(a.getSource() == button3){ button3.setText(letter); button3.setEnabled(false); } else if(a.getSource() == button4){ button4.setText(letter); button4.setEnabled(false); } else if(a.getSource() == button5){ button5.setText(letter); button5.setEnabled(false); } else if(a.getSource() == button6){ button6.setText(letter); button6.setEnabled(false); } else if(a.getSource() == button7){ button7.setText(letter); button7.setEnabled(false); } else if(a.getSource() == button8){ button8.setText(letter); button8.setEnabled(false); } else if(a.getSource() == button9){ button9.setText(letter); button9.setEnabled(false); } /*Determine who won*/ //horizontal wins if( button1.getText() == button2.getText() && button2.getText() == button3.getText() && button1.getText() != ""){ win = true; } else if(button4.getText() == button5.getText() && button5.getText() == button6.getText() && button4.getText() != ""){ win = true; } else if(button7.getText() == button8.getText() && button8.getText() == button9.getText() && button7.getText() != ""){ win = true; } //virticle wins else if(button1.getText() == button4.getText() && button4.getText() == button7.getText() && button1.getText() != ""){ win = true; } else if(button2.getText() == button5.getText() && button5.getText() == button8.getText() && button2.getText() != ""){ win = true; } else if(button3.getText() == button6.getText() && button6.getText() == button9.getText() && button3.getText() != ""){ win = true; } //diagonal wins else if(button1.getText() == button5.getText() && button5.getText() == button9.getText() && button1.getText() != ""){ win = true; } else if(button3.getText() == button5.getText() && button5.getText() == button7.getText() && button3.getText() != ""){ win = true; } else { win = false; } /*Show a dialog if someone wins or the game is tie*/ if(win == true){ JOptionPane.showMessageDialog(null, letter + " WINS!"); } else if(count == 9 && win == false){ JOptionPane.showMessageDialog(null, "Tie Game!"); } } public static void main(String[] args){ new TicTacToeV1(); }