Xhack
Vuoi reagire a questo messaggio? Crea un account in pochi click o accedi per continuare.
Xhack

Un forum dedicato all'hacking
 
IndiceIndice  PortalePortale  CercaCerca  Ultime immaginiUltime immagini  RegistratiRegistrati  Accedi  

 

 [gioco] tris2.0

Andare in basso 
2 partecipanti
AutoreMessaggio
darkphantom
hack-member
hack-member
darkphantom


Numero di messaggi : 398
Data d'iscrizione : 03.09.07

[gioco] tris2.0 Empty
MessaggioTitolo: [gioco] tris2.0   [gioco] tris2.0 EmptyGio 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
Torna in alto Andare in basso
darkjoker
Admin
Admin
darkjoker


Numero di messaggi : 813
Data d'iscrizione : 30.07.07

[gioco] tris2.0 Empty
MessaggioTitolo: Re: [gioco] tris2.0   [gioco] tris2.0 EmptyVen 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!"
   
..
Torna in alto Andare in basso
darkphantom
hack-member
hack-member
darkphantom


Numero di messaggi : 398
Data d'iscrizione : 03.09.07

[gioco] tris2.0 Empty
MessaggioTitolo: Re: [gioco] tris2.0   [gioco] tris2.0 EmptyVen 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
Torna in alto Andare in basso
Contenuto sponsorizzato





[gioco] tris2.0 Empty
MessaggioTitolo: Re: [gioco] tris2.0   [gioco] tris2.0 Empty

Torna in alto Andare in basso
 
[gioco] tris2.0
Torna in alto 
Pagina 1 di 1
 Argomenti simili
-
» [gioco]semplice gioco in python
» [gioco] tris
» Gioco delle 8 regine
» [gioco]carta, sasso, forbici

Permessi in questa sezione del forum:Non puoi rispondere agli argomenti in questo forum.
Xhack :: Programmazione :: Python-
Vai verso: