Code Monkey home page Code Monkey logo

unitn-lingprog-prato-fiorito's Introduction

UNITN-lingProg-Prato-Fiorito

Università di Trento - Soluzione compito di Linguaggi di Programmazione, Modulo 1 – gennaio 2019

🔥 Esempio di soluzione da me realizzata per l'esame di Ronchetti di gennaio 2019.

Testo:

  1. Si costruisca un'applicazione che presenta
    • una scacchiera NxN (inizialmente si assuma N=4)
    • un contatore di punti (inizialmente posto a zero)
    • un campo che mostra il numero di partite vinte (inizialmente a zero)
    • un tasto "reset"
    • un tasto "cheat"

esempio

  1. Si produca su un foglio il diagramma UML di tutte le classi coinvolte. Non serve mostrare le classi di JavaFX, eccetto quelle da cui le classi scritte dal programmatore ereditano direttamente, se ve ne sono, Al termine, il foglio (sul quale devono essere presenti nome, cognome, numero di matricola) dovrà essere consegnato.

  2. Ciascuna cella della scacchiera può ospitare una tessera. Ogni tessera può essere nello stato "coperto" o "scoperto". In stato scoperto mostra il proprio valore, in stato coperto mostra solo il proprio dorso di colore uniforme.
    Le tessere sono di vario tipo:

    1. Tipo V: "Vinci subito"
    2. Tipo p: "Perdi subito"
    3. Tipo S: numerico, con valori compresi tra 1 e 9.
    4. Tutte le tessere, indipendentemente dal tipo, eseguono il metodo "scopri()", nel momento in cui vengono scoperte, e il metodo "nascondi()" se e quando vengono ricoperte.
  3. Per le tessere di tipo P, il metodo "scopri()" apre una finestra modale nella quale appare la scritta "Peccato, hai perso!"; tale messaggio viene altresi stampato sulla console. La finestra contiene un bottone di "OK", schiacciando il quale la finestra viene chiusa e il programma termina.

  4. Per le tessere di tipo V, il metodo "scopri()" apre una finestra modale nella quale appare la scritta "Complimenti, hai vinto!"; tale messaggio viene altresi stampato sulla console. La finestra contiene un bottone di "OK", schiacciando il quale la finestra viene chiusa. Il contatore "partite vinte" viene incrementato di uno, il programma ripristina lo stato iniziale (eccetto che per il contatore "partite vinte") e il giocatore può procedere con una nuova partita.

  5. Per le tessere di tipo S, il metodo "scopri()" legge il valore della tessera e lo aggiunge al contatore di punti. II valore della tessera e il nuovo valore del contatore di punti vengono altresi stampati sulla console. Se il punteggio totale risultante è <10, il colore del punteggio é mostrato in blu, se è >10 il colore é rosso. Se invece il punteggio risulterå esattamente uguale a 10, il punteggio verrà mostrato in verde, e viene aperta una finestra di vittoria uguale a quella del punto 5, e si procede come in quel caso.

  6. All'inizio, vengono generate: una tessera di tipo V, una tessera di tipo P, tessere di tipo S in numero pari a (NxN)-2. Ciascuna tessera di tipo S avrà un valore casuale compreso tra 1 e 9: ovviamente vi potranno essere più tessere di valore uguale. Le tessere così generate vengono disposte in ordine casuale sulla scacchiera in stato "coperto" ed in modo tale da coprire tutte le celle. Una rappresentazione testuale equivalente della scacchiera viene altresi stampata sulla console.

  7. Ciascuna tessera può essere scoperta cliccando su di essa (e quindi attivando il relativo metodo "scopri()").

  8. Le tessere possono essere cliccate anche se sono scoperte, attivandone in questo modo il metodo "nascondi()": esse diventano coperte, per le tessere di tipo S il loro valore viene detratto dal contatore di punti cambiandone il colore e procedendo all'eventuale proclamazione di vittoria come al punto punto 5.

  9. Il tasto di reset ripristina il gioco al suo stato iniziale.

  10. II tasto "cheat" apre una finestra nella quale vengono stampati i valori delle tessere nell'ordine in cui sono disposte sulla scacchiera, indicando rispettivamente con V e P le tessere di questi tipi, ed il valore numerico per le tessere di tipo S. Nota: in alternativa, questo output può essere dato in console, pagando una piccola penalitå nella valutazione del compito.

  11. Si introduca a inizio gioco la richiesta all'utente del valore del parametro N di cui al punto 1. Tale valore dovrà essere compreso tra 3 e 9. Si gestisca il caso di risposta non valida. Si usi il parametro N per il dimensionamento della scacchiera e la determinazione del numero delle tessere. E' possibile effettuare tale richiesta come si preferisce. II consiglio è comunque di includere nel proprio codice la seguente riga:
    String response=InputDialog.getResponse();
    e includere nel progetto la seguente classe:

    TextInputDialog dialog = new TextInputDialog();
    dialog.setHeaderText("Dimensione della griglia???");
    dialog.setTitle("Dimensione griglia");
    dialog.setContentText("Inserire NUMERO compreso tra 3 e 9: ");
    Optional result = dialog.showAndWait();
    if(result.isPresent())
    return result.get();
    else
    return null;

In questo progetto sono stati svolti i punti:

  • 1. Si costruisca un’applicazione avente il seguente aspetto
  • 2. Si produca su un foglio il diagramma UML di tutte le classi coinvolte.
  • 3-4-5-6-7-8-9-10-11-12

unitn-lingprog-prato-fiorito's People

Contributors

pater999 avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.