import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.*;
public class TicTacToe extends JFrame{
int isPainted[] = new int[9];
int x;
int y;
int count = 1;
public TicTacToe()
{
for (int i=0 ; i<9 ; i++)
isPainted[i] = 0;
addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
x = e.getX();
y = e.getY();
repaint();
System.out.println("x 좌표 : " + x);
System.out.println("y 좌표 : " + y);
}
});
}
public static void main(String args[]) {
TicTacToe pan = new TicTacToe();
pan.setBounds(500,300,250,250);
pan.show();
}
public void paint(Graphics g)
{
g.drawRect(50,50,150,150);
g.drawLine(100, 50, 100, 200);
g.drawLine(150, 50, 150, 200);
g.drawLine(50, 100, 200, 100);
g.drawLine(50, 150, 200, 150);
if(x>50 && x<100 && y>50 && y<100)
{
if (isPainted[0] == 0)
{
if(count%2 == 1)
{
g.drawOval(55,55,40,40);
isPainted[0] = 1;
}
else
{
g.fillOval(55,55,40,40);
isPainted[0] = 2;
}
count++;
}
}
else if(x>100 && x<150 && y>50 && y<100)
{
if (isPainted[1] == 0)
{
if(count%2 == 1)
{
isPainted[1]= 1;
g.drawOval(105,55,40,40);
}
else
{
g.fillOval(105,55,40,40);
isPainted[1]= 2;
}
count++;
}
}
else if(x>150 && x<200 && y>50 && y<100)
{
if (isPainted[2] == 0)
{
if(count%2 == 1)
{
isPainted[2]= 1;
g.drawOval(155,55,40,40);
}
else
{
isPainted[2]= 2;
g.fillOval(155,55,40,40);
}
count++;
}
}
else if(x>50 && x<100 && y>100 && y<150)
{
if (isPainted[3] == 0)
{
if(count%2 == 1)
{
isPainted[3]= 1;
g.drawOval(55,105,40,40);
}
else
{
isPainted[3]= 2;
g.fillOval(55,105,40,40);
}
count++;
}
}
else if(x>100 && x<150 && y>100 && y<150)
{
if (isPainted[4] == 0)
{
if(count%2 == 1)
{
isPainted[4]= 1;
g.drawOval(105,105,40,40);
}
else
{
isPainted[4]= 2;
g.fillOval(105,105,40,40);
}
count++;
}
}
else if(x>150 && x<200 && y>100 && y<150)
{
if (isPainted[5] == 0)
{
if(count%2 == 1)
{
isPainted[5]= 1;
g.drawOval(155,105,40,40);
}
else
{
isPainted[5]= 2;
g.fillOval(155,105,40,40);
}
count++;
}
}
else if(x>50 && x<100 && y>150 && y<200)
{
if (isPainted[6] == 0)
{
if(count%2 == 1)
{
isPainted[6]= 1;
g.drawOval(55,155,40,40);
}
else
{
isPainted[6]= 2;
g.fillOval(55,155,40,40);
}
count++;
}
}
else if(x>100 && x<150 && y>150 && y<200)
{
if (isPainted[7] == 0)
{
if(count%2 == 1)
{
isPainted[7]= 1;
g.drawOval(105,155,40,40);
}
else
{
isPainted[7]= 2;
g.fillOval(105,155,40,40);
}
count++;
}
}
else if(x>150 && x<200 && y>150 && y<200)
{
if (isPainted[8] == 0)
{
if(count%2 == 1)
{
isPainted[8]= 1;
g.drawOval(155,155,40,40);
}
else
{
isPainted[8]= 2;
g.fillOval(155,155,40,40);
}
count++;
}
}
gameOver();
}
void gameOver()
{
if(isPainted[0]==isPainted[1] && isPainted[1]==isPainted[2] &&
isPainted[0]==isPainted[2])
whoWin(isPainted[0]);
else if(isPainted[3]==isPainted[4] && isPainted[4]==isPainted[5] &&
isPainted[3]==isPainted[5])
whoWin(isPainted[3]);
else if(isPainted[6]==isPainted[7] && isPainted[7]==isPainted[8] &&
isPainted[6]==isPainted[8])
{
if (isPainted[6] == 1)
JOptionPane.showMessageDialog(null, "백 승", "Game Over",
JOptionPane.INFORMATION_MESSAGE);
else if (isPainted[6] == 2)
JOptionPane.showMessageDialog(null, "흑 승", "Game Over",
JOptionPane.INFORMATION_MESSAGE);
}
if(isPainted[0]==isPainted[3] && isPainted[3]==isPainted[6] &&
isPainted[0]==isPainted[6])
{
if (isPainted[0] == 1)
JOptionPane.showMessageDialog(null, "백 승", "Game Over",
JOptionPane.INFORMATION_MESSAGE);
else if (isPainted[0] == 2)
JOptionPane.showMessageDialog(null, "흑 승", "Game Over",
JOptionPane.INFORMATION_MESSAGE);
}
if(isPainted[1]==isPainted[4] && isPainted[4]==isPainted[7] &&
isPainted[1]==isPainted[7])
{
if (isPainted[1] == 1)
JOptionPane.showMessageDialog(null, "백 승", "Game Over",
JOptionPane.INFORMATION_MESSAGE);
else if (isPainted[1] == 2)
JOptionPane.showMessageDialog(null, "흑 승", "Game Over",
JOptionPane.INFORMATION_MESSAGE);
}
if(isPainted[2]==isPainted[5] && isPainted[5]==isPainted[8] &&
isPainted[2]==isPainted[8])
{
if (isPainted[2] == 1)
JOptionPane.showMessageDialog(null, "백 승", "Game Over",
JOptionPane.INFORMATION_MESSAGE);
else if (isPainted[2] == 2)
JOptionPane.showMessageDialog(null, "흑 승", "Game Over",
JOptionPane.INFORMATION_MESSAGE);
}
if(isPainted[0]==isPainted[4] && isPainted[4]==isPainted[8] &&
isPainted[0]==isPainted[8])
{
if (isPainted[0] == 1)
JOptionPane.showMessageDialog(null, "백 승", "Game Over",
JOptionPane.INFORMATION_MESSAGE);
else if (isPainted[0] == 2)
JOptionPane.showMessageDialog(null, "흑 승", "Game Over",
JOptionPane.INFORMATION_MESSAGE);
}
if(isPainted[2]==isPainted[4] && isPainted[4]==isPainted[6] &&
isPainted[2]==isPainted[6])
{
if (isPainted[2] == 1)
JOptionPane.showMessageDialog(null, "백 승", "Game Over",
JOptionPane.INFORMATION_MESSAGE);
else if (isPainted[2] == 2)
JOptionPane.showMessageDialog(null, "흑 승", "Game Over",
JOptionPane.INFORMATION_MESSAGE);
}
}
public void whoWin(int aIsPainted){
if (aIsPainted == 1)
JOptionPane.showMessageDialog(null, "백 승", "Game Over",
JOptionPane.INFORMATION_MESSAGE);
else if (aIsPainted == 2)
JOptionPane.showMessageDialog(null, "흑 승", "Game Over",
JOptionPane.INFORMATION_MESSAGE);
}
}
TicTabToe










