package day04;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.imageio.*;
import java.io.*;
public class Gobang
{
private static int BOARD_SIZE = 15;
private final int TABLE_WIDTH = 535;
private final int TABLE_HETGHT = 536;
private final int RATE = TABLE_WIDTH / BOARD_SIZE;
private final int X_OFFSET = 5;
private final int Y_OFFSET = 6;
private String[][] board
= new String[BOARD_SIZE
][BOARD_SIZE
];
ChessBoard chessBoard = new ChessBoard();
private int selectedX = -1;
private int selectedY = -1;
{
table
= ImageIO.
read(new File("image/board.jpg"));
black
= ImageIO.
read(new File("image/black.gif"));
white
= ImageIO.
read(new File("image/white.gif"));
selected
= ImageIO.
read(new File("image/selected.gif"));
for (int i = 0 ; i < BOARD_SIZE ; i++)
{
for ( int j = 0 ; j < BOARD_SIZE ; j++)
{
board[i][j] = "╋";
}
}
TABLE_WIDTH , TABLE_HETGHT));
{
{
int xPos = (int)((e.getX() - X_OFFSET) / RATE);
int yPos = (int)((e.getY() - Y_OFFSET ) / RATE);
board[xPos][yPos] = "●";
chessBoard.repaint();
}
{
selectedX = -1;
selectedY = -1;
chessBoard.repaint();
}
});
{
{
selectedX = (e.getX() - X_OFFSET) / RATE;
selectedY = (e.getY() - Y_OFFSET) / RATE;
chessBoard.repaint();
}
});
f.add(chessBoard);
f.pack();
f.setVisible(true);
}
{
Gobang gb = new Gobang();
gb.init();
}
class ChessBoard
extends JPanel
{
{
g.drawImage(table , 0 , 0 , null);
if (selectedX >= 0 && selectedY >= 0)
g.drawImage(selected , selectedX * RATE + X_OFFSET ,
selectedY * RATE + Y_OFFSET, null);
for (int i = 0 ; i < BOARD_SIZE ; i++)
{
for ( int j = 0 ; j < BOARD_SIZE ; j++)
{
if (board[i][j].equals("●"))
{
g.drawImage(black , i * RATE + X_OFFSET
, j * RATE + Y_OFFSET, null);
}
if (board[i][j].equals("○"))
{
g.drawImage(white, i * RATE + X_OFFSET
, j * RATE + Y_OFFSET, null);
}
}
}
}
}
}