Skip to content

ThatCmd/Planetarium

Repository files navigation

Planetarium

Esercizio 1 del progetto Arnaldo.

Tutti i diritti del progetto sono del team: The Tesler Team, semplicemente TTT.

Il progetto è pubblico, la copia del codice è concessa se e solo se vengono dati i crediti al team TTT.
Viene inoltre reso disponibile il file UML "Schema UML.pdf" che contiene sia come viene gestito l'output e l'input della console (pagina 1) sia come le classi del programma interagiscono tra loro (pagina 2). La parte che risolve il quesito è pensata come una libreria, perciò le classi della gestione input e output sono separate.

    Il programma è completo delle seguenti funzionalità richieste:
  • Gestione dei corpi celesti del sistema stellare:
    • Aggiunta di nuovi pianeti o lune, in caso di nuove scoperte.
    • Rimozione di vecchi pianeti o lune, in caso di “catastrofi naturali”.
    • Identificazione di ciascun corpo celeste con un codice univoco.
  • Ricerca di un corpo celeste all’interno del sistema:
    • Possibilità di capire se è presente nel sistema stellare.
    • Nel caso di lune, identificazione del pianeta attorno a cui gira.
  • Visualizzazione delle informazioni:
    • Dato un pianeta, visualizzazione delle lune che gli orbitano intorno.
    • Data una luna, visualizzazione del percorso [stella > pianeta > luna] necessario per raggiungerla.
  • Calcolo del centro di massa su richiesta, sulla base delle informazioni disponibili volta per volta.
  • Calcolo della rotta fra due corpi celesti:
    • Su richiesta dell’utente, il programma deve mostrare la rotta fra due corpi del sistema stellare selezionati dall’utente stesso.
    • Le leggi imperiali impongono che, nel caso in cui si viaggi fra due corpi di uguale “grado” (due lune, o due pianeti), si faccia scalo sul corpo celeste di grado più alto (rispettivamente, il pianeta in comune o la stella del sistema). In questo modo, la rotta fra due corpi celesti qualunque è unica, e l’Impero riesce a mantenere l’ordine.
    • La rotta deve essere rappresentata come sequenza di corpi celesti (ad esempio: Luna 1 > Pianeta 1 > Stella > Pianeta 2).
    • Deve essere indicata la distanza totale che si percorrerebbe seguendo la sequenza sopra indicata (nell’esempio precedente: 8,65).
  • Calcolo della collisione fra i corpi celesti:
    • Su richiesta dell’utente, il programma deve stabilire se sia possibile che due corpi qualunque del sistema collidano uno contro l’altro. Non è necessario stabilire quando e dove, né quali corpi siano, ma solamente se questo possa succedere.
    • Due corpi possono collidere se e solo se esiste una configurazione del sistema per cui due corpi possono trovarsi nella stessa posizione puntuale.
    • Ogni corpo ha distanza fissa dal corpo attorno a cui ruota (detta raggio di rivoluzione). Pertanto, nessuna luna colliderà mai col proprio pianeta e nessun pianeta colliderà mai con la stella del sistema.

Riassunto: ci sono tutte le funzioni, sia quelle base, sia quelle aggiuntive 1 che aggiuntive 2.

Il programma include una piccola sezione di aiuto accessibile direttamente dal menù della console. Sono stati aggiunti Easter-Eggs.

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages