ho letto il codice attuale e riflettuto, e per la cronaca mi sono anche fatto consigliare da Jocchan; inoltre mi sono fatto un panino con insalata e mortazza, due solitari di Windows, una partita a campo minato, fumato una sigaretta, guardato in aria, fatto una cosa che non si dice, ed infine rieccomi qua sul forum
il problema è il seguente: il codice per catturare l'eccezione e visualizzare uno sprite con scritto "Game Over" dove lo metto, in Grid, in Game o in una classe apposta?
Jocchan dice Grid e io mi trovo d'accordo...
questo è il test che ho fatto (si troverebbe in TestGrid):
Codice:
public void testGridStops()
{
grid.insertGem(1, 4, gem1);
grid.getGemUnderControl().dropGem();
grid.insertGem(0, 4, gem2);
try
{
grid.update();
}
catch(IllegalArgumentException e)
{
fail("Grid.update is trying to put other gems");
}
}
eventualmente poi potrei anche creare una nuova classe GameOverException in modo tale che insertNewGem cattura la IllegalArgumentException causata dall'inserzione di una gemma quando non c'è spazio e la converte lanciando una GameOverException.
poi magari la test listi si potrebbe completare con un test per verificare col MockEngine che Grid.update, una volta catturata l'eccezione, disegni lo sprite "Game Over".