Bruno Laturner:
Eu concordo com a idéia de usar Map<Posições, Peças>, mas não concordo em encher casas com vazio.
Um get de uma chave “Posição” deveria retornar somente nulo caso não haja uma peça na casa.
sendo VAZIO uma instancia public static final, não sei o comprometimento que pode gerar em performance… (quando digo não sei é pq não sei mesmo auhahu)…
enfim, VAZIO, null, ou ate mesmo não colocar nada, a ideia principal é + ou - a mesma…
caso não for colocar nada, vc precisa guardar em uma variável as dimensões limites de linhas e colunas, ai para verificar se tem 1 peça la… basta testar c a Key existe… outra coisa importante, é que vc precisa pagar a KEY sempre que mover a peça, pq não preencher todo o tabuleiro, e depois ficar deixando espaço VAZIO ou nulo pra traz, pode ser um problema… enfim… é uma ideia… o resto é com vc ^^
boa sorte…
sobre a parte visual, vc pode ter imagem para as peças, ai no teu Objeto Peço, pode ter algo como getImage, ou ate mesmo ele pode extender um objeto ImageIcon,
boa sorte