Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: braulio-- en 11 Abril 2009, 20:47 pm



Título: [Python]3 en raya y mini proyecto.
Publicado por: braulio-- en 11 Abril 2009, 20:47 pm
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
  1. ##--------> Proyecto 3 en raya para python <--------##
  2. #--------->           braulio23            <--------##
  3. import os,random
  4. longitud = "0"
  5. latitud = "0"
  6. combinacion=["xxx","ooo"]
  7.  
  8. fichas = [[" "," "," "],[" "," "," "],[" "," "," "]]
  9. def printtablero():
  10.    os.system("cls")
  11.    for i in range(7):
  12.        print " "
  13.  
  14.    print "                        "+fichas[0][0]+"    |    "+fichas[0][1]+"    |    "+fichas[0][2]
  15.    print "                        -----+---------+------"
  16.    print "                        "+fichas[1][0]+"    |    "+fichas[1][1]+"    |    "+fichas[1][2]
  17.    print "                        -----+---------+------"
  18.    print "                        "+fichas[2][0]+"    |    "+fichas[2][1]+"    |    "+fichas[2][2]
  19.    for i in range(5):
  20.        print ""
  21.    return 0
  22. def ponerficha(estilo,longitud,latitud,quien=0):
  23.    if longitud>3 or latitud>3:
  24.        print "Numero no permitido"
  25.        raw_input()
  26.        return 1
  27.    if fichas[longitud][latitud]==" ":
  28.        fichas[longitud][latitud] = estilo
  29.        return 0
  30.    else :
  31.        if quien==0:
  32.            printtablero()
  33.            print "Esa casilla ya esta ocupada"
  34.            raw_input()
  35.            return 1
  36.        else :
  37.            return 1
  38. def asignar(quien=0):
  39.    global longitud
  40.    global latitud
  41.    if quien==0:
  42.  
  43.        longitud=raw_input("Coordenada X : ")
  44.        latitud=raw_input("Coordenada Y : ")
  45.    else :
  46.        longitud = random.randint(0,2)
  47.        latitud = random.randint(0,2)
  48.  
  49.  
  50.    return 0
  51. def comprobar(quien=0):
  52.  
  53.        if fichas[0][0]+fichas[0][1]+fichas[0][2]==combinacion[quien]:
  54.            alertar(quien)
  55.        elif fichas[0][0]+fichas[1][0]+fichas[2][0]==combinacion[quien]:
  56.            alertar(quien)
  57.        elif fichas[0][0]+fichas[1][1]+fichas[2][2]==combinacion[quien]:
  58.            alertar(quien)
  59.        elif fichas[1][0]+fichas[1][1]+fichas[1][2]==combinacion[quien]:
  60.            alertar(quien)
  61.        elif fichas[2][0]+fichas[1][1]+fichas[0][2]==combinacion[quien]:
  62.            alertar(quien)
  63.        elif fichas[0][1]+fichas[1][1]+fichas[2][1]==combinacion[quien]:
  64.            alertar(quien)
  65.        elif fichas[0][2]+fichas[1][2]+fichas[2][2]==combinacion[quien]:
  66.            alertar(quien)
  67.        return 0
  68. def alertar(quien):
  69.    if quien==0:
  70.        print "Estupendo !!! Has ganado!!!!"
  71.        raw_input()
  72.  
  73.    else :
  74.        print "Muy mal !!! Has perdido !!!"
  75.        raw_input()
  76.    exit(1)    
  77.  
  78.  
  79.  
  80.  
  81. while 1:
  82.  
  83.  printtablero()
  84.  asignar()
  85.  while ponerficha("x",int(longitud)-1,int(latitud)-1)==1:
  86.      printtablero()
  87.      asignar()  
  88.  printtablero()
  89.  comprobar()
  90.  raw_input()
  91.  asignar(1)
  92.  
  93.  while ponerficha("o",int(longitud),int(latitud),1)==1:
  94.      asignar(1)
  95.  comprobar(1)    
  96.  
  97.  
  98.  
  99.  
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.


Título: Re: [Python]3 en raya y mini proyecto.
Publicado por: Avi1 en 4 Junio 2018, 04:01 am
Oye lo ejecuto y me aparece esto:

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

Que pasara?


Título: Re: [Python]3 en raya y mini proyecto.
Publicado por: tincopasan en 4 Junio 2018, 23:22 pm
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.