[Python]3 en raya y mini proyecto.

Iniciado por braulio--, 11 Abril 2009, 20:47 PM

0 Miembros y 1 Visitante están viendo este tema.

braulio--

He hecho un 3 en raya en python. Es para windows, pero para linux solo hay que cambiar "cls" por "clear".Es para humano vs ordenador.
El ordenador pone las fichas aleatoriamente.
Código (python) [Seleccionar]

##--------> Proyecto 3 en raya para python <--------##
#--------->           braulio23            <--------##
import os,random
longitud = "0"
latitud = "0"
combinacion=["xxx","ooo"]

fichas = [[" "," "," "],[" "," "," "],[" "," "," "]]
def printtablero():
    os.system("cls")
    for i in range(7):
        print " "
       
    print "                        "+fichas[0][0]+"    |    "+fichas[0][1]+"    |    "+fichas[0][2]
    print "                        -----+---------+------"
    print "                        "+fichas[1][0]+"    |    "+fichas[1][1]+"    |    "+fichas[1][2]
    print "                        -----+---------+------"
    print "                        "+fichas[2][0]+"    |    "+fichas[2][1]+"    |    "+fichas[2][2]
    for i in range(5):
        print ""
    return 0
def ponerficha(estilo,longitud,latitud,quien=0):
    if longitud>3 or latitud>3:
        print "Numero no permitido"
        raw_input()
        return 1
    if fichas[longitud][latitud]==" ":
        fichas[longitud][latitud] = estilo
        return 0
    else :
        if quien==0:
            printtablero()
            print "Esa casilla ya esta ocupada"
            raw_input()
            return 1
        else :
            return 1
def asignar(quien=0):
    global longitud
    global latitud
    if quien==0:
       
        longitud=raw_input("Coordenada X : ")
        latitud=raw_input("Coordenada Y : ")
    else :
        longitud = random.randint(0,2)
        latitud = random.randint(0,2)
       

    return 0
def comprobar(quien=0):
   
        if fichas[0][0]+fichas[0][1]+fichas[0][2]==combinacion[quien]:
            alertar(quien)
        elif fichas[0][0]+fichas[1][0]+fichas[2][0]==combinacion[quien]:
            alertar(quien)
        elif fichas[0][0]+fichas[1][1]+fichas[2][2]==combinacion[quien]:
            alertar(quien)
        elif fichas[1][0]+fichas[1][1]+fichas[1][2]==combinacion[quien]:
            alertar(quien)
        elif fichas[2][0]+fichas[1][1]+fichas[0][2]==combinacion[quien]:
            alertar(quien)
        elif fichas[0][1]+fichas[1][1]+fichas[2][1]==combinacion[quien]:
            alertar(quien)
        elif fichas[0][2]+fichas[1][2]+fichas[2][2]==combinacion[quien]:
            alertar(quien)
        return 0
def alertar(quien):
    if quien==0:
        print "Estupendo !!! Has ganado!!!!"
        raw_input()
       
    else :
        print "Muy mal !!! Has perdido !!!"
        raw_input()
    exit(1)   
       
   
   
   
while 1:
   
  printtablero()
  asignar()
  while ponerficha("x",int(longitud)-1,int(latitud)-1)==1:
      printtablero()
      asignar()   
  printtablero()
  comprobar()
  raw_input()
  asignar(1)
 
  while ponerficha("o",int(longitud),int(latitud),1)==1:
      asignar(1)
  comprobar(1)   
     
 


El miniproyecto es para aprender y se puede unir todo el mundo que quiera, se trata de hacer el juego online.
Quien quiera participar me mande un mp.

Avi1

Oye lo ejecuto y me aparece esto:

TypeError: '>' not supported between instances of 'NoneType' and 'int'

Que pasara?

tincopasan

1) ¿has visto la fecha del post? me causa gracia es anterior a que me inscribiera!
2) mirando superficialmente no veo error, por lo tanto la preguntas son:
a) ¿lo ejecutas en python 2.7 o 3.x?
b) ¿se inicia o ni siquiera eso?
c)¿estás seguro de ingresar números(1 a 3)?
d) ¿en qué entorno lo corres? un ide, consola

si das más pistas te ayudarán más fácil.
Por otro lado, si estás aprendiendo python no hagas lo que la mayoría, usan scripts ya hechos sin entender lo mínimo del lenguaje.
Saludos.