Пример #1
0
def getTimes11400Cubes():
    liste = []
    with open(JEU_TEST) as data_file: #on parse le jeu de test JSON
            data = json.load(data_file)
            tests = data["cubes"]
            for test in tests: # on parcours tout les cubes
                tmps1=time.clock()
                b,c = lecture_cube(test)
                c,mouv = algo_cfop(c) # on fais l'algo
                tmps2=time.clock()
                liste.append(tmps2-tmps1)
    return liste
Пример #2
0
def getTimes11400Cubes():
    liste = []
    with open(JEU_TEST) as data_file:  #on parse le jeu de test JSON
        data = json.load(data_file)
        tests = data["cubes"]
        for test in tests:  # on parcours tout les cubes
            tmps1 = time.clock()
            b, c = lecture_cube(test)
            c, mouv = algo_cfop(c)  # on fais l'algo
            tmps2 = time.clock()
            liste.append(tmps2 - tmps1)
    return liste
Пример #3
0
    def cube_testRotation(self):  # le test de la rotation rot

        for cube, moves in jeuTest.items():  # pour tous les cubes
            result = moves[rot]  # le résulat attendu
            err, c = lecture_cube(cube)  # on lit le cube

            self.assertFalse(err)

            # on applique la rotation
            rotation = getattr(c, "rot_" + rot)
            rotation()

            # on check si c'est bien ce qui est attendu
            line = c.to_line(colors=False)
            self.assertEqual(line, result, "rot_" + rot + " (cube " + cube + "): " + line + " != " + result)
Пример #4
0
    def cube_testRotation(self):  #le test de la rotation rot

        for cube, moves in jeuTest.items():  #pour tous les cubes
            result = moves[rot]  #le résulat attendu
            err, c = lecture_cube(cube)  #on lit le cube

            self.assertFalse(err)

            #on applique la rotation
            rotation = getattr(c, 'rot_' + rot)
            rotation()

            #on check si c'est bien ce qui est attendu
            line = c.to_line(colors=False)
            self.assertEqual(
                line, result, 'rot_' + rot + ' (cube ' + cube + '): ' + line +
                ' != ' + result)
Пример #5
0
def solve_full(cube_c54):
    """
    solve_full

    :Args:
        cube_c54    {String}     Le cube passé sous sa forme '54 facettes colorées'

    :Returns:
        ({String|None}, {None|List}, {None|Cube})
        (erreur, liste des mouvements, cube en entrée)
    """
    err, cube_lu = lecture_cube(cube_c54)
    if err:
        return err, None, None
    else:
        err, mouvements = algo_cfop(cube_lu.copy())
        return (err, None, None) if err \
            else (None, mouvements, cube_lu)
Пример #6
0
    def runTest(self):
        """Test de l'algo CFOP"""
        with open(JEU_TEST) as data_file: #on parse le jeu de test JSON
            data = json.load(data_file)
            cubes = data['cubes']

            error = False
            bugs = []

            for cube in cubes:
                err, c = lecture_cube(cube)
                if err:
                    raise Error("Erreur lecture_cube \n" + cube)
                err = algo_cfop(c)[0]
                if err:
                    bugs.append(cube)
                    error = True

            if error:
                for b in bugs:
                    print(b, "\n")

            self.assertFalse(error, "Certains cubes ne sont pas résolus")
Пример #7
0
from stats import moyenne
from algo import *
"""
Génération de stats sur la longueur de la solution
"""

JEU_TEST = 'tests/samples/liste-sample.json'

with open(JEU_TEST) as data_file:  #on parse le jeu de test JSON
    data = json.load(data_file)
    tests = data["cubes"]
    # dictionnaire pour stocker en clé : nbMouvement et
    #en valeur : Occurence sur les n tests
    listeNbMouvements = {}
    for test in tests:  # on parcours tout les cubes
        b, c = lecture_cube(test)
        c, mouv = algo_cfop(c)  # on fais l'algo
        # si le nombre de mouvements est deja dans la dictionnaire,
        # on ajoute 1 à son occurence
        if len(mouv) in listeNbMouvements:
            listeNbMouvements[len(mouv)] += 1
        else:
            listeNbMouvements[len(mouv)] = 1  # sinon on l'ajoute

listeX = []
listeY = []
# on "separe" le dictionnaire en deux liste correspondant aux clés et aux valeurs
for x, y in listeNbMouvements.items():
    listeX.append(x)
    listeY.append(y)
Пример #8
0
from algo import *

"""
Génération de stats sur la longueur de la solution
"""

JEU_TEST = 'tests/samples/liste-sample.json'

with open(JEU_TEST) as data_file: #on parse le jeu de test JSON
        data = json.load(data_file)
        tests = data["cubes"]
        # dictionnaire pour stocker en clé : nbMouvement et
        #en valeur : Occurence sur les n tests
        listeNbMouvements = {}
        for test in tests: # on parcours tout les cubes
            b,c = lecture_cube(test)
            c,mouv = algo_cfop(c) # on fais l'algo
            # si le nombre de mouvements est deja dans la dictionnaire,
            # on ajoute 1 à son occurence
            if len(mouv) in listeNbMouvements:
                listeNbMouvements[len(mouv)] += 1
            else:
                listeNbMouvements[len(mouv)] = 1 # sinon on l'ajoute

listeX = []
listeY = []
# on "separe" le dictionnaire en deux liste correspondant aux clés et aux valeurs
for x,y in listeNbMouvements.items():
    listeX.append(x)
    listeY.append(y)
Пример #9
0
                for x in mouvementsRestants])
            ) + '\n'
        )

        if 'moves' not in params:
            print(cube)
        else:
            #L'utilisateur a demandé de voir l'aide des mouvements
            print(aideMouvements(cube, m))
            print("Rotation : ", translate_mvt(m) +'\n\n')

        mouvementsDone.append(m)

        if 'auto' not in params:
            print('Press any key to continue . . .\n')
            newGetch()
        else:
            sleep(1 / speed)

if __name__ == '__main__':
    from lire_entree import lecture_cube
    cube = 'OGRBWYBGBGYYOYOWOWGRYOOOBGBRRYRBWWWRBWYGROWGRYBRGYWBOG'
    error, c = lecture_cube(cube)
    if error:
        raise Error(error)

    c0 = c.copy()

    mouvements = algo_cfop(c)

    tuto(c0, mouvements)
Пример #10
0
def getTimeDefaultCube():
    tmps1=time.clock()
    b,c = lecture_cube(DEFAULT_CUBE)
    c,mouv = algo_cfop(c) # on fais l'algo
    tmps2=time.clock()
    return tmps2-tmps1
Пример #11
0
def getTimeDefaultCube():
    tmps1 = time.clock()
    b, c = lecture_cube(DEFAULT_CUBE)
    c, mouv = algo_cfop(c)  # on fais l'algo
    tmps2 = time.clock()
    return tmps2 - tmps1