Sei sulla pagina 1di 6

Tesina Finale di

Programmazione di Interfacce Grafiche e Dispositivi Mobili


Corso di Laurea in Ingegneria Informatica ed Elettronica – A.A. 2022-2023
Dipartimento di Ingegneria

docente
Prof. Luca Grilli

JPool
applicazione desktop JavaFX

studenti
330265 Riccardo Nicolini riccardo.nicolini1@studenti.unipg.it
329673 Giovanni Versiglioni giovanni.versiglioni@studenti.unipg.it

Data ultimo aggiornamento: 25 settembre 2022


0. Indice

1 Descrizione del Problema 2


1.1 Il gioco del biliardo: Palla 8 . . . . . . . . . . . . . . . . . . . . . . 2
1.2 L’applicazione JPool . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Specifica dei Requisiti 5

1
1. Descrizione del Problema

L’obiettivo di questo lavoro è lo sviluppo di un ’2 Player Game’, denominato


JPool, che implementa una versione multiplayer del già noto videogioco 8 Ball
Pool. Il software sarà implementato utilizzando la tecnologia JavaFX, piuttosto
che JFC/Swing, al fine di realizzare una GUI che renda l’esperienza di gioco fluida
ed esteticamente piacevole.

1.1 Il gioco del biliardo: Palla 8


Il gioco ’Palla 8’ è una specialità del biliardo. Sul tavolo sono presenti 15 bilie
colorate, numerate dalla 1 alla 15, divise in ’piene’ (1-8) e ’spezzate’ (9-15) e una
bilia bianca (’bilia battente’ o ’cue ball’) colpita dal giocatore attraverso la stecca
da biliardo (’cue’). L’obiettivo del gioco è quello di imbucare le 15 bilie colorate
potendo colpire (tramite la stecca) solo la bilia bianca. All’inizio del gioco le bilie
colorate sono raggruppate a triangolo nella metà superiore del tavolo e uno dei
due giocatori effettua il primo tiro (’break’), per diffondere le bilie sul tavolo.
A partire dal secondo tiro, al giocatore che per primo imbuca una bilia piena
o spezzata, viene assegnata la categoria corrispondente; all’altro giocatore viene
assegnata l’altra.1 Da questo momento, il giocatore ha l’obbligo di colpire per
prima una delle proprie bilie e ha diritto a rimanere al tavolo finchè continuerà ad
imbucare le proprie bilie in modo regolare. Una volta che un giocatore ha imbucato
tutte e sette le proprie bilie (piene o spezzate) potrà colpire e imbucare la bilia
nera (8), dichiarando la buca. Il giocatore che imbuca la bilia nera vince.
Durante la partita, se un giocatore commette un fallo (’foul’), il giocatore
avversario (passato al tavolo) ha il vantaggio di poter posizionare la bilia bianca
in una qualsiasi posizione del tavolo.
1
Una qualsiasi bilia imbucata nel break non assegna la categoria corrispondente.

2
Si verificano situazioni di fallo nei seguenti casi:

• la bilia bianca viene imbucata;

• la bilia bianca non colpisce nessuna bilia;

• viene colpita una bilia dell’avversario;

• viene colpita la bilia nera quando ancora non sono state imbucate tutte le
proprie bilie.

In quattro casi l’avversario vince direttamente la partita:

• quando viene imbucata la bilia nera ma ancora non sono state imbucate tutte
le proprie bilie;

• quando si imbuca la bilia 8 in una buca diversa da quella dichiarata;

• quando la bilia bianca viene imbucata dopo la bilia nera.

1.2 L’applicazione JPool


L’applicazione JPool implementa il gioco del biliardo attraverso una grafica bidi-
mensionale, che rappresenta il piano del tavolo visto dall’alto.

La simulazione del colpo fisico, effettuato tramite la stecca, è realizzata con


una stecca grafica la cui punta è posizionata esattamente dove si trova la bilia
bianca. Mantenendo fissa la punta, è possibile ruotare radialmente la stecca per
indirizzare il colpo. Inoltre, l’utente potrà regolare la potenza del tiro.

Per facilitare il giocatore, durante ogni tiro, viene mostrata un segmento (a


partire dalla bilia bianca) che indica la traiettoria della bilia battente stessa. In
base alla direzione e agli ostacoli incontrati (bilie o sponde) sarà determinata la
lunghezza di tale segmento. Inoltre, saranno mostrate (al variare della rotazione
della stecca) delle anteprime della traiettoria in uscita della bilia bianca e della
bilia che si intende colpire.1.1

Al fine di rendere l’esperienza di gioco più dinamica, l’applicazione limita il


tempo a disposizione per effettuare un colpo a 30 secondi. La scadenza del tempo
a disposizione prima di aver effettuato il tiro comporta il fallo.

3
Figura 1.1: Le traiettorie in uscita sono determinate dal calcolo degli angoli formati
dalla bilia bianca e dalla bilia colpita, secondo la Legge di Conservazione della
Quantità di Moto.

4
2. Specifica dei Requisiti

L’applicazione JPool dovrà soddisfare i seguenti requisiti:


1. Rispetto delle leggi fisiche e matematiche coinvolte: la dinamica del gioco
deve tenere conto delle dinamiche reali (Legge degli Urti, Forza d’Attrito),
ma allo stesso tempo deve realizzarne un modello approssimato per garantire
un adeguato livello di difficoltà;
2. Rispetto delle regole del gioco ’Palla 8’ sopra elencate;
3. Fluidità del gioco: il movimento delle bilie deve essere lineare e non deve
influenzare negativamente l’esperienza di gioco negativamente (lag);
4. Menu di avvio
→ Play: consente di iniziare una partita
→ How to Play: fornisce una descrizione dettagliata dei comandi necessari
per giocare
→ Settings: permette di modificare la grafica, l’audio del gioco e il livello
di difficoltà
→ Exit: termina ed esce dal gioco
5. Personalizzazione grafica: possibilità di personalizzare il tavolo di gioco;
6. Presenza di audio: musica di sottofondo ed effetti sonori (urto tra bilie, urto
bilia-sponda, bilia imbucata, fallo commesso, ticchettio tempo a disposizione,
vittoria);
7. Effetto tridimensionale: la GUI deve fornire una parvenza reale del gioco
mediante giochi di ombre e altre eventuali tecniche;
8. Diversi livelli di difficoltà: l’anteprima della traiettoria della bilia che si vuole
colpire può essere mostrata (con un suggerimento adeguato) oppure no.

Potrebbero piacerti anche