Muchas gracias! Aprendí mucho
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú
func setter_matrix(x, y): #a esta funcion la llamo desde un for de afuera para setear numeros de 1 a 6 y la entrada(5) y salida(6)
if x == 0 and entrada_creada == false:
randomize()
var n = randi()%5+1
if n == 5:
entrada_creada = true
if y == WIDTH-1:
entrada_creada = true
return 5
return n
elif x == 3 and salida_creada == false:
randomize()
var n2 = randi()%6+1
if n2 == 6:
salida_creada = true
if y == WIDTH-1:
entrada_creada = true
return 6
if n2 == 5:
return 1
return n2
else:
return randi()%4+1
#Funcion para asegurar que haya: Entrada, Salida y 2/3
func corregir_matrix(matrix):
var encontrado2
var entrada
var bajada
for x in range(WIDTH):
encontrado2 = false
for y in range(HEIGHT):
if x == 0:
if matrix[x][y] == 5:
entrada = y
if x != HEIGHT -1 :
if (matrix[x][y] == 2) and (encontrado2 == false):
matrix[x+1][y] = 3
encontrado2 = true
bajada = y
elif matrix[x][y] == 2 and encontrado2 == true:
matrix[x][y] = 1
elif y == WIDTH-1 and encontrado2 == false:
if x == 0:
if entrada + 2 < WIDTH:
matrix[x][entrada+2] = 2
matrix[x+1][entrada+2] = 3
bajada = entrada + 2
else:
matrix[x][entrada-2] = 2
matrix[x+1][entrada-2] = 3
bajada = entrada - 2
else:
if bajada + 2 < WIDTH:
matrix[x][bajada+2] = 2
matrix[x+1][bajada+2] = 3
bajada = bajada + 2
else:
matrix[x][bajada-2] = 2
matrix[x+1][bajada-2] = 3
bajada = bajada - 2
else:
if matrix[x][y] == 6:
return matrix
for y in range(HEIGHT):
if matrix[3][y] == 3:
if y + 2 < WIDTH:
matrix[3][y+2] = 6
return matrix
else:
matrix[3][y-2] = 6
return matrix
return matrix
#Funcion para asegurar que haya unos entre 2/3/5/6
func corregir_matriz_2(matrix):
var entrada
var salida
var bajada1
var bajada2
var aux
for x in range(WIDTH):
for y in range(HEIGHT):
if x == 0:
if matrix[x][y] == 2: ###
bajada1 = y
if matrix[x][y] == 5:
entrada = y
elif x != 0 and x != HEIGHT -1 :
if matrix[x][y] == 2: ###
bajada1 = y
elif matrix[x][y] == 3 and matrix[x-1][y] == 2:
bajada2 = y
else:
if matrix[x][y] == 3 and matrix[x-1][y] == 2:
bajada2 = y
elif matrix[x][y] == 6:
salida = y
if x == 0:
if bajada1 < entrada:
aux = entrada - (bajada1)
for y in range(aux):
if matrix[x][bajada1+y] == 4: #Antes: bajada+1 Ahora: bajada+y
matrix[x][bajada1+y] = 1 #Si era + 1 siempre reemplazaba en el mismo lugar
else:
aux = bajada1 - (entrada)
for y in range(aux):
if matrix[x][entrada+y] == 4:
matrix[x][entrada+y] = 1
elif x != 0 and x != HEIGHT -1 :
if bajada1 < bajada2:
aux = bajada2 - (bajada1)
for y in range(aux):
if matrix[x][bajada1+y] == 4:
matrix[x][bajada1+y] = 1
else:
aux = bajada1 - (bajada2)
for y in range(aux):
if matrix[x][bajada2+y] == 4:
matrix[x][bajada2+y] = 1
else:
if bajada2 < salida:
aux = salida - (bajada2)
for y in range(aux):
if matrix[x][bajada2+y] == 4:
matrix[x][bajada2+y] = 1
else:
aux = bajada2 - (salida)
for y in range(aux):
if matrix[x][salida+y] == 4:
matrix[x][salida+y] = 1
return matrix