Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: diegott en 12 Febrero 2016, 06:25 am



Título: python arreglos con numpy
Publicado por: diegott en 12 Febrero 2016, 06:25 am
Hola con todos disculpen soy nuevo y no sabia donde publicar, estoy con un problema que me rodea la cabeza espero me puedan ayudar.
tengo una matriz de 10x10 llena con numeros del 1 al 4 la cuestion es que yo le doy la posisicion donde quiero que se eliminen numeros que se encuentren juntos(numeros iguales arriba abajo izquierda derecha), lo tengo pero ahora si tengo una posicion en la cual no hay numero repetidos solo deberia retornarme la matriz sin ningun cambio esa parte no me sale dejo un estracto de codigo:

Código
  1. import numpy
  2. cas=0#cuenta los casilleros cambiados por ceros
  3.  
  4.  
  5. tablero=numpy.random.random_integers(1,4,(10,10))#me genera el tablero
  6.  
  7.  
  8. def isInside(i,j):
  9.    return (i >= 0 and i <10) and (j >= 0 and j < 10)
  10.  
  11.  
  12. def veri_amigos(i,j,valor):
  13.    if (not isInside(i,j)) and valor==tablero[i+1][j]:
  14.         eliminar_casilla(i,j,valor)
  15.    else:
  16.        return tablero
  17.  
  18.  
  19.  
  20. def eliminar_casilla(i,j,valor): #funcion recursiva que me permite ubicar los casilleros amigos a eliminar
  21.    global cas
  22.    if tablero[i][j] != valor:
  23.        return
  24.    tablero[i][j] = 0
  25.    cas+= 1
  26.  
  27.    eliminar_casilla(i+1,j,valor)
  28.    eliminar_casilla(i-1,j,valor)
  29.    eliminar_casilla(i,j+1,valor)
  30.    eliminar_casilla(i,j-1,valor)
  31.  
  32. def imprimir_tablero():
  33.    for i in range(0,10):
  34.        if (i+1) < 10:
  35.            print(str(i+1)+"  | "+str(tablero[i]))
  36.        else:
  37.            print(str(i+1)+" | "+str(tablero[i]))
  38.  
  39.    print("   ",end="")
  40.    for i in range(0,23):
  41.        print("-",end="")
  42.    print(" ")
  43.    print("      ",end="")
  44.    for i in range(0,10):
  45.        print(str(i+1),end=" ")
  46.    print(" ",end="\n\n")
  47.  
  48. imprimir_tablero()
  49.  
  50.  
  51. num_fila=int(input("ingrese el numero de la fila:"))
  52. num_col=int(input("ingrese el numero de la columna:"))
  53.  
  54.  
  55. veri_amigos(num_fila-1,num_col-1,tablero[num_fila-1][num_col-1])
  56.  
  57.  
  58. imprimir_tablero()
  59.  

Mod: Los títulos no deben ir en mayúsculas y los códigos deben ir en etiquetas GeSHi

AUXILIO GRACIAS
porciacaso mi correo prohibido publicar correos