import javax.imageio.ImageIO;
import javax.swing.*;
import java.io.IOException;
import java.awt.image.BufferedImage;
import java.awt.*;
import java.awt.geom.*;
class BoardPanel extends JPanel {
private static final long serialVersionUID = 1L;
private static final int FRAME_WIDTH = 750; // must be even
private static final int FRAME_HEIGHT = 750;
private static final int TOKEN_RADIUS = 8; // must be even
private static final Color[] PLAYER_COLORS = {Color.RED,Color.BLUE,Color.YELLOW,Color.GREEN,Color.MAGENTA,Color.WHITE};
public static final String[] TOKEN_NAME = {"red","blue","yellow","green","magenta","white"};
private static final float[] PLAYER_OFFSET = {0, 0.01f, 0.02f, 0.03f, 0.04f, 0.05f};
private static final float[][] CORNER_FROM = { {710, 730}, {5, 700}, {40,5}, {730, 40},};
private static final float[][] CORNER_TO = {{60, 730}, {5, 70}, {700,5}, {730, 700}};
private static final int[] JAIL_COORDS = {60,700};
private Players players;
private BufferedImage boardImage;
private int[][][] squareCoords = new int [Board.NUM_SQUARES][Players.MAX_NUM_PLAYERS][2];
private int[][] jailCoords = new int [Players.MAX_NUM_PLAYERS][2];
BoardPanel (Players players) {
this.players = players;
setPreferredSize(new Dimension(FRAME_WIDTH, FRAME_HEIGHT));
setBackground(Color.WHITE);
try {
// boardImage = ImageIO.read(new File("board.jpg"));
boardImage = ImageIO.read(this.getClass().getResource("board.jpg"));
} catch (IOException ex) {
System.out.println("Could not find the image file " + ex.toString());
}
int sideLength = Board.NUM_SQUARES/4;
for (int s=0; s