Per una migliore visione, attiva JavaScript

Match_501: la funzione per una classica partita a freccette

Come giocare la tua prima partita a freccette

 ·  🕘 4 min lettura  ·  🤖 Matteo Miotto

Eccoci arrivati al primo post di spiegazione di questo pacchetto per il gioco delle freccette. Oggi vedremo come usare la funzione match_501 per fare una classica partita a freccette e vedere i risultati.

Lancio e input

Partiamo ovviamente dal lancio della funzione e dagli input necessari. La funzione verrà lanciata col comando match_501(input) e avrà i seguenti input:

  • player 1: nome del primo giocatore, quello che inizia il primo leg
  • player 2: nome del secondo giocatore
  • sets2win: numero di set necessari per vincere la partita, di default è 1
  • legs2win: numero di leg necessari per vincere un set, di default è 1
  • Per esempio, lanciando il comando match_501(player1 = "John", player2 = "Julie", sets2win = 2, legs2win = 3) verrà creata la partita tra John e Julie in cui è necessario vincere 3 leg per vincere un set, e 2 set per vincere il match.

    Per usi successivi, è fortemente consigliato lanciare il comando salvando il risultato in una variabile: var <- match_501(input)

    Istruzioni e inserimento valori

    Una volta lanciata la funzione, come prima cosa appariranno le istruzioni su come inserire i valori delle freccette tirate:

    Istruzioni
    Figura 1: Istruzioni su come inserire i valori delle freccette

    A questo punto, premendo invio apparirà la tabella dei punteggi e verrà richiesto al primo giocatore di inserire i punteggi delle freccette (nome indicato nella schermata):

    Schema iniziale del punteggio
    Figura 2: Schema iniziale dei punteggi

    Una volta inseriti i valori, la funzione eseguirà le seguenti operazioni:

    1. Controlla che i valori inseriti siano validi (giusta forma e numeri esistenti). In caso contrario, uscirà un messaggio di errore e verrà richiesto al giocatore di inserire nuovamente i valori delle tre freccette
    2. Controlla che non sia abbia sballato
    3. Sottrae il valore a quello dello score del giocatore e si passa al giocatore successivo, aggiornando i valori della tabella dei punteggi
    4. (In fase di chiusura) Controlla che lo 0 si sia raggiunto con una doppia
    5. (Se il leg è chiuso) Passa al leg/set successivo

    Fine match

    Una volta terminato il match, verrà fornito un recap di esso con indicato la data della partita, i giocatori che ne hanno preso parte e il vincitore (col punteggio):

    Fine della partita
    Figura 3: Fine della partita e recap
    Nella figura si può apprezzare come il punteggio sia aggiornato di mano in mano, alla fine di ogni leg e set viene indicato il vincitore e alla fine della partita ci sia il recap. In questo caso, a puro titolo dimostrativo, la partita si vinceva con un solo leg per set e un solo set.

    Classe match, set e leg

    Dopo aver visto i semplici passaggi necessari per effettuare una partita, vi lascio introducendovi le classi che ho creato per salvare i dati di una partita. Queste classi sono leg1p, set1p, match1p e match2p, e sono tutte di tipo S4.
    Per aiutare a capire meglio la struttura, ecco uno schema rappresentativo della loro forma e degli slot presenti in ognuna:

    Schema delle classi
    Figura 4: Schema della struttura e delle relazioni tra le classi

    La struttura è ad intreccio: l’oggetto finale che viene fornito dalla funzione è di classe match2p. Essa contiene il numero di set necessari per vincere la partita e un oggetto di classe match1p per ogni giocatore. Esso contiene un indicatore di vittoria (1 nel caso affermativo, 0 in caso di sconfitta) e una lista di oggetti set1p, uno per ogni set. La struttura di quest’ultimo oggetto ricalca quella di match1p: indicatore vittoria e lista di oggetti leg1p, uno per ogni leg.
    In questa classe sono contenute molte più informazioni rispetto alle altre: l’ID del leg, il nome del giocatore, un valore numerico che indica se ha incominciato lui (1) o meno (0) quel leg, l’indicatore della vittoria e un vettore di caratteri contenente gli score delle freccette tirate.
    Per chi non conoscesse le modalità di accesso agli slot degli oggetti S4, ho creato anche delle funzioni per ricavare queste, ed altre, informazioni. Ma questo sarà oggetto di un post futuro, nel quale parlerò anche del salvataggio e del caricamento di questi dati.
    Stay tuned!

    Condividi
    Supporta l'autore con

    Matteo Miotto
    SCRITTO DA
    Matteo Miotto
    Genomic Data Science master student

    Contenuto