Create a GUI application that simulates a game of tic tac to

Create a GUI application that simulates a game of tic tac toe. The window shown below uses nine large JLabel components to display the Xs and Os.
One approach in designing this application is to use a two dimensional int array to simulate the game board in memory. When the user clicks the New Game button, the application should step through the array, storing a random number in the range of 0 through 1 in each element. The number 0 represents the letter O, the number 1 represents the letter X. The JLabel components should then be updated to display the game board. The application should display a message indicating whether X won, Y won, or the game was a tie.

Solution

import java.applet.Applet;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.PrintStream;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class GameApplet extends Applet
implements MouseListener, ActionListener, WindowListener
{
JFrame f;
int flag = 2;
int n;
int m;
int i = 0;
static int bug = 0;
char[] ch = new char[9];
JButton first;
JButton second;
String s1 = \"\";
  
public GameApplet()
{
this.f = new JFrame(\"Tic Tac Toe\");
this.first = new JButton(\"CLEAR\");
this.second = new JButton(\"EXIT\");
this.f.add(this.first);
this.f.add(this.second);
this.f.addWindowListener(this);
this.f.getContentPane().setBackground(Color.BLUE);
this.f.setLayout(null);
this.f.setVisible(true);
this.f.setSize(800, 600);
this.first.setBounds(650, 50, 90, 60);
this.second.setBounds(650, 250, 90, 60);
  
this.f.addMouseListener(this);
for (this.i = 0; this.i < 9; this.i += 1)
this.ch[this.i] = \'B\';
this.first.addActionListener(this);
this.second.addActionListener(this);
  
String message = \"Please click on the frame !!!!! \ \ to start the game \ \";
  
JOptionPane pane = new JOptionPane(message);
JDialog dialog = pane.createDialog(new JFrame(), \"Dilaog\");
dialog.show();
Graphics g = this.f.getGraphics();
g.drawLine(200, 0, 200, 600);
g.drawLine(400, 0, 400, 600);
g.drawLine(0, 200, 600, 200);
g.drawLine(0, 400, 600, 400);
g.drawLine(600, 0, 600, 600);
}
  
public void keyPressed(KeyEvent k)
{
System.out.print(\"\");
}
  
public void keyTyped(KeyEvent k) {
this.s1 += k.getKeyChar();
}
  
public void keyReleased(KeyEvent k) {
System.out.print(\"\");
}
  
public void actionPerformed(ActionEvent ae)
{
if (ae.getSource() == this.first)
{
this.f.setVisible(false);
bug = 0;
new GameApplet();
}
if (ae.getSource() == this.second)
{
System.exit(0);
}
}
  
public void windowClosing(WindowEvent de)
{
System.exit(0); }
  
public void windowOpened(WindowEvent de) { }
  
public void windowClosed(WindowEvent de) { }
  
public void windowActivated(WindowEvent de) { }
  
public void windowDeactivated(WindowEvent de) { }
  
public void windowIconified(WindowEvent de) { }
  
public void windowDeiconified(WindowEvent de) { }
  
public void mouseClicked(MouseEvent e) { Graphics2D g2;
Graphics g = this.f.getGraphics();
g.drawLine(200, 0, 200, 600);
g.drawLine(400, 0, 400, 600);
g.drawLine(0, 200, 600, 200);
g.drawLine(0, 400, 600, 400);
g.drawLine(600, 0, 600, 600);
this.flag -= 1;
int x = e.getX();
int y = e.getY();
if (this.flag == 1)
{
if ((x < 200) && (y < 200)) { this.m = 0; this.n = 0; this.ch[0] = \'R\'; }
if ((x > 200) && (x < 400) && (y < 200)) { this.m = 200; this.n = 0; this.ch[1] = \'R\'; }
if ((x > 400) && (x < 600) && (y < 200)) { this.m = 400; this.n = 0; this.ch[2] = \'R\'; }
if ((x < 200) && (y > 200) && (y < 400)) { this.m = 0; this.n = 200; this.ch[3] = \'R\'; }
if ((x > 200) && (x < 400) && (y > 200) && (y < 400)) { this.m = 200; this.n = 200; this.ch[4] = \'R\'; }
if ((x > 400) && (x < 600) && (y > 200) && (y < 400)) { this.m = 400; this.n = 200; this.ch[5] = \'R\'; }
if ((x < 200) && (y > 400) && (y < 600)) { this.m = 0; this.n = 400; this.ch[6] = \'R\'; }
if ((x > 200) && (x < 400) && (y > 400) && (y < 600)) { this.m = 200; this.n = 400; this.ch[7] = \'R\'; }
if ((x > 400) && (x < 600) && (y > 400) && (y < 600)) { this.m = 400; this.n = 400; this.ch[8] = \'R\'; }
g.setColor(new Color(77, 176, 230));
g2 = (Graphics2D)g;
g2.setStroke(new BasicStroke(10.0F));
g.drawOval(this.m + 10, this.n + 10, 159, 159);
}
  
if (this.flag == 0)
{
if ((x < 200) && (y < 200)) { this.m = 0; this.n = 20; this.ch[0] = \'P\'; }
if ((x > 200) && (x < 400) && (y < 200)) { this.m = 200; this.n = 20; this.ch[1] = \'P\'; }
if ((x > 400) && (x < 600) && (y < 200)) { this.m = 400; this.n = 20; this.ch[2] = \'P\'; }
if ((x < 200) && (y > 200) && (y < 400)) { this.m = 0; this.n = 200; this.ch[3] = \'P\'; }
if ((x > 200) && (x < 400) && (y > 200) && (y < 400)) { this.m = 200; this.n = 200; this.ch[4] = \'P\'; }
if ((x > 400) && (x < 600) && (y > 200) && (y < 400)) { this.m = 400; this.n = 200; this.ch[5] = \'P\'; }
if ((x < 200) && (y > 400) && (y < 600)) { this.m = 0; this.n = 400; this.ch[6] = \'P\'; }
if ((x > 200) && (x < 400) && (y > 400) && (y < 600)) { this.m = 200; this.n = 400; this.ch[7] = \'P\'; }
if ((x > 400) && (x < 600) && (y > 400) && (y < 600)) { this.m = 400; this.n = 400; this.ch[8] = \'P\'; }
g2 = (Graphics2D)g;
g2.setStroke(new BasicStroke(10.0F));
g.setColor(new Color(77, 176, 230));
g.drawLine(this.m + 10, this.n + 13, this.m + 169, this.n + 164);
g.drawLine(this.m + 169, this.n + 10, this.m + 10, this.n + 169);
this.flag += 2;
}
  
for (this.i = 0; this.i < 3; this.i += 1)
{
if ((this.ch[this.i] != \'B\') &&
(this.ch[(this.i + 3)] == this.ch[this.i]) && (this.ch[(this.i + 6)] == this.ch[this.i]))
{
new Board().win();
bug = 1;
}
}
  
for (this.i = 0; this.i < 7; this.i += 1)
{
if (this.ch[this.i] != \'B\')
{
if ((this.ch[this.i] == this.ch[(this.i + 1)]) && (this.ch[this.i] == this.ch[(this.i + 2)]))
{
new Board().win();
bug = 1;
}
this.i += 2;
}
else {
this.i += 2;
}
}
if ((this.ch[4] != \'B\') && ((
((this.ch[0] == this.ch[4]) && (this.ch[4] == this.ch[8])) || ((this.ch[2] == this.ch[4]) && (this.ch[4] == this.ch[6])))))
{
new Board().win();
bug = 1;
}
  
for (this.i = 0; (this.i < 9) &&
(this.ch[this.i] != \'B\'); this.i += 1)
{
if (this.i == 8)
{
if (bug == 0)
new Board().draw();
bug = 0;
}
}
}
  
public void mouseReleased(MouseEvent e)
{
System.out.print(\"\");
}
  
public void mouseEntered(MouseEvent e)
{
System.out.print(\"\");
}
  
public void mouseExited(MouseEvent e) {
System.out.print(\"\");
}
  
public void mousePressed(MouseEvent e) {
System.out.print(\"\");
}
  
public static void main(String[] args)
{
new GameApplet();
}
}

Board.java


import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

class Board implements WindowListener
{
public void win()
{
String message = \"Congratulations !!!!! \ \ You win \ \";
  
JOptionPane pane = new JOptionPane(message);
JDialog dialog = pane.createDialog(new JFrame(), \"Dilaog\");
dialog.show();
}
  
public void draw()
{
String message = \"Players the result is !!!!! \ \ STALEMATE \ \";
  
JOptionPane pane = new JOptionPane(message);
JDialog dialog = pane.createDialog(new JFrame(), \"Dilaog\");
dialog.show();
}
  
public void windowClosing(WindowEvent we)
{
System.exit(0);
}
  
public void windowOpened(WindowEvent we)
{
}
  
public void windowClosed(WindowEvent we)
{
}
  
public void windowActivated(WindowEvent we)
{
}
  
public void windowDeactivated(WindowEvent we)
{
}
  
public void windowIconified(WindowEvent we)
{
}
  
public void windowDeiconified(WindowEvent we)
{
}
}

Create a GUI application that simulates a game of tic tac toe. The window shown below uses nine large JLabel components to display the Xs and Os. One approach i
Create a GUI application that simulates a game of tic tac toe. The window shown below uses nine large JLabel components to display the Xs and Os. One approach i
Create a GUI application that simulates a game of tic tac toe. The window shown below uses nine large JLabel components to display the Xs and Os. One approach i
Create a GUI application that simulates a game of tic tac toe. The window shown below uses nine large JLabel components to display the Xs and Os. One approach i
Create a GUI application that simulates a game of tic tac toe. The window shown below uses nine large JLabel components to display the Xs and Os. One approach i

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site