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:
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.
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:
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):
Una volta inseriti i valori, la funzione eseguirà le seguenti operazioni:
- 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
- Controlla che non sia abbia sballato
- Sottrae il valore a quello dello score del giocatore e si passa al giocatore successivo, aggiornando i valori della tabella dei punteggi
- (In fase di chiusura) Controlla che lo 0 si sia raggiunto con una doppia
- (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):
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:
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!