-
Notifications
You must be signed in to change notification settings - Fork 55
Open
Labels
Description
In base ai dati a disposizione, si propone questo scenario principale di gioco da implementare:
- il giocatore sceglie Partita Singola
- il giocatore sceglie una classe tra quelle a disposizione (nel file system delle classi, da unificare in T1 oppure T4)
- il giocatore sceglie un robot tra quelli disponibili per quella classe (sempre noti navigando il file system delle classi)
- si apre l'editor, in maniera tradizionale
- parte un timer (si memorizza l'orario di apertura), avendo un tempo massimo (potrebbe essere scelto dall'utente dopo il robot)
- l'utente scrive codice nell'editor, poi decide di compilare ed eseguire i test
- la copertura viene calcolata e visualizzata (in tre colori) nella finestra del codice sotto test sulla base dei risultati dell'esecuzione di JaCoCo
- i dati dettagliati di copertura del codice ottenuti dalla test suite del robot scelto sono mostrati, sempre nell'interfaccia, colorando lo sfondo dei numeri di riga nei tre colori. Ricapitolando: copertura del codice ottenuta dal robot (obiettivo) come sfondo dei numeri di riga vs copertura del codice ottenuta dal giocatore come sfondo dell'intera riga di codice
- a seguito di ogni compilazione, nel riquadro in basso a destra vengono riportati (per ora in forma testuale, poi magari grafica) i valori di copertura e delle metriche evosuite comparati, per i test del giocatore e per quelli del robot
- SE la copertura del giocatore (Instruction Coverage di JaCoCo) eguaglia o supera quella del robot la partita può essere terminata con una vittoria (il giocatore è libero di continuare a scrivere altri test, se crede)
- SE la copertura del giocatore (Instruction Coverage di JaCoCo) supera quella del robot il giocatore guadagna un badge / reward che gli verrà mostrato a schermo e salvato nel profilo
- SE la copertura del giocatore (Instruction Coverage di JaCoCo) eguaglia o supera quella del robot E la metrica Weak Mutation di Evosuite del giocatore supera quella del robot, il giocatore guadagna un altro badge / reward che gli verrà mostrato a schermo e salvato nel profilo
- SE il giocatore termina esplicitamente la partita con una copertura eguale o superiore a quella del robot gli viene assegnato un punto esperienza
- SE il giocatore chiude la partita senza aver almeno eguagliato la copertura del robot, nulla viene assegnato (potrebbe anche essere data una penalità -1 ai punti esperienza)
- SE il timer scade senza che il giocatore abbia almeno eguagliato la copertura del robot, nulla viene assegnato (potrebbe anche essere data una penalità -1 ai punti esperienza)
Chiaramente questa soluzione ha come prerequisito la disponibilità, per ogni classe di gioco, della copertura dettagliata e aggregata JaCoCo e delle metriche Evosuite.
Rispetto alla versione attuale, i nuovi pulsanti di gioco saranno quindi GIOCA (compila/esegui i test) e TERMINA. GIOCA avrà tutti i comportamenti di compilazione, esecuzione test, misura copertura, visualizzazione copertura utente e robot, assegnazione reward, mentre TERMINA avrà solo il comportamento di assegnazione punti esperienza e chiusura partita.
Reactions are currently unavailable