Como ya comentaron no tiene nada de malo utilizar datos primitivos para cosas tan simples como una ficha de domino, aqui te dejo una implementacion algo mas sencilla.
Código Java:
Ver originalpackage com.github.luischavez.snippet;
import java.util.Arrays;
import java.util.Collections;
import java.util.Stack;
/**
*
* @author Luis Chávez <https://github.com/luischavez>
*/
public class Dominoes {
public static final Float[] PIECES
= { 0.0f, 0.1f, 0.2f, 0.3f, 0.4f, 0.5f, 0.6f,
1.1f, 1.2f, 1.3f, 1.4f, 1.5f, 1.6f,
2.2f, 2.3f, 2.4f, 2.5f, 2.6f,
3.3f, 3.4f, 3.5f, 3.6f,
4.4f, 4.5f, 4.6f,
5.5f, 5.6f,
6.6f
};
private final Stack<Float> deck;
public Dominoes() {
this.deck = new Stack<>();
}
public void init() {
this.
deck.
addAll(Arrays.
asList(Dominoes.
PIECES)); }
public void shuffle() {
}
public int count() {
return this.deck.size();
}
public float pop() {
return this.deck.pop();
}
public static int spots1(float value) {
int spots
= Float.
valueOf(value
).
intValue(); if (0 > spots || 6 < spots) {
}
return spots;
}
public static int spots2(float value) {
int spots
= Math.
round((value
- Dominoes.
spots1(value
)) * 10); if (0 > spots || 6 < spots) {
}
return spots;
}
public static void main
(String[] args
) { Dominoes dominoes = new Dominoes();
dominoes.init();
dominoes.shuffle();
while (0 < dominoes.count()) {
float piece = dominoes.pop();
System.
out.
printf("%.1f = [%d|%d]\n", piece, Dominoes.
spots1(piece
), Dominoes.
spots2(piece
)); }
}
}
Para asignar las fichas a cada jugador puedes crear un mapa donde almacenes el numero del jugador y el arreglo con las fichas de ese jugador, por ejemplo:
Código Java:
Ver originalfloat[] pieces = ...;
players.put(1, pieces);