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