def insert_score(sb): risp = 1 while risp == 1: score = float(input("Inserisca lo score totalizzato:\n")) name = input("Inserisca il nome del player che ha totalizzato lo score:\n") print("Inserisca la data in cui è stato totalizzato lo score") Y = int(input("Anno:\n")) M = int(input("Mese:\n")) D = int(input("Giorno:\n")) sb.insert(ScoreBoard.Score(name, score, date(Y, M, D))) while True: risp = int(input("Vuole inserire un altro score?(1-yes or 2-no):\n")) if risp == 2 or risp == 1: break else: print("Scelta errata, ripeta") return sb
def test_default(): #CircularPositionList Test l_uno = CircularPositionalList() print("\nLa lista è vuota?\t\t\t\t\t\t\t\t\t", l_uno.is_empty()) l_uno.add_first(11) print("Aggiungo il primo elemento 11:\t\t\t\t\t\t", l_uno) print("La lista è vuota ora?\t\t\t\t\t\t\t\t", l_uno.is_empty()) l_uno.add_last(13) print("Aggiungo un secondo elemento 13 in coda:\t\t\t", l_uno) l_uno.add_after(l_uno.first(), 17) print("Aggiungo un terzo elemento 17 dopo il primo:\t\t", l_uno) l_uno.add_before(l_uno.last(), 19) print("Aggiungo un quarto elemento 19 prima dell'ultimo:\t", l_uno) l_uno.add_after(l_uno.last(), 23) print("Aggiungo un quinto elemento 23 dopo l'ultimo:\t\t", l_uno) print("Qual è la dimensione della lista?\t\t\t\t\t", len(l_uno)) print("La lista è circolare?\t\t\t\t\t\t\t\t", l_uno.first().element() == l_uno.after(l_uno.last()) and l_uno.last().element() == l_uno.before(l_uno.first())) l_uno.delete(l_uno.find(13)) print("Elimino 13 dalla lista:\t\t\t\t\t\t\t\t", l_uno) l_uno.replace(l_uno.find(17), 29) print("Sostituisco 17 con 29:\t\t\t\t\t\t\t\t", l_uno) l_uno.add_last(11) print("Aggiungo un altro 11 in coda:\t\t\t\t\t\t", l_uno) print("Quanti 11 ci sono nella lista?\t\t\t\t\t\t", l_uno.count(11)) print("Quanti 12 ci sono nella lista?\t\t\t\t\t\t", l_uno.count(12)) l_uno.add_first(31) print("Aggiungo un altro elemento 31 in testa:\t\t\t\t", l_uno) print("Chi è l'header ora?\t\t\t\t\t\t\t\t\t", l_uno[l_uno.first()]) l_uno.reverse() print("Inverto la lista:\t\t\t\t\t\t\t\t\t", l_uno) l_uno[l_uno.last()] = 37 print("Sostituisco l'ultimo elemento 31 con 37:\t\t\t", l_uno) l_due = l_uno.copy() print("Copio la lista l_uno in l_due:\t\t\t\t\t\t", l_due) print("Sono uguali?\t\t\t\t\t\t\t\t\t\t", l_uno == l_due) del l_uno[l_uno.first()] del l_due[l_due.first()] print("Elimino il primo elemento da entrambe le liste:\t\t", l_uno) print("Sono ancora uguali?\t\t\t\t\t\t\t\t\t", l_uno == l_due) print("Concateno le liste:\t\t\t\t\t\t\t\t\t", l_uno + l_due) l_uno.add_before(l_uno.first(), 41) l_due.add_before(l_due.first(), 41) l_uno.add_after(l_uno.last(), 43) l_due.add_after(l_due.last(), 43) print("Aggiungo 41 e 43 in entrambe:\t\t\t\t\t\t", l_uno) print("Sono ancora uguali?\t\t\t\t\t\t\t\t\t", l_uno == l_due) print("Le liste sono ordinate?\t\t\t\t\t\t\t\t", l_uno.is_sorted() and l_due.is_sorted()) l_uno_ordinata = CircularPositionalList() for e in bubblesorted(l_uno): l_uno_ordinata.add_last(e) l_due_ordinata = CircularPositionalList() for e in bubblesorted(l_due): l_due_ordinata.add_last(e) print("Eseguo il bubblesort:\t\t\t\t\t\t\t\t", l_uno_ordinata) print("Le liste sono ordinate?\t\t\t\t\t\t\t\t", l_uno_ordinata.is_sorted() and l_due_ordinata.is_sorted()) print("Allora eseguo il merge:\t\t\t\t\t\t\t\t", merge(l_uno_ordinata, l_due_ordinata)) l_uno.clear() l_due.clear() l_uno_ordinata.clear() l_due_ordinata.clear() print("Svuoto le liste:", l_uno + l_due + l_uno_ordinata + l_due_ordinata) print("\nIL TEST E' STATO EFFETTUATO SUL GIOCO DEI 100m QUINDI PER MIGLIORI RISULTATI DEL GIOCO INTENDIAMO IL MIGLIOR TEMPO TOTALIZZATO") sb_uno = ScoreBoard() if sb_uno.is_empty(): print("La classifica è vuota") print("Dimensione dello ScoreBoard",len(sb_uno)) print("Inserisco score di Usain Bolt") sb_uno.insert(ScoreBoard.Score("Usain Bolt ", 9.58, date(2009, 8, 16))) print("Numero di score presenti",sb_uno.size()) if not sb_uno.is_empty(): print("La classifica non è vuota") print("Inserisco score di Yohan blake") sb_uno.insert(ScoreBoard.Score("Yohan Blake ", 9.69, date(2012, 8, 23))) print("Numero di score presenti",sb_uno.size()) sb_uno.insert(ScoreBoard.Score("Tyson Gay ", 9.71, date(2009, 8, 16))) sb_uno.insert(ScoreBoard.Score("Usain Bolt ", 9.72, date(2008, 5, 31))) sb_uno.insert(ScoreBoard.Score("Usain Bolt ", 9.63, date(2012, 8, 5))) sb_uno.insert(ScoreBoard.Score("Asafa Powell", 9.74, date(2007, 9, 9))) sb_uno.insert(ScoreBoard.Score("Usain Bolt ", 9.69, date(2008, 8, 16))) sb_uno.insert(ScoreBoard.Score("Tyson Gay ", 9.69, date(2009, 9, 20))) sb_uno.insert(ScoreBoard.Score("Asafa Powell", 9.72, date(2008, 9, 2))) print("Inserisco score di Yohan blake dopo aver inserito 8 score precedenti") sb_uno.insert(ScoreBoard.Score("Yohan Blake ", 9.75, date(2012, 6, 29))) print("Numero di score presenti",sb_uno.size()) print(str(sb_uno)) print("Aggiorno la classifica") print("Inserisco nuovo score 9.74 s totalizzato da Justin Gatlin\n") sb_uno.insert(ScoreBoard.Score("Justin Gatlin", 9.74, date(2015, 5, 15))) print(str(sb_uno)) print("Si noti che la classifica è stata aggiornata e Justin Gatlin si è piazzato alle spalle di Yohan Blake nella top 10\n") print("Si noti anche che di default la classifica può contenere solo i migliori 10 score e di conseguenza lo score di 9.75 s totalizzato da Yohan Blake è stato eliminato") print("Provo a inserire di nuovo il vecchio punteggio di yohan blake\n ") sb_uno.insert(ScoreBoard.Score("Yohan Blake ", 9.75, date(2012, 6, 29))) print(str(sb_uno)) print("Si noti che la classifica non è stata aggiornata siccome lo score inserito non è migliore di quelli presenti ") print("Seleziono solo i primi 3 della top 10\n") print("TOP 3") print("----\t-----------\t\t\t-----\t\t-----------\n||||\tPlayer Name\t\t\tScore\t\tDate\n----\t-----------\t\t\t-----\t\t-----------") k = 1 for i in sb_uno.top(3): print(str(k) + "° \t" + str(i)) k += 1 print("\nSeleziono solo i peggiori 3 della top 10\n") print("WORST 3") print("----\t-----------\t\t\t-----\t\t-----------\n||||\tPlayer Name\t\t\tScore\t\tDate\n----\t-----------\t\t\t-----\t\t-----------") k = 1 for n in sb_uno.last(3): print(str(k) + "° \t" + str(n)) k += 1 print("\nTest") sb1_uno = ScoreBoard(4) sb2_uno = ScoreBoard(9) sb1_uno.insert(ScoreBoard.Score("Florence D. ", 10.49, date(1988, 7, 16))) sb1_uno.insert(ScoreBoard.Score("Marion Jones", 10.65, date(1998, 9, 12))) sb1_uno.insert(ScoreBoard.Score("Carmelita J.", 10.67, date(2009, 9, 13))) sb1_uno.insert(ScoreBoard.Score("Elaine T. ", 10.70, date(2016, 7, 1))) sb2_uno.insert(ScoreBoard.Score("Florence D. ", 10.61, date(1988, 7, 17))) sb2_uno.insert(ScoreBoard.Score("Florence D. ", 10.62, date(1988, 9, 24))) sb2_uno.insert(ScoreBoard.Score("Florence D. ", 10.70, date(1988, 7, 17))) sb2_uno.insert(ScoreBoard.Score("Marion Jones", 10.71, date(1998, 5, 12))) sb2_uno.insert(ScoreBoard.Score("Shelly-Ann ", 10.70, date(2012, 6, 29))) sb2_uno.insert(ScoreBoard.Score("Carmelita J.", 10.64, date(2009, 9, 20))) sb2_uno.insert(ScoreBoard.Score("Marion Jones", 10.65, date(1998, 9, 12))) sb2_uno.insert(ScoreBoard.Score("Marion Jones", 10.70, date(1999, 8, 22))) print(sb1_uno) print(sb2_uno) print("------------------Test-Merge-----------------------\n") sb1_uno.merge(sb2_uno) print(str(sb1_uno)) print("Si noti che dei 12 score totali ne prende i migliori 10")