TdP-prove-finali / Introduzione

Istruzioni e documentazione per la proposta e lo svolgimento delle prove finali relative al corso di Tecniche di Programmazione.
http://bit.ly/tecn-progr
Apache License 2.0
4 stars 13 forks source link

Proposta di tesi s269249 #116

Closed CarloV2000 closed 11 months ago

CarloV2000 commented 11 months ago

Studente proponente

S269249 Verrazzani Carlo

Titolo della proposta

Simulatore della Ryder Cup di golf: il torneo di golf a squadre più seguito al mondo.

Descrizione del problema proposto

Lo scopo del programma è di simulare in modo realistico l’andamento della gara di golf più importante a livello mondiale: la Ryder Cup, una competizione che vede schierati da una parte i migliori 12 giocatori europei e dall’altra i migliori 12 americani. La gara dura 3 giorni e prevede 8 incontri di doppi il primo giorno, 8 incontri di doppi il secondo giorno e 12 incontri singoli il terzo giorno. Ogni vittoria porta 1 punto alla squadra vincitrice, zero alla squadra perdente e 0,5 ad entrambe in caso di pareggio. L’idea di base è di creare un simulatore che sia in grado di selezionare i giocatori per le 2 squadre e decretare giorno per giorno l’andamento della gara.

Descrizione della rilevanza gestionale del problema

Dal punto di vista gestionale, la rilevanza sta nella scelta dei giocatori in base a determinati parametri: la scelta dei giocatori è spesso oggetto di critiche in quanto è in buona parte di competenza del capitano della squadra. Tramite questo programma è possibile scegliere i giocatori secondo un criterio oggettivo che garantisce la scelta dei giocatori più in forma sulla base di dati relativi alle performance individuali dei giocatori. Inoltre tramite questo programma sarà possibile formare in modo ottimale le coppie per i primi due giorni di gara schierando le squadre nella maniera più omogenea.

Descrizione dei data-set per la valutazione

I data-set per la valutazione saranno tre. -Il primo è il database di ranking mondiale: verrà usato per ordinare i 12 giocatori componenti ciascuna squadra al fine di formare il calendario. -Il secondo include le medie dei risultati di ogni giocatore nell’anno corrente e serve per decretare i risultati della partita simulata. -il terzo rappresenta una classifica globale sui guadagni durante l’anno corrente dei giocatori. Tale database contiene la cifra in $ dei guadagni di ogni giocatore e il numero di eventi a cui esso ha partecipato durante la stagione. Identificare le fonti dalle quali verranno tratti i dati utilizzati https://www.owgr.com/current-world-ranking https://www.pgatour.com/stats/detail/120 https://www.cbssports.com/golf/rankings/money-list/

Descrizione preliminare degli algoritmi coinvolti

Gli algoritmi coinvolti saranno principalmente tre: -ALGORITMO PER SELEZIONARE I GIOCATORI: un algoritmo ricorsivo sarà il responsabile della scelta dei giocatori componenti le due squadre: per ogni squadra(TeamEUROPE e TeamUSA)verrà utilizzato lo stesso algoritmo ricorsivo: Il “DREAM” TEAM sarà composto dalla combinazione dei 12 giocatori che: - massimizza i $ guadagnati durante l’anno, – minimizza la somma delle medie score dei giocatori nell’anno, – ogni giocatore deve essere classificato tra i primi 100 nel ranking mondiale. – l’utente inserisce un numero n di gare e ciascun giocatore dovrà aver giocato almeno n gare durante l’anno(10<n<50). -ALGORITMO PER CREAZIONE CALENDARIO : dopo aver scelto i giocatori, devo creare 8 coppie per ogni squadra: ordino la squadra in base alla posizione nel ranking mondiale e li accoppio nel seguente modo: (1°+12°),(2°+11°) , (3°+10°) ,… (i giocatori 1°, 2°, 3° e 4° inoltre giocheranno due doppi in una giornata) in modo tale da ottenere squadre il più omogenee possibili in termini di livello di gioco. -ALGORITMO PER CALCOLO RISULTATI INCONTRI: L’idea di base è prendere dal database delle medie punteggi dell’anno di ciascun giocatore ed aggiungerci una varianza per creare la componente “casuale”. In pratica alla media score di un giocatore sommo e sottraggo un numero casuale tra 0 e 4: la somma identifica i bogeys(ossia il numero di colpi persi), la sottrazione identifica i birdies(ossia il numero di colpi guadagnati). In caso di incontro di doppio calcolo la media tra i punteggi dei singoli giocatori. (PunteggioPlayer1 = MediaScorePlayer1 + (Math.random()4) – (Math.random()4). (In caso di doppio: PunteggioTeam = (PunteggioPlayer1 + PunteggioPlayer2)/2 )

Descrizione preliminare delle funzionalità previste per l’applicazione software

L’applicazione sarà in grado attraverso una interfaccia semplice e dotata di campi testuali e bottoni di: (1)-selezionare i 24 giocatori componenti le due squadre tramite due pulsanti (selezionaSquadra1 e selezionaSquadra2) e un campo testuale in cui l’utente inserisce quante gare deve aver disputato ciascun giocatore. (2)-creare un calendario in grado di mantenere un livello di gioco il più possibile uniforme(ossia che mischi giocatori “più forti” con quelli “meno”). (3)-simulare giorno per giorno l’andamento della gara attraverso tre bottoni(SimulaDay1, SimulaDay2, SimulaDay3) stampando ogni volta il risultato di ciascun match giocato nel giorno e in basso il risultato parziale/finale della gara. (4)-attraverso la selezione di un giocatore tramite una tendina sarà possibile visualizzare tutti i risultati relativi agli incontri a cui esso ha partecipato.

fulcorno commented 11 months ago

Gli algoritmi proposti e l'ambito applicativo sono validi. La proposta è accettata.