DesmoColo
12-01-2007, 16:41
Salve a tutti!
Per un progetto d'esame devo implementare il gioco della battaglia navale in Java. Il gioco utilizza un'interfaccia grafica ed Il giocatore ha come avversario il computer.
Ecco come ho pensato di procedere:
- Ho un'oggetto Cella, contenente le coordinate (x,y) ed un valore booleano (true se la cella viene occupata da una mia nave, false se invece è vuota)
- Ho un'oggetto griglia fatta di oggetti Cella.
- Ho (al momento solo una) una "nave da due", che si posiziona in modo random sopra due celle, settando il valore di queste a true.
Con una nave nessun problema, ma se ve ne sono di più (me ne servono 5 di diversa lunghezza) si presenta il problema delle possibili sovrapposizione fra di esse. Ho pensato un algoritmo che non mi sembra molto furbo:
posiziona nave da due;
posiziona nave da tre;
se qualche coordinata della nave da tre si sovrappone a quelle della nave da due{
sposta nave;
riesegui il controllo
}
Con due navi tanto e tanto... ma se ne ho 5, l'ultima ha probabilità sempre maggiori di beccare una cella gà occupata e di iterare più e più volte. Avete suggerimenti?
Per un progetto d'esame devo implementare il gioco della battaglia navale in Java. Il gioco utilizza un'interfaccia grafica ed Il giocatore ha come avversario il computer.
Ecco come ho pensato di procedere:
- Ho un'oggetto Cella, contenente le coordinate (x,y) ed un valore booleano (true se la cella viene occupata da una mia nave, false se invece è vuota)
- Ho un'oggetto griglia fatta di oggetti Cella.
- Ho (al momento solo una) una "nave da due", che si posiziona in modo random sopra due celle, settando il valore di queste a true.
Con una nave nessun problema, ma se ve ne sono di più (me ne servono 5 di diversa lunghezza) si presenta il problema delle possibili sovrapposizione fra di esse. Ho pensato un algoritmo che non mi sembra molto furbo:
posiziona nave da due;
posiziona nave da tre;
se qualche coordinata della nave da tre si sovrappone a quelle della nave da due{
sposta nave;
riesegui il controllo
}
Con due navi tanto e tanto... ma se ne ho 5, l'ultima ha probabilità sempre maggiori di beccare una cella gà occupata e di iterare più e più volte. Avete suggerimenti?