Module scramble
[hide private]
[frames] | no frames]

Source Code for Module scramble

 1  #-*- coding: iso-8859-15 -*- 
 2   
 3  """ 
 4  [scramble.py] 
 5  Modulo que devuelve un algoritmo de desorden del cubo. 
 6  """ 
 7   
 8  __author__ = "Victor Ramirez de la Corte" 
 9  __date__ = "02/04/2009" 
10  __version__ = "PyRubik v0.5" 
11   
12  import random  
13  from language import * 
14   
15 -def estaEntre(m, n, *var):
16 """var* esta entre los puntos m(inclusive) e n(no inclusive), m < n""" 17 variables = var 18 for v in variables: 19 if m <= v and v < n: 20 b = True 21 else: 22 b = False 23 break 24 return b
25
26 -class Scramble:
27 """Clase que devuelve un algoritmo de desorden del cubo"""
28 - def scramble(self):
29 """Función que devuelve un algoritmo de desorden del cubo""" 30 #prevX--> X movimientos anteriores, Vinicial 100 para que no de errores 31 prev1 = 100 32 prev2 = 100 33 #solStr, solList--> cadena solucion, lista solucion 34 solStr = "" 35 solList = [] 36 movs = lll.movs 37 38 #bucle hasta conseguir 25 movimientos 39 while len(solList) < 25: 40 rand = random.randint(0, 17) 41 #hacemos que no repita misma cara 42 if estaEntre(0, 3, rand, prev1) or estaEntre(3, 6, rand, prev1): 43 pass 44 elif estaEntre(6, 9, rand, prev1) or estaEntre(9, 12, rand, prev1): 45 pass 46 elif estaEntre(12,15,rand,prev1) or estaEntre(15, 18, rand, prev1): 47 pass 48 #evitamos cara + cara opuesta + cara 49 elif estaEntre(0, 6, rand, prev1, prev2): 50 pass 51 elif estaEntre(6, 12, rand, prev1, prev2): 52 pass 53 elif estaEntre(12, 18, rand, prev1, prev2): 54 pass 55 else: 56 prev2 = prev1 57 prev1 = rand 58 solList.append(movs[rand]) 59 60 for n in solList: 61 solStr += n + " " 62 63 return solStr
64