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

Java Project: The assignment is to take the TicTacToe class implement a turn ord

ID: 3833883 • Letter: J

Question

Java Project:

The assignment is to take the TicTacToe class implement a turn order.

So if you make one pannel a square, then the ablity to place a square in the other pannels should be blocked untill you make one pannel a circle.

here is the code.

ShowTicTac.java:

import javax.swing.*;

import java.awt.*;

import javax.swing.event.*;

import java.awt.event.*;

import java.util.*;

import javax.swing.BorderFactory;

import javax.swing.border.Border;

import javax.swing.border.TitledBorder;

import javax.swing.border.EtchedBorder;

public class ShowTicTac {

  

   public static void main(String[] args)

   {

       JFrame MyFrame = new JFrame();

       MyFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

MyFrame.setTitle("TIC TAC TOE");

       MyFrame.setVisible(true);

MyFrame.setSize(550,550);

       MyFrame.setResizable(false);

  

Border blackLine;

  

blackLine = BorderFactory.createLineBorder(Color.black);

  

       MyFrame.setLayout(new GridLayout(3,3, 5,5));

       MyPanel [] tic = new MyPanel[9];

       for(int i = 0; i < 9 ; i++)

       {

           tic[i] = new MyPanel();

           tic[i].myPanel.setBackground(Color.white);

tic[i].setBorder(blackLine);

       MyFrame.add(tic[i]);

       }

  

   }  

      

}      

  

class MyPanel extends JPanel

{

   public CustomPanel myPanel;

   private JPanel jpButton;

   private JButton square;

   private JButton circle;

   private Color c;

  

  

   public void setColor(Color cc)

   {

       c = cc;

       myPanel.setBackground(c);

   }

   public MyPanel()

   {

       myPanel = new CustomPanel();

       circle = new JButton("Circle");

       square = new JButton("Square");

  

  

      

       circle.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

  

   myPanel.draw(CustomPanel.CIRCLE);

   }

  

   });

  

       square.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

  

   myPanel.draw(CustomPanel.SQUARE);

  

}

}

);

  

      jpButton = new JPanel();

jpButton.setSize(150,25);

jpButton.setLayout(new GridLayout(1,2));

jpButton.add(circle);jpButton.add(square);

       this.setLayout(new BorderLayout());

       this.add(myPanel,BorderLayout.CENTER);

   this.add(jpButton,BorderLayout.SOUTH);

  

   }

      

   public Dimension getPreferredSize()

   {

       return new Dimension(150,175);

      

   }

   public Dimension getMinimumSize()

   {

       return getPreferredSize();

   }

  

   public void paintComponent (Graphics g)

   {

       super.paintComponent(g);

   }

  

}

class CustomPanel extends JPanel

{

   public static final int CIRCLE = 0;

   public static final int SQUARE = 1 ;

private int xWidth;

private int yHeight;

private Dimension d = new Dimension(150,150);

  

   private int shape = 2 ;

  

   public CustomPanel()

   {

      

   }

   public Dimension getPreferredSize()

   {

       return new Dimension(150,150);

      

   }

   public Dimension getMinimumSize()

   {

       return getPreferredSize();

   }

  

   public void paintComponent (Graphics g)

   {

       super.paintComponent(g);

  

xWidth = (int) d.getHeight();

       yHeight = (int) d.getWidth();

      

       if(shape == 0)

       {

g.setColor(Color.BLUE);

           g.fillOval( xWidth/3, yHeight/4 ,80, 80);

       }

else if (shape == 1)

{

g.setColor(Color.RED);

           g.fillRect(xWidth/3, yHeight/4,80,80);

}

   }

  

   public void draw(int choice)

   {

       shape = choice;

       repaint();

   }

}

Explanation / Answer

/* take two classes and keep it in same package and run the main method u will get the desired output */

//GameApplet.java

package com;

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 */

package com;

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)
    {
    }
}

Note: Please run the main method class for getting the desired output.

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote