import java.awt.*;

public class ChessSet
{
    public final static int NUMPIECES = 32;
    private ChessPiece [] pieces;

    public ChessSet (Image [] pieceImages, Component l)
    {
	int color, type;
	pieces = new ChessPiece [NUMPIECES];

	for (int i = 0; i < NUMPIECES; i ++) {
	    if (i / 16 == 0) {
		color = ChessPiece.WHITE;
	    } else {
		color = ChessPiece.BLACK;
	    }
	    
	    switch (i) {
	    case 0: case 7: case 24: case 31:
		type = ChessPiece.ROOK;
		break;
	    case 1: case 6: case 25: case 30:
		type = ChessPiece.KNIGHT;
		break;
	    case 2: case 5: case 26: case 29:
		type = ChessPiece.BISHOP;
		break;
	    case 3: case 27:
		type = ChessPiece.KING;
		break;
	    case 4: case 28:
		type = ChessPiece.QUEEN;
		break;
	    default:
		type = ChessPiece.PAWN;
	    }

	    Image im = pieceImages [color*6 + type];

	    switch (type) {
	    case ChessPiece.ROOK:
		pieces [i] = new Rook (color, im, l);
		break;
	    case ChessPiece.KNIGHT:
		pieces [i] = new Knight (color, im, l);
		break;
	    case ChessPiece.BISHOP:
		pieces [i] = new Bishop (color, im, l);
		break;
	    case ChessPiece.QUEEN:
		pieces [i] = new Queen (color, im, l);
		break;
	    case ChessPiece.KING:
		pieces [i] = new King (color, im, l);
		break;
	    default:
		pieces [i] = new Pawn (color, im, l);
	    }
	}
    }

    public ChessPiece getPiece (int num)
    {
	return pieces [num];
    }

    public void newGame ()
    {
	for (int i = 0; i < NUMPIECES; i ++) {
	    pieces [i].setMoved (false);
	}
    }
}

