コード例 #1
0
ファイル: test_face.py プロジェクト: andfranklin/ErnosCube
    def rotate_ccw_test(self):
        ccw_sticker_mat = []

        s00 = Sticker(FaceEnum.FRONT, OrientEnum.UP)
        s01 = Sticker(FaceEnum.RIGHT, OrientEnum.RIGHT)
        s02 = Sticker(FaceEnum.BACK, OrientEnum.DOWN)
        ccw_sticker_mat.append([s00, s01, s02])

        s10 = Sticker(FaceEnum.LEFT, OrientEnum.LEFT)
        s11 = Sticker(FaceEnum.UP, OrientEnum.UP)
        s12 = Sticker(FaceEnum.DOWN, OrientEnum.RIGHT)
        ccw_sticker_mat.append([s10, s11, s12])

        s20 = Sticker(FaceEnum.FRONT, OrientEnum.DOWN)
        s21 = Sticker(FaceEnum.RIGHT, OrientEnum.LEFT)
        s22 = Sticker(FaceEnum.BACK, OrientEnum.UP)
        ccw_sticker_mat.append([s20, s21, s22])

        ccw_comp_face = Face(*N_and_flatten(ccw_sticker_mat))

        sticker_mat = []

        sticker_row = [s20, s10, s00]
        sticker_mat.append([deepcopy(s).rotate_cw() for s in sticker_row])

        sticker_row = [s21, s11, s01]
        sticker_mat.append([deepcopy(s).rotate_cw() for s in sticker_row])

        sticker_row = [s22, s12, s02]
        sticker_mat.append([deepcopy(s).rotate_cw() for s in sticker_row])

        comp_face = Face(*N_and_flatten(sticker_mat))

        assert (comp_face.rotate_ccw() == ccw_comp_face
                ), f"failed for {str(comp_face)}\n{repr(comp_face)}"
コード例 #2
0
def gen_c2_minus_c4_faces_4():
    stickers = [
        [
            Sticker(FaceEnum.BACK, OrientEnum.DOWN),
            Sticker(FaceEnum.FRONT, OrientEnum.UP),
            Sticker(FaceEnum.FRONT, OrientEnum.UP),
            Sticker(FaceEnum.BACK, OrientEnum.DOWN),
        ],
        [
            Sticker(FaceEnum.BACK, OrientEnum.DOWN),
            Sticker(FaceEnum.FRONT, OrientEnum.UP),
            Sticker(FaceEnum.FRONT, OrientEnum.UP),
            Sticker(FaceEnum.BACK, OrientEnum.DOWN),
        ],
        [
            Sticker(FaceEnum.BACK, OrientEnum.UP),
            Sticker(FaceEnum.FRONT, OrientEnum.DOWN),
            Sticker(FaceEnum.FRONT, OrientEnum.DOWN),
            Sticker(FaceEnum.BACK, OrientEnum.UP),
        ],
        [
            Sticker(FaceEnum.BACK, OrientEnum.UP),
            Sticker(FaceEnum.FRONT, OrientEnum.DOWN),
            Sticker(FaceEnum.FRONT, OrientEnum.DOWN),
            Sticker(FaceEnum.BACK, OrientEnum.UP),
        ],
    ]
    return just(Face(4, flatten(stickers)))
コード例 #3
0
def gen_orthogonal(n, i):
    sticker_matrix = [[
        Sticker(FaceEnum.FRONT, OrientEnum.UP) for _ in range(n)
    ] for _ in range(i)]
    for _ in range(n - i):
        sticker_matrix.append(
            [Sticker(FaceEnum.BACK, OrientEnum.DOWN) for _ in range(n)])
    return just(Face(n, flatten(sticker_matrix)))
コード例 #4
0
 def face(self, stickers):
     s1, s2, s3 = stickers
     cs = Sticker(FaceEnum.RIGHT, OrientEnum.LEFT)
     face_stickers = []
     face_stickers.append([cs, s1, cs])
     face_stickers.append([s1, s2, s3])
     face_stickers.append([cs, s3, cs])
     return Face(face_stickers)
コード例 #5
0
ファイル: test_face.py プロジェクト: andfranklin/ErnosCube
    def stickers_and_face(self):
        s1 = Sticker(FaceEnum.FRONT, OrientEnum.UP)
        s2 = Sticker(FaceEnum.BACK, OrientEnum.RIGHT)
        s3 = Sticker(FaceEnum.LEFT, OrientEnum.DOWN)
        stickers = [s1, s2, s3]

        cs = Sticker(FaceEnum.RIGHT, OrientEnum.LEFT)
        face_stickers = []
        face_stickers.append([cs, s1, cs])
        face_stickers.append([s1, s2, s3])
        face_stickers.append([cs, s3, cs])
        return stickers, Face(*N_and_flatten(face_stickers))
コード例 #6
0
ファイル: test_face.py プロジェクト: andfranklin/ErnosCube
 def front_face(self):
     sticker_matrix = []
     for i in range(3):
         row = [Sticker(FaceEnum.FRONT, OrientEnum.UP) for _ in range(3)]
         sticker_matrix.append(row)
     return Face(*N_and_flatten(sticker_matrix))
コード例 #7
0
ファイル: test_face.py プロジェクト: andfranklin/ErnosCube
 def construction_test(self, sticker_matrix):
     Face(*N_and_flatten(sticker_matrix))
コード例 #8
0
def face_from_sticker_matrix(sticker_matrix):
    return Face(*N_and_flatten(sticker_matrix))