Introduzione

BattleshipExtreme non è altro che una versione semplificata del famoso gioco “Battaglia Navale”.

Lo sviluppo di questa applicazione è nato come progetto di laboratorio del corso di Ingegneria del software, presso l’Università Del Piemonte Orientale.


Sviluppo

Il progetto è stato creato interamente con Java swing versione (Versione 8, JDK 1.8.1), mentre per il salvataggio dei risultati a fine partita si è usato un database MySql hostato gratuitamente su Heroku.com.

Essendo un progetto del corso di ingegneria del software, ho realizzato anche lo schema UML delle classi tramite il software Visual Paradigm:


Presentazione del progetto

Regole di battaglia navale

Per giocare a battaglia navale occorrono quattro tabelle (due per giocatore), tutte di uguali dimensioni (per esempio 10×10 o un’altra dimensione concordata dai giocatori). I quadretti della tabella sono identificate da coppie di coordinate, corrispondenti a riga e colonna; tradizionalmente si usano lettere per le colonne e numeri per le righe (perciò le celle sono “A-1”, “B-6”, e così via).

All’inizio, i giocatori devono “posizionare le proprie navi” segnandole su una delle loro due griglie (che terranno nascoste all’avversario per tutta la durata del gioco). Una “nave” occupa un certo numero di quadretti adiacenti in linea retta (orizzontale o verticale) sulla tabella. Due navi non possono toccarsi. I giocatori si accordano preliminarmente su quante navi disporre e di quali dimensioni. Si può notare che molti giocatori utilizzano (anche non sempre in modo consistente) una particolare terminologia per riferirsi alle navi delle varie dimensioni; per esempio un sottomarino è di solito una nave di dimensione 3, insieme all’incrociatore, un cacciatorpediniere è di dimensione 2 e le navi di lunghezza superiore sono corazzate (dimensione 4) e portaerei (dimensione 5).

Una volta posizionate le navi, il gioco procede a turni. Il giocatore di turno “spara un colpo” dichiarando un quadretto (per esempio, “B-5”). L’avversario controlla sulla propria griglia se quella cella è occupata da una sua nave. In caso affermativo risponde “colpito!”, e marca quel quadretto sulla propria tabella; in caso negativo risponde “acqua” o “mancato”. Sulla seconda tabella in dotazione i giocatori prendono nota dei colpi che hanno sparato e del loro esito. Quando un colpo centra l’ultimo quadretto di una nave non ancora affondata, il giocatore che subisce il colpo dovrà dichiarare “colpito e affondato!”, e la nave si considera persa.

Vince il giocatore che per primo affonda tutte le navi dell’avversario.

Creazione della partita

Una volta aperto il gioco ci si trova nella schermata principale:

Da qui è possibile creare una nuova partita cliccando su “Nuova Partita”. Successivamente appare una finestra dove è possibile inserire le impostazioni della partita tra cui:

  • Nome giocatore
  • Dimensione mappa di gioco (la griglia delle navi)
  • Numero navi con cui giocare (il numero di navi che verranno piazzate nella mappa)
  • Posizionamento manuale delle tue navi nella mappa.

Inizio partita

Una volta inserite le navi richieste si torna alla schermata principale e si clicca su “Inizia partita”. A questo punto la partita contro la CPU ha inizio e nella schermate principale appariranno le seguenti sezioni:

Come si può vedere dallo screen sopra il gioco è diviso in diverse sezioni:

  • GRIGLIA DELLE NAVI: qui è possibile visualizzare le navi inserite in fase di creazione partita e i tentativi di affondamento effettuati dalla CPU.
  • GRIGLIA DEI TENTATIVI: qui è possibile visualizzare i tentativi fatti dal giocatore nell’affondar ele navi avversarie.
  • INFORMAZIONI PARTITA: qui vi è l’elenco delle mosse effettuate sia dal giocatore che dalla CPU.
  • GESTIONE TURNO: qui è possibile inserire le coordinate della cella da colpire

Fine partita

Una volta finita la partita appare la schermata del riepilogo partita con tutte le varie informazioni.

Salvataggio

Una volta terminato il game le informazioni sulla partita vengono salvate attraverso una query SQL su un database.


Demo

È possibile provare il progetto attraverso due modi:

  • Scaricando l’eseguibile .jar nella sezione “Risorse scaricabili” in fondo alla pagina.
  • Clonare la repository su Github e importare il progetto su un IDE (ad esempio Eclipse o IntelliJ)

NOTA: per entrambi i metodi è necessario avere installato nel proprio sistema il JRE/JDK di Java versione 1.8 o superiore.

NOTA: In sistemi con schermi in 4K potrebbe essere necessario modificare la risoluzione dello schermo per poter visualizzare correttamente il gioco.


Tecnologie utilizzate

Java

SQL

MySql

Eclipse

Photoshop


Risorse scaricabili