|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Oct 2009
Messaggi: 165
|
Python: gioco del tris entro domenica :help:
Ciao a tutti entro lunedì devo fare e studiarmi il gioco del Tris in Python perché lunedì mattina ci fa una bella verifica e il nostro prof non ci ha spiegato nulla perché dice che "dobbiamo ragionare e provare". NESSUNO ha realizzato questo simpatico gioco quindi potete immaginare com'è la situazione (di ansia).
Ho realizzato buona parte del lavoro ma mi sono bloccato su alcune cosette che fra un attimo vi dico. Anzitutto il gioco deve essere eseguito in locale tra due giocatori fisici. In Python:
Questo è il codice: Codice:
import os
os.system("clear")
print "Benvenuto al gioco dl Tris!" #Messaggi di benvenuto
print "Questo gioco e' stato creato con Python ed e' soggetto da copyright"+"\n"
print "ISTRUZIONI"+"\n"+"Questo gioco e' stato realizzato col linguaggio denominato Python. Giocare e' molto semplice, pero' ricordati che puoi usare soltanto la tastiera. Per inserire il segno all'interno della griglia dovrai scrivere di seguito le coordnate di questa, con caratteri minuscoli, per poi veder apparire di seguito un simbolo nella casella corrispondente. A seconda dell'ordine del giocatore, vedrete apparire una X, per il 1 giocatore, o una O, per il 2 giocatore. Ad esempio per mettere una X in alto a destra dovrai scrivere a3. Buon divertimento!"+"\n"
v="_" #Variabili tabella
A1=v
A2=v
A3=v
B1=v
B2=v
B3=v
C1=v
C2=v
C3=v
print "A "+A1+"|"+A2+"|"+A3+"\n"+ "B "+B1+"|"+B2+"|"+B3+"\n"+"C "+C1+"|"+C2+"|"+C3+"\n"+" 1 2 3"+"\n"
a="X" #Variabile segno
while True: #Inizio inserimento valori X e O
m=True
t=(raw_input("Inserisci le coordinate: ")) #Coordinate segni
if(t=="a1" and A1==v):
A1=a
elif(t=="a2" and A2==v):
A2=a
elif(t=="a3" and A3==v):
A3=a
elif(t=="b1" and B1==v):
B1=a
elif(t=="b2" and B2==v):
B2=a
elif(t=="b3" and B3==v):
B3=a
elif(t=="c1" and C1==v):
C1=a
elif(t=="c2" and C2==v):
C2=a
elif(t=="c3" and C3==v):
C3=a
os.system("clear")
print "A "+A1+"|"+A2+"|"+A3+"\n"+ "B "+B1+"|"+B2+"|"+B3+"\n"+"C "+C1+"|"+C2+"|"+C3+"\n"+" 1 2 3"
#Condizioni vincita o parita'
if (A1==A2==A3==a or B1==B2==B3==a or C1==C2==C3==a or A1==B2==C3==a or A3==B2==C1==a or A1==B1==C1==a or A2==B2==C2==a or A3==B3==C3==a):
print "Vince il giocatore "+a #Vincita
if (A1!=v and A2!=v and A3!=v and B1!=v and B2!=v and B3!=v and C1!=v and C2!=v and C3!=v):
print "Parita'" #Parita'
if (a=="X"): #Cambiamento segno giocatore
a="O"
elif (a=="O"):
a="X"
else: m=False
#if m=False: exit
Quello che proprio non capisco è come far finire il gioco nei casi di vincita di un giocatore e dell'altro e nel caso di parità. Il problema secondario è come far richiedere la mossa se il giocatore inserisce una coordinata già immessa precedentemente. Grazie mille in anticipo a tutti quelli che mi aiuteranno e volevo ricordare che il mio scopo è quello di capire e di imparare, non quello di avere il codice.
__________________
Mac Mini 2006 Mac Mini 2009 iPod Touch 4G iPod Nano 6° Magic Mouse Apple Keyboard Apple Remote Control (white) Macbook Pro 15" (2012) |
|
|
|
|
|
#2 | ||||
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Quote:
Quote:
Il concetto è che devi "marcare" se l'input è corretto, oppure no, e uscire dal ciclo soltanto nel primo caso. Quote:
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
||||
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Oct 2009
Messaggi: 165
|
non ce la faccio… :dry:
Comunque ho cliccato sul libro che linki nella tua firma e ho visto la funzione return. Fa ripartire il codice o lo fa soltanto finire? Per il ciclo while ho scritto il while True: e dopo anchor while True:… quell'if che mi dice se t!=v allora scrivi "hai sbagliato" dove lo metto? Ecco il codice aggiornato (che non va): Codice:
import os
os.system("clear")
print "Benvenuto al gioco dl Tris!" #Messaggi di benvenuto
print "Questo gioco e' stato creato con Python ed e' soggetto da copyright"+"\n"
print "ISTRUZIONI"+"\n"+"Questo gioco e' stato realizzato col linguaggio denominato Python. Giocare e' molto semplice, p$
v="_" #Variabili tabella
A1=v
A2=v
A3=v
B1=v
B2=v
B3=v
C1=v
C2=v
C3=v
print "A "+A1+"|"+A2+"|"+A3+"\n"+ "B "+B1+"|"+B2+"|"+B3+"\n"+"C "+C1+"|"+C2+"|"+C3+"\n"+" 1 2 3"+"\n"
a="X" #Variabile segno
t=True
while True: #Inizio inserimento valori X e O
while (t==True):
m=True
t=(raw_input("Inserisci le coordinate: ")) #Coordinate segni
if(t=="a1" and A1==v):
A1=a
elif(t=="a2" and A2==v):
A2=a
elif(t=="a3" and A3==v):
A3=a
elif(t=="b1" and B1==v):
B1=a
elif(t=="b2" and B2==v):
B2=a
elif(t=="b3" and B3==v):
B3=a
elif(t=="c1" and C1==v):
C1=a
elif(t=="c2" and C2==v):
C2=a
elif(t=="c3" and C3==v):
C3=a
os.system("clear")
print "A "+A1+"|"+A2+"|"+A3+"\n"+ "B "+B1+"|"+B2+"|"+B3+"\n"+"C "+C1+"|"+C2+"|"+C3+"\n"+" 1 2 3"
if(t!=v):
print "Hai fatto una mossa errata"
t=False
#Condizioni vincita o parita'
if (A1==A2==A3==a or B1==B2==B3==a or C1==C2==C3==a or A1==B2==C3==a or A3==B2==C1==a or A1==B1==C1==a or A2==B2$
print "Vince il giocatore "+a #Vincita
if (A1!=v and A2!=v and A3!=v and B1!=v and B2!=v and B3!=v and C1!=v and C2!=v and C3!=v):
print "Parita'" #Parita'
if (a=="X"): #Cambiamento segno giocatore
a="O"
elif (a=="O"):
a="X"
else:
m=False
t=True
if m==False:
break
__________________
Mac Mini 2006 Mac Mini 2009 iPod Touch 4G iPod Nano 6° Magic Mouse Apple Keyboard Apple Remote Control (white) Macbook Pro 15" (2012) Ultima modifica di <B>Pietro<B> : 26-05-2011 alle 19:21. |
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Oct 2009
Messaggi: 165
|
Ci ho ragionato un bel po' ed è venuto fuori questo:
Codice:
import os
os.system("clear")
print "Benvenuto al gioco dl Tris!" #Messaggi di benvenuto
print "Questo gioco e' stato creato con Python ed e' soggetto da copyright"+"\n"
print "ISTRUZIONI"+"\n"+"Questo gioco e' stato realizzato col linguaggio denominato Python. Giocare e' molto semplice, p$
v="_" #Variabili tabella
A1=v
A2=v
A3=v
B1=v
B2=v
B3=v
C1=v
C2=v
C3=v
scacchiera="A "+A1+"|"+A2+"|"+A3+"\n"+ "B "+B1+"|"+B2+"|"+B3+"\n"+"C "+C1+"|"+C2+"|"+C3+"\n"+" 1 2 3"
mse="Hai inserito una coordinata gia' immessa!"
print scacchiera
a="X" #Variabile segno
while True: #Inizio inserimento valori X e O
m=True
print "Turno del giocatore "+a
t=(raw_input("Inserisci le coordinate: ")) #Coordinate segni
os.system("clear")
if(t=="a1" and A1==a):
print mse
elif(t=="a2" and A2==a):
print mse
elif(t=="a3" and A3==a):
print mse
elif(t=="b1" and B1==a):
print mse
elif(t=="b2" and B2==a):
print mse
elif(t=="b3" and B3==a):
print msE
elif(t=="c1" and C1==a):
print msE
elif(t=="c2" and C2==a):
print msE
elif(t=="c3" and C3==a):
print msE
elif(t=="a1" and A1==v):
A1=a
elif(t=="a2" and A2==v):
A2=a
elif(t=="a3" and A3==v):
A3=a
elif(t=="b1" and B1==v):
B1=a
elif(t=="b2" and B2==v):
B2=a
elif(t=="b3" and B3==v):
B3=a
elif(t=="c1" and C1==v):
C1=a
elif(t=="c2" and C2==v):
C2=a
elif(t=="c3" and C3==v):
C3=a
print "A "+A1+"|"+A2+"|"+A3+"\n"+ "B "+B1+"|"+B2+"|"+B3+"\n"+"C "+C1+"|"+C2+"|"+C3+"\n"+" 1 2 3"
#Condizioni vincita o parita'
if (A1==A2==A3==a or B1==B2==B3==a or C1==C2==C3==a or A1==B2==C3==a or A3==B2==C1==a or A1==B1==C1==a or A2==B2$
print "Vince il giocatore "+a #Vincita
break
if (A1!=v and A2!=v and A3!=v and B1!=v and B2!=v and B3!=v and C1!=v and C2!=v and C3!=v):
print "Parita'" #Parita'
break
if (a=="X"): #Cambiamento segno giocatore
a="O"
elif (a=="O"):
a="X"
else: m=False
__________________
Mac Mini 2006 Mac Mini 2009 iPod Touch 4G iPod Nano 6° Magic Mouse Apple Keyboard Apple Remote Control (white) Macbook Pro 15" (2012) Ultima modifica di <B>Pietro<B> : 27-05-2011 alle 21:47. |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Perché, come ti dicevo prima, devi inserire tutta la parte di immissione e controllo della validità delle coordinate dentro un ciclo while, dal quale uscire se e solo se le coordinate immesse sono corrette.
Intercettare il caso della coordinate corrette è molto semplice: basta aggiungere un else alla fine della catena di if che controllano la non validità dell'input. L'else deve semplicemente far uscire dal secondo ciclo while, allo stesso modo di come hai fatto uscire dal ciclo while principale. Sei davvero a una passo dalla soluzione, veramente. Ti bastano 3 righe con 3 istruzioni, che rispecchiano esattamente quello che ho detto.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Oct 2009
Messaggi: 165
|
Ecco qua cosa sono riuscito a fare:
Codice:
import os
os.system("clear")
print "Benvenuto al gioco dl Tris!" #Messaggi di benvenuto
print "Questo gioco e' stato creato con Python ed e' soggetto da copyright"+"\n"
#print "ISTRUZIONI"+"\n"+"Questo gioco e' stato realizzato col linguaggio denominato Python. Giocare e' molto semplice, pero' ricordati che puoi usare soltanto la tastiera. Per inserire il segno all'interno della griglia dovrai scrivere di seguito le coordnate di questa, con caratteri minuscoli, per poi veder apparire di seguito un simbolo nella casella corrispondente. A seconda dell'ordine del giocatore, vedrete apparire una X, per il 1 giocatore, o una O, per il 2 giocatore. Ad esempio per mettere una X in alto a destra dovrai scrivere a3. Buon divertimento!"+"\n""
print "ISTRUZIONI"+"\n"+"Questo gioco e' stato realizzato col linguaggio denominato Python. Giocare e' molto semplice, pero' ricordati che puoi usare soltanto la tastiera. Per inserire il segno all'interno della griglia dovrai scrivere di seguito le coordnate di questa, con caratteri minuscoli, per poi veder apparire di seguito un simbolo nella casella corrispondente. A seconda dell'ordine del giocatore, vedrete apparire una X, per il 1 giocatore, o una O, per il 2 giocatore. Ad esempio per mettere una X in alto a destra dovrai scrivere a3. Buon divertimento!"+"\n"
v="_" #Variabili tabella
A1=v
A2=v
A3=v
B1=v
B2=v
B3=v
C1=v
C2=v
C3=v
tab="A "+A1+"|"+A2+"|"+A3+"\n"+ "B "+B1+"|"+B2+"|"+B3+"\n"+"C "+C1+"|"+C2+"|"+C3+"\n"+" 1 2 3"
mse="Hai inserito una coordinata gia' immessa!"
print tab
a="X" #Variabile segno
m=False
while True: #Inizio inserimento valori X e O
m=True
print "Turno del giocatore "+a
t=(raw_input("Inserisci le coordinate: ")) #Coordinate segni
os.system("clear")
if(t=="a1" and A1==v):
A1=a
elif(t=="a2" and A2==v):
A2=a
elif(t=="a3" and A3==v):
A3=a
elif(t=="b1" and B1==v):
B1=a
elif(t=="b2" and B2==v):
B2=a
elif(t=="b3" and B3==v):
B3=a
elif(t=="c1" and C1==v):
C1=a
elif(t=="c2" and C2==v):
C2=a
elif(t=="c3" and C3==v):
C3=a
else: m=False
print tab
#Condizioni vincita o parita'
if (A1==A2==A3==a or B1==B2==B3==a or C1==C2==C3==a or A1==B2==C3==a or A3==B2==C1==a or A1==B1==C1==a or A2==B2==C2==a or A1==B2==C3==a or A3==B2==C1==a):
print "Vince il giocatore "+a #Vincita
break
elif (A1!=v and A2!=v and A3!=v and B1!=v and B2!=v and B3!=v and C1!=v and C2!=v and C3!=v):
print "Parita'" #Parita'
break
elif (a=="X" and m==True): #Cambiamento segno giocatore
a="O"
elif (a=="O" and m==True):
a="X"
elif(m==False): print mse
else: m=False
if(m): #condizioni vincita e parità e cambiamento segno In poche parole devo sostituire la funzione break con gli if. Da che cosa deriva quindi questa funzione?
__________________
Mac Mini 2006 Mac Mini 2009 iPod Touch 4G iPod Nano 6° Magic Mouse Apple Keyboard Apple Remote Control (white) Macbook Pro 15" (2012) |
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Oct 2009
Messaggi: 165
|
L'ho fattooooooo!!!!!!!!!! Evvaiii!
Ecco qua: Codice:
import os
os.system("clear")
print "Benvenuto al gioco dl Tris!" #Messaggi di benvenuto
print "Questo gioco e' stato creato con Python ed e' soggetto da copyright"+"\n"
#print "ISTRUZIONI"+"\n"+"Questo gioco e' stato realizzato col linguaggio denominato Python. Giocare e' molto semplice, pero' ricordati che puoi usare soltanto la tastiera. Per inserire il segno all'interno della griglia dovrai scrivere di seguito le coordnate di questa, con caratteri minuscoli, per poi veder apparire di seguito un simbolo nella casella corrispondente. A seconda dell'ordine del giocatore, vedrete apparire una X, per il 1 giocatore, o una O, per il 2 giocatore. Ad esempio per mettere una X in alto a destra dovrai scrivere a3. Buon divertimento!"+"\n""
print "ISTRUZIONI"+"\n"+"Questo gioco e' stato realizzato col linguaggio denominato Python. Giocare e' molto semplice, pero' ricordati che puoi usare soltanto la tastiera. Per inserire il segno all'interno della griglia dovrai scrivere di seguito le coordnate di questa, con caratteri minuscoli, per poi veder apparire di seguito un simbolo nella casella corrispondente. A seconda dell'ordine del giocatore, vedrete apparire una X, per il 1 giocatore, o una O, per il 2 giocatore. Ad esempio per mettere una X in alto a destra dovrai scrivere a3. Buon divertimento!"+"\n"
v="_" #Variabili tabella
A1=v
A2=v
A3=v
B1=v
B2=v
B3=v
C1=v
C2=v
C3=v
tab="A "+A1+"|"+A2+"|"+A3+"\n"+ "B "+B1+"|"+B2+"|"+B3+"\n"+"C "+C1+"|"+C2+"|"+C3+"\n"+" 1 2 3"
mse="Hai inserito una coordinata gia' immessa!"
print tab
a="X" #Variabile segno
m=False
f=True
while(f): #Inizio inserimento valori X e O
m=True
print "Turno del giocatore "+a
t=(raw_input("Inserisci le coordinate: ")) #Coordinate segni
os.system("clear")
if(t=="a1" and A1==v):
A1=a
elif(t=="a2" and A2==v):
A2=a
elif(t=="a3" and A3==v):
A3=a
elif(t=="b1" and B1==v):
B1=a
elif(t=="b2" and B2==v):
B2=a
elif(t=="b3" and B3==v):
B3=a
elif(t=="c1" and C1==v):
C1=a
elif(t=="c2" and C2==v):
C2=a
elif(t=="c3" and C3==v):
C3=a
else: m=False
print "A "+A1+"|"+A2+"|"+A3+"\n"+ "B "+B1+"|"+B2+"|"+B3+"\n"+"C "+C1+"|"+C2+"|"+C3+"\n"+" 1 2 3"
#Condizioni vincita o parita'
if (A1==A2==A3==a or B1==B2==B3==a or C1==C2==C3==a or A1==B2==C3==a or A3==B2==C1==a or A1==B1==C1==a or A2==B2==C2==a or A1==B2==C3==a or A3==B2==C1==a):
print "Vince il giocatore "+a #Vincita
f=False
elif(A1!=v and A2!=v and A3!=v and B1!=v and B2!=v and B3!=v and C1!=v and C2!=v and C3!=v):
print "Parita'" #Parita'
f=False
elif(a=="X" and m==True): #Cambiamento segno giocatore
a="O"
elif (a=="O" and m==True):
a="X"
elif(m==False): print mse
else: m=False
__________________
Mac Mini 2006 Mac Mini 2009 iPod Touch 4G iPod Nano 6° Magic Mouse Apple Keyboard Apple Remote Control (white) Macbook Pro 15" (2012) |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Io penserei a spendere meglio il tempo, fortificando le conoscenze di programmazione prima di passare a un linguaggio più ostico, come il C (SE realmente necessario), perché da quel che ho visto finora ne avete strada da fare.
Un buon esercizio sarebbe riscrivere quel codice per renderlo più "pulito". P.S. Il tuo professore dovrebbe almeno avere un po' di pietà e non limitarvi nell'usare alcune istruzioni, viste le condizioni in cui versate.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#9 |
|
Member
Iscritto dal: Oct 2009
Messaggi: 165
|
no no me lo faccio fare!
Comunque sì penso di continuare con Python e guardarmelo bene. Ma se dovessi farlo con le funzioni il gioco sarebbe più veloce e come dici tu più "pulito"? Il nostro professore ce l'ha fatto fare così affinché potessimo ripassare tutto quello che abbiamo fatto e verificare le nostre capacità (credo ),Oggi abbiamo fatto la verifica e direi che per me è andata abbastanza bene penso, credo di aver fatto 2 errori. Comunque tra C e Python che differenze ci sono?
__________________
Mac Mini 2006 Mac Mini 2009 iPod Touch 4G iPod Nano 6° Magic Mouse Apple Keyboard Apple Remote Control (white) Macbook Pro 15" (2012) |
|
|
|
|
|
#10 | ||||
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Ah, meglio così.
Quote:
Più pulito sì, lo sarebbe sicuramente. Quote:
Quote:
Quote:
![]() A parte gli scherzi, sono il giorno e la notte: non c'entra nulla l'uno con l'altro. Fortificati con Python, che per farti del male col C c'è sempre tempo.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
||||
|
|
|
|
|
#11 |
|
Member
Iscritto dal: Oct 2009
Messaggi: 165
|
No, le funzione non le abbiamo ancora fatte comunque oltre usare break e continue cos'altro potrei modificare?
I risultati ce li darà sabato e vedremo… e il prof di laboratorio di informatica ci dovrebbe correggere il Tris (avrebbe dovuto farlo ieri ma non l'ha fatto )
__________________
Mac Mini 2006 Mac Mini 2009 iPod Touch 4G iPod Nano 6° Magic Mouse Apple Keyboard Apple Remote Control (white) Macbook Pro 15" (2012) |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Intanto potresti usare break e continue.
Poi utilizzerei una matrice al posto di A1, A2, ecc., in modo da effettuare i controlli con un ben più pulito ciclo (se non hai fatto il for, al limite anche col while).
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#13 | |
|
Member
Iscritto dal: Oct 2009
Messaggi: 165
|
Quote:
__________________
Mac Mini 2006 Mac Mini 2009 iPod Touch 4G iPod Nano 6° Magic Mouse Apple Keyboard Apple Remote Control (white) Macbook Pro 15" (2012) |
|
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
OK, come non detto: sei proprio agli inizi. Quindi fai benissimo a smazzarti il libro che ho in firma: vedrai che un po' alla volta ti sarà tutto più chiaro.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#15 |
|
Member
Iscritto dal: Oct 2009
Messaggi: 165
|
eh già
Grazie per il tuo aiuto. Quando ci dà i risultati (sabato) di dirò
__________________
Mac Mini 2006 Mac Mini 2009 iPod Touch 4G iPod Nano 6° Magic Mouse Apple Keyboard Apple Remote Control (white) Macbook Pro 15" (2012) |
|
|
|
|
|
#16 |
|
Member
Iscritto dal: Oct 2009
Messaggi: 165
|
ecco ce li ha dati! Ho preso 9! E forse ha detto che potrebbe pensarci anche per darmi 9 in pagella!
Grazie!
__________________
Mac Mini 2006 Mac Mini 2009 iPod Touch 4G iPod Nano 6° Magic Mouse Apple Keyboard Apple Remote Control (white) Macbook Pro 15" (2012) |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:24.












),








