| | [gioco] tris2.0 | |
| | Autore | Messaggio |
---|
darkphantom hack-member
Numero di messaggi : 398 Data d'iscrizione : 03.09.07
| Titolo: [gioco] tris2.0 Gio Gen 17, 2008 9:33 pm | |
| ecco il codice per giocare contro il computer: - Codice:
-
import random cas=[0]*9 def griglia(a,b,c,d):
if cas[a]==0 and cas[b]==0 and cas[c]==0:
print d,"| | | |"
elif cas[a]==0 and cas[b]==0 and cas[c]==1:
print d,"| | |x|"
elif cas[a]==0 and cas[b]==1 and cas[c]==0:
print d,"| |x| |"
elif cas[a]==0 and cas[b]==1 and cas[c]==1:
print d,"| |x|x|"
elif cas[a]==1 and cas[b]==0 and cas[c]==0:
print d,"|x| | |"
elif cas[a]==1 and cas[b]==0 and cas[c]==1:
print d,"|x| |x|"
elif cas[a]==1 and cas[b]==1 and cas[c]==0:
print d,"|x|x| |"
elif cas[a]==1 and cas[b]==1 and cas[c]==1:
print d,"|x|x|x|"
elif cas[a]==0 and cas[b]==0 and cas[c]==2:
print d,"| | |o|"
elif cas[a]==0 and cas[b]==2 and cas[c]==0:
print d,"| |o| |"
elif cas[a]==0 and cas[b]==2 and cas[c]==2:
print d,"| |o|o|"
elif cas[a]==2 and cas[b]==0 and cas[c]==0:
print d,"|o| | |"
elif cas[a]==2 and cas[b]==0 and cas[c]==2:
print d,"|o| |o|"
elif cas[a]==2 and cas[b]==2 and cas[c]==0:
print d,"|o|o| |"
elif cas[a]==2 and cas[b]==2 and cas[c]==2:
print d,"|o|o|o|"
elif cas[a]==0 and cas[b]==1 and cas[c]==2:
print d,"| |x|o|"
elif cas[a]==0 and cas[b]==2 and cas[c]==1:
print d,"| |o|x|"
elif cas[a]==1 and cas[b]==0 and cas[c]==2:
print d,"|x| |o|"
elif cas[a]==1 and cas[b]==1 and cas[c]==2:
print d,"|x|x|o|"
elif cas[a]==1 and cas[b]==2 and cas[c]==0:
print d,"|x|o| |"
elif cas[a]==1 and cas[b]==2 and cas[c]==1:
print d,"|x|o|x|"
elif cas[a]==1 and cas[b]==2 and cas[c]==2:
print d,"|x|o|o|"
elif cas[a]==2 and cas[b]==0 and cas[c]==1:
print d,"|o| |x|"
elif cas[a]==2 and cas[b]==1 and cas[c]==0:
print d,"|o|x| |"
elif cas[a]==2 and cas[b]==1 and cas[c]==1:
print d,"|o|x|x|"
elif cas[a]==2 and cas[b]==1 and cas[c]==2:
print d,"|o|x|o|"
elif cas[a]==2 and cas[b]==2 and cas[c]==1:
print d,"|o|o|x|" def scrivi(): print " A B C \n - - - "
griglia(0,1,2,1)
print " - - - "
griglia(3,4,5,2)
print " - - - "
griglia(6,7,8,3)
print " - - - "
def controllo():
if (cas[0]==1 and cas[1]==1 and cas[2]==1) or (cas[3]==1 and cas[4]==1 and cas[5]==1) or (cas[6]==1 and cas[7]==1 and cas[8]==1) or (cas[0]==1 and cas[3]==1 and cas[6]==1) or (cas[1]==1 and cas[4]==1 and cas[7]==1) or (cas[2]==1 and cas[5]==1 and cas[8]==1) or (cas[0]==1 and cas[4]==1 and cas[8]==1) or (cas[2]==1 and cas[4]==1 and cas[6]==1):
print "il vincitore e ",pl_A,"!!!" scrivi() esc=raw_input("Vuoi uscire? (s/n)") if esc=="s": exit(1) else: cas[0]=0 cas[1]=0 cas[2]=0 cas[3]=0 cas[4]=0 cas[5]=0 cas[6]=0 cas[7]=0 cas[8]=0 scrivi()
elif (cas[0]==2 and cas[1]==2 and cas[2]==2) or (cas[3]==2 and cas[4]==2 and cas[5]==2) or (cas[6]==2 and cas[7]==2 and cas[8]==2) or (cas[0]==2 and cas[3]==2 and cas[6]==2) or (cas[1]==2 and cas[4]==2 and cas[7]==2) or (cas[2]==2 and cas[5]==2 and cas[8]==2) or (cas[0]==2 and cas[4]==2 and cas[8]==2) or (cas[2]==2 and cas[4]==2 and cas[6]==2):
print "il vincitore e il computer!!!" esc=raw_input("Vuoi uscire? (s/n)") if esc=="s": exit(1) else: cas[0]=0 cas[1]=0 cas[2]=0 cas[3]=0 cas[4]=0 cas[5]=0 cas[6]=0 cas[7]=0 cas[8]=0 scrivi()
elif cas[0]<>0 and cas[1]<>0 and cas[2]<>0 and cas[3]<>0 and cas[4]<>0 and cas[5]<>0 and cas[6]<>0 and cas[7]<>0 and cas[8]<>0:
print "partita finita in parita"
esc=raw_input("Vuoi uscire? (s/n)") if esc=="s": exit(1) else: cas[0]=0 cas[1]=0 cas[2]=0 cas[3]=0 cas[4]=0 cas[5]=0 cas[6]=0 cas[7]=0 cas[8]=0 scrivi()
def pl_a():
print pl_A,",quale casella vuoi usare?"
cas1=raw_input("")
if cas1=="A1" and cas[0]==0:
cas[0]=1
elif cas1=="B1" and cas[1]==0:
cas[1]=1
elif cas1=="C1" and cas[2]==0:
cas[2]=1
elif cas1=="A2" and cas[3]==0:
cas[3]=1
elif cas1=="B2" and cas[4]==0:
cas[4]=1
elif cas1=="C2" and cas[5]==0:
cas[5]=1
elif cas1=="A3" and cas[6]==0:
cas[6]=1
elif cas1=="B3" and cas[7]==0:
cas[7]=1
elif cas1=="C3" and cas[8]==0:
cas[8]=1
else:
print "input non valido"
pl_a()
def computer(): if (cas[1]==2 and cas[2]==2) or (cas[3]==2 and cas[6]==2) or (cas[4]==2 and cas[8]==2): cas[0]=2 elif (cas[4]==2 and cas[7]==2) or (cas[0]==2 and cas[2]==2): cas[1]=2 elif (cas[0]==2 and cas[1]==2) or (cas[5]==1 and cas[8]==2) or (cas[4]==1 and cas[6]==2): cas[2]=2 elif (cas[0]==2 and cas[6]==2) or (cas[4]==2 and cas[5]==2): cas[3]=2 elif (cas[0]==2 and cas[8]==2) or (cas[2]==1 and cas[6]==2) or (cas[1]==2 and cas[7]==2) or (cas[3]==2 and cas[5]==2): cas[4]=2 elif (cas[3]==2 and cas[4]==2) or (cas[2]==2 and cas[8]==2): cas[5]=2 elif (cas[0]==2 and cas[3]==2) or (cas[7]==2 and cas[8]==2) or (cas[4]==2 and cas[2]==2): cas[6]=2 elif (cas[4]==2 and cas[1]==2) or (cas[6]==2 and cas[8]==2): cas[7]=2 elif (cas[6]==2 and cas[7]==2) or (cas[5]==2 and cas[2]==2) or (cas[4]==2 and cas[0]==2): cas[8]=2 elif (cas[1]==1 and cas[2]==1) or (cas[3]==1 and cas[6]==1) or (cas[4]==1 and cas[8]==1): cas[0]=2 elif (cas[4]==1 and cas[7]==1) or (cas[0]==1 and cas[2]==1): cas[1]=2 elif (cas[0]==1 and cas[1]==1) or (cas[5]==1 and cas[8]==1) or (cas[4]==1 and cas[6]==1): cas[2]=2 elif (cas[0]==1 and cas[6]==1) or (cas[4]==1 and cas[5]==1): cas[3]=2 elif (cas[0]==1 and cas[8]==1) or (cas[2]==1 and cas[6]==1) or (cas[1]==1 and cas[7]==1) or (cas[3]==1 and cas[5]==1): cas[4]=2 elif (cas[3]==1 and cas[4]==1) or (cas[2]==1 and cas[8]==1): cas[5]=2 elif (cas[0]==1 and cas[3]==1) or (cas[7]==1 and cas[8]==1) or (cas[4]==1 and cas[2]==1): cas[6]=2 elif (cas[4]==1 and cas[1]==1) or (cas[6]==1 and cas[8]==1): cas[7]=2 elif (cas[6]==1 and cas[7]==1) or (cas[5]==1 and cas[2]==1) or (cas[4]==1 and cas[0]==1): cas[8]=2 else: case=random.randint(0,8) if cas[case]==0: cas[case]=2 else: computer()
pl_A=raw_input("giocatore A, scrivi il tuo nome:")
if pl_A=="darkphantom":
cas[0]=1 cas[1]=1 cas[2]=1 cas[3]=1 cas[4]=1 cas[5]=1 cas[6]=1 cas[7]=1 cas[8]=1 controllo() scrivi()
while 1:
pl_a()
controllo()
computer()
scrivi()
controllo()
è molto arcaico, ma funge abbastanza qualcuno mi sa spiegare perchè a volte il computer semplicemente non risponde? grazie | |
| | | darkjoker Admin
Numero di messaggi : 813 Data d'iscrizione : 30.07.07
| Titolo: Re: [gioco] tris2.0 Ven Gen 25, 2008 3:17 pm | |
| questa è la versione di un membro di forumhacker...: - Codice:
-
# # # Nome: Tris.py # Autore: Riovandaino # Data: 24/01/08 # Versione: 0.1 # Descrizione: Script per giocare a tris 1 VS 1 o 1 VS CPU #
import random
# FUNZIONI -----------------------------------------------------------------------
def Scacchiera(Caselle): # Questa funzione aggiorna la posizione sulla schacchiera print "" print " ",Caselle[0]," | ",Caselle[1]," | ",Caselle[2] print "-----------------" print " ",Caselle[3]," | ",Caselle[4]," | ",Caselle[5] print "-----------------" print " ",Caselle[6]," | ",Caselle[7]," | ",Caselle[8] print ""
def CheckVincita(Caselle): # Questa funzione ritorna 1 o -1 se qualcuno ha vinto altrimenti 0 if Caselle[0] == 'X' and Caselle[1] == 'X' and Caselle[2] == 'X': return 1 if Caselle[3] == 'X' and Caselle[4] == 'X' and Caselle[5] == 'X': return 1 if Caselle[6] == 'X' and Caselle[7] == 'X' and Caselle[8] == 'X': return 1 if Caselle[0] == 'X' and Caselle[3] == 'X' and Caselle[6] == 'X': return 1 if Caselle[1] == 'X' and Caselle[4] == 'X' and Caselle[7] == 'X': return 1 if Caselle[2] == 'X' and Caselle[5] == 'X' and Caselle[8] == 'X': return 1 if Caselle[0] == 'X' and Caselle[4] == 'X' and Caselle[8] == 'X': return 1 if Caselle[2] == 'X' and Caselle[4] == 'X' and Caselle[6] == 'X': return 1
if Caselle[0] == 'O' and Caselle[1] == 'O' and Caselle[2] == 'O': return -1 if Caselle[3] == 'O' and Caselle[4] == 'O' and Caselle[5] == 'O': return -1 if Caselle[6] == 'O' and Caselle[7] == 'O' and Caselle[8] == 'O': return -1 if Caselle[0] == 'O' and Caselle[3] == 'O' and Caselle[6] == 'O': return -1 if Caselle[1] == 'O' and Caselle[4] == 'O' and Caselle[7] == 'O': return -1 if Caselle[2] == 'O' and Caselle[5] == 'O' and Caselle[8] == 'O': return -1 if Caselle[0] == 'O' and Caselle[4] == 'O' and Caselle[8] == 'O': return -1 if Caselle[2] == 'O' and Caselle[4] == 'O' and Caselle[6] == 'O': return -1
return 0
def CPU(Caselle): # Funzione per l' inserimento di una mossa casuale da parte del pc riuscito = 0 while riuscito == 0: mossa = random.randint(0,8) if Caselle[mossa] == " ": riuscito = 1 return mossa
def Player(Caselle): # Funzione per l' inserimento di una mossa da parte dell' utente riuscito = 0 while riuscito == 0: mossa = int(raw_input("Inserisci un numero da 1 a 9 per identificare una casella della scacchiera: ")) - 1 if mossa < 0 or mossa > 10 or Caselle[mossa] <> " ": print "Il valore immesso supera il range prestabilito, oppure la casella e' gia' occupata." else: riuscito = 1 return mossa
# -------------------M A I N------------------
Caselle = [" "," "," "," "," "," "," "," "," "] print "" print " T R I S " print "" print "Inserisci: " print "" print "1 per giocare contro la CPU " print "2 per giocare 1 VS 1 ", sceltagame = int(raw_input()) if sceltagame == 1: cpu = 1 player = 0 i = 0 while CheckVincita(Caselle) == 0: i += 1 if i > 9: break if cpu == 1: print "" print "Ecco la mossa del computer: " mossa = CPU(Caselle) Caselle[mossa] = 'X' print "" Scacchiera(Caselle) else: print "" print "A te la mossa ora: " mossa = Player(Caselle) Caselle[mossa] = 'O' print "" Scacchiera(Caselle) if cpu == 1: cpu = 0 player = 1 else: cpu = 1 plyer = 0 if CheckVincita(Caselle) == 1: print "Ha vinto la CPU!!!" elif CheckVincita(Caselle) == -1: print "Ha vinto il giocatore umano!!!" else: print "Pareggio!" elif sceltagame == 2: player1 = 1 player2 = 0 i = 0 while CheckVincita(Caselle) == 0: i += 1 if i > 9: break print i," giocata: " if player1 == 1: print "" print "La mossa al primo giocatore: " mossa = Player(Caselle) Caselle[mossa] = 'X' print "" Scacchiera(Caselle) else: print "" print "Ora tocca al secondo giocatore: " mossa = Player(Caselle) Caselle[mossa] = 'O' print "" Scacchiera(Caselle) if player1 == 1: player1 = 0 player2 = 1 else: player2 = 0 player1 = 1 if CheckVincita(Caselle) == 1: print "Ha vinto il primo giocatore!!!" elif CheckVincita(Caselle) == -1: print "Ha vinto il secondo giocatore!!!" else: print "Pareggio!"
.. | |
| | | darkphantom hack-member
Numero di messaggi : 398 Data d'iscrizione : 03.09.07
| Titolo: Re: [gioco] tris2.0 Ven Gen 25, 2008 5:10 pm | |
| temo di aver capito dove sta il problema... mi sa che ho sbagliato un po' con i numeri dell'array... quando posso correggo | |
| | | Contenuto sponsorizzato
| Titolo: Re: [gioco] tris2.0 | |
| |
| | | | [gioco] tris2.0 | |
|
Argomenti simili | |
|
| Permessi in questa sezione del forum: | Non puoi rispondere agli argomenti in questo forum.
| |
| |
| |