Preciso obter de tempo em tempos pontos 2D (x, y) randômicos.
Sendo que estes pontos não podem se repetir.
O ponto x varia de 1 a 20, e o ponto y de 1 a 10 (isso não é fixo, e pode vir a mudar).
Eu guardo apenas a informação dos pontos preenchidos.
Pensei em duas estratêgias.
Estratêgia 1: Um while com random de x e y, até pegar um ponto que ainda não tenha sido utilizado.
Problema: O while pode tanto terminar imediatamente, quanto demorar horrores para encontrar um ponto.
Estratêgia 2: Guardar todos os pontos que ainda não estejam sendo utilizados em uma lista, pegar um ponto randômico dentro da lista depois remover ele da mesma.
Problema: Criar um número muito grande de instâncias que podem nunca ser utilizadas.
Pensei também em assumir a estratêgia 1 até certo número de pontos preenchidos e assumir a estratêgia 2 apartir de então.