-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyraminx.py
More file actions
404 lines (386 loc) · 26.6 KB
/
pyraminx.py
File metadata and controls
404 lines (386 loc) · 26.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
import random
class Pyraminx:
# Initializes the matrix used for defining the master pyraminx.
def __init__(self):
self.redSide = [["R"],["R","R","R"],["R","R","R","R","R"],["R","R","R","R","R","R","R"]]
self.blueSide = [["B"],["B","B","B"],["B","B","B","B","B"],["B","B","B","B","B","B","B"]]
self.yellowSide = [["Y"],["Y","Y","Y"],["Y","Y","Y","Y","Y"],["Y","Y","Y","Y","Y","Y","Y"]]
self.greenSide = [["G"],["G","G","G"],["G","G","G","G","G"],["G","G","G","G","G","G","G"]]
def move(self, move):
moveList = {
"l": self.l,
"lI": self.lI,
"ll": self.ll,
"llI": self.llI,
"lll": self.lll,
"lllI": self.lllI,
"L": self.L,
"LI": self.LI,
"r": self.r,
"rI": self.rI,
"rr": self.rr,
"rrI": self.rrI,
"rrr": self.rrr,
"rrrI": self.rrrI,
"R": self.R,
"RI": self.RI,
"u": self.u,
"uI": self.uI,
"uu": self.uu,
"uuI": self.uuI,
"uuu": self.uuu,
"uuuI": self.uuuI,
"U": self.U,
"UI": self.UI,
"b": self.b,
"bI": self.bI,
"bb": self.bb,
"bbI": self.bbI,
"bbb": self.bbb,
"bbbI": self.bbbI,
"B": self.B,
"BI": self.BI,
"RF": self.RF,
"RFI": self.RFI,
"BF": self.BF,
"BFI": self.BFI,
"YF": self.YF,
"YFI": self.YFI,
"GF": self.GF,
"GFI": self.GFI
}
moveList[move]()
# Returns a random move object from all moves and appends it to an array.
def randomizePyraminx(self, num):
moves = ""
movesList = []
randomizer = {
"l": self.l,
"lI": self.lI,
"ll": self.ll,
"llI": self.llI,
"lll": self.lll,
"lllI": self.lllI,
"L": self.L,
"LI": self.LI,
"r": self.r,
"rI": self.rI,
"rr": self.rr,
"rrI": self.rrI,
"rrr": self.rrr,
"rrrI": self.rrrI,
"R": self.R,
"RI": self.RI,
"u": self.u,
"uI": self.uI,
"uu": self.uu,
"uuI": self.uuI,
"uuu": self.uuu,
"uuuI": self.uuuI,
"U": self.U,
"UI": self.UI,
"b": self.b,
"bI": self.bI,
"bb": self.bb,
"bbI": self.bbI,
"bbb": self.bbb,
"bbbI": self.bbbI,
"B": self.B,
"BI": self.BI,
"RF": self.RF,
"RFI": self.RFI,
"BF": self.BF,
"BFI": self.BFI,
"YF": self.YF,
"YFI": self.YFI,
"GF": self.GF,
"GFI": self.GFI
}
for i in range(num):
move, execute = random.choice(list(randomizer.items()))
moves += move + " "
movesList.append(execute)
print("Random Moves:", moves)
return movesList
def wrongPos(self):
total = 0
for piece in [(self.redSide, "R"), (self.blueSide, "B"), (self.greenSide, "G"), (self.yellowSide, "Y")]:
for i in range(4):
for j in range(len(piece[0][i])):
if piece[0][i][j] != piece[1]:
total += 1
return total
"""
Below defines all the moves implemented in the master pyraminx. All the moves deal with swapping positions in the matrix.
"""
def l(self):
self.greenSide[3][0], self.redSide[3][-1], self.yellowSide[3][0] = \
self.yellowSide[3][0], self.greenSide[3][0], self.redSide[3][-1]
def lI(self):
self.yellowSide[3][0], self.greenSide[3][0], self.redSide[3][-1]= \
self.greenSide[3][0], self.redSide[3][-1], self.yellowSide[3][0]
def ll(self):
(self.greenSide[2][0], self.greenSide[3][1], self.greenSide[3][2],
self.redSide[2][-1], self.redSide[3][4], self.redSide[3][5],
self.yellowSide[2][0], self.yellowSide[3][1], self.yellowSide[3][2]) =\
(self.yellowSide[3][2],self.yellowSide[3][1], self.yellowSide[2][0],
self.greenSide[3][2], self.greenSide[2][0], self.greenSide[3][1],
self.redSide[2][-1], self.redSide[3][5], self.redSide[3][4])
def llI(self):
(self.yellowSide[3][2],self.yellowSide[3][1], self.yellowSide[2][0],
self.greenSide[3][2], self.greenSide[2][0], self.greenSide[3][1],
self.redSide[2][-1], self.redSide[3][5], self.redSide[3][4])=\
(self.greenSide[2][0], self.greenSide[3][1], self.greenSide[3][2],
self.redSide[2][-1], self.redSide[3][4], self.redSide[3][5],
self.yellowSide[2][0], self.yellowSide[3][1], self.yellowSide[3][2])
def lll(self):
(self.greenSide[1][0], self.greenSide[2][1], self.greenSide[2][2], self.greenSide[3][3], self.greenSide[3][4],
self.redSide[1][-1], self.redSide[2][3], self.redSide[2][2], self.redSide[3][2], self.redSide[3][3],
self.yellowSide[1][0], self.yellowSide[2][1], self.yellowSide[2][2], self.yellowSide[3][3], self.yellowSide[3][4]) =\
(self.yellowSide[3][4], self.yellowSide[3][3], self.yellowSide[2][2], self.yellowSide[2][1], self.yellowSide[1][0],
self.greenSide[3][4], self.greenSide[3][3], self.greenSide[2][2], self.greenSide[1][0],self.greenSide[2][1],
self.redSide[1][-1], self.redSide[2][3], self.redSide[2][2], self.redSide[3][3], self.redSide[3][2])
def lllI(self):
(self.yellowSide[3][4], self.yellowSide[3][3], self.yellowSide[2][2], self.yellowSide[2][1], self.yellowSide[1][0],
self.greenSide[3][4], self.greenSide[3][3], self.greenSide[2][2], self.greenSide[1][0],self.greenSide[2][1],
self.redSide[1][-1], self.redSide[2][3], self.redSide[2][2], self.redSide[3][3], self.redSide[3][2]) =\
(self.greenSide[1][0], self.greenSide[2][1], self.greenSide[2][2], self.greenSide[3][3], self.greenSide[3][4],
self.redSide[1][-1], self.redSide[2][3], self.redSide[2][2], self.redSide[3][2], self.redSide[3][3],
self.yellowSide[1][0], self.yellowSide[2][1], self.yellowSide[2][2], self.yellowSide[3][3], self.yellowSide[3][4])
def L(self):
self.l()
self.ll()
self.lll()
def LI(self):
self.lI()
self.llI()
self.lllI()
def r(self):
self.greenSide[3][-1], self.blueSide[3][0], self.yellowSide[3][-1] =\
self.yellowSide[3][-1], self.greenSide[3][-1], self.blueSide[3][0]
def rI(self):
self.yellowSide[3][-1], self.greenSide[3][-1], self.blueSide[3][0] =\
self.greenSide[3][-1], self.blueSide[3][0], self.yellowSide[3][-1]
def rr(self):
(self.greenSide[2][-1], self.greenSide[3][4], self.greenSide[3][5],
self.blueSide[2][0], self.blueSide[3][1], self.blueSide[3][2],
self.yellowSide[2][-1], self.yellowSide[3][4], self.yellowSide[3][5]) =\
(self.yellowSide[3][4], self.yellowSide[2][-1],self.yellowSide[3][5],
self.greenSide[3][4], self.greenSide[3][5], self.greenSide[2][-1],
self.blueSide[2][0], self.blueSide[3][2], self.blueSide[3][1])
def rrI(self):
(self.yellowSide[3][4], self.yellowSide[2][-1],self.yellowSide[3][5],
self.greenSide[3][4], self.greenSide[3][5], self.greenSide[2][-1],
self.blueSide[2][0], self.blueSide[3][2], self.blueSide[3][1]) =\
(self.greenSide[2][-1], self.greenSide[3][4], self.greenSide[3][5],
self.blueSide[2][0], self.blueSide[3][1], self.blueSide[3][2],
self.yellowSide[2][-1], self.yellowSide[3][4], self.yellowSide[3][5])
def rrr(self):
(self.greenSide[1][-1], self.greenSide[2][2], self.greenSide[2][3], self.greenSide[3][2], self.greenSide[3][3],
self.blueSide[1][0], self.blueSide[2][1], self.blueSide[2][2], self.blueSide[3][3], self.blueSide[3][4],
self.yellowSide[1][-1], self.yellowSide[2][2], self.yellowSide[2][3], self.yellowSide[3][2], self.yellowSide[3][3]) = \
(self.yellowSide[3][2], self.yellowSide[2][2], self.yellowSide[3][3], self.yellowSide[1][-1],self.yellowSide[2][3],
self.greenSide[3][2], self.greenSide[3][3], self.greenSide[2][2], self.greenSide[2][3], self.greenSide[1][-1],
self.blueSide[1][0], self.blueSide[2][2], self.blueSide[2][1], self.blueSide[3][4], self.blueSide[3][3])
def rrrI(self):
(self.yellowSide[3][2], self.yellowSide[2][2], self.yellowSide[3][3], self.yellowSide[1][-1],self.yellowSide[2][3],
self.greenSide[3][2], self.greenSide[3][3], self.greenSide[2][2], self.greenSide[2][3], self.greenSide[1][-1],
self.blueSide[1][0], self.blueSide[2][2], self.blueSide[2][1], self.blueSide[3][4], self.blueSide[3][3]) =\
(self.greenSide[1][-1], self.greenSide[2][2], self.greenSide[2][3], self.greenSide[3][2], self.greenSide[3][3],
self.blueSide[1][0], self.blueSide[2][1], self.blueSide[2][2], self.blueSide[3][3], self.blueSide[3][4],
self.yellowSide[1][-1], self.yellowSide[2][2], self.yellowSide[2][3], self.yellowSide[3][2], self.yellowSide[3][3])
def R(self):
self.r()
self.rr()
self.rrr()
def RI(self):
self.rI()
self.rrI()
self.rrrI()
def u(self):
self.greenSide[0][0], self.blueSide[0][0], self.redSide[0][0] =\
self.blueSide[0][0], self.redSide[0][0], self.greenSide[0][0]
def uI(self):
self.blueSide[0][0], self.redSide[0][0], self.greenSide[0][0] =\
self.greenSide[0][0], self.blueSide[0][0], self.redSide[0][0]
def uu(self):
self.greenSide[1], self.blueSide[1], self.redSide[1] =\
self.blueSide[1], self.redSide[1], self.greenSide[1]
def uuI(self):
self.blueSide[1], self.redSide[1], self.greenSide[1] =\
self.greenSide[1], self.blueSide[1], self.redSide[1]
def uuu(self):
self.greenSide[2], self.blueSide[2], self.redSide[2] =\
self.blueSide[2], self.redSide[2], self.greenSide[2]
def uuuI(self):
self.blueSide[2], self.redSide[2], self.greenSide[2] =\
self.greenSide[2], self.blueSide[2], self.redSide[2]
def U(self):
self.u()
self.uu()
self.uuu()
def UI(self):
self.uI()
self.uuI()
self.uuuI()
def b(self):
self.blueSide[3][-1], self.redSide[3][0], self.yellowSide[0][0] =\
self.yellowSide[0][0], self.blueSide[3][-1], self.redSide[3][0]
def bI(self):
self.yellowSide[0][0], self.blueSide[3][-1], self.redSide[3][0] =\
self.blueSide[3][-1], self.redSide[3][0], self.yellowSide[0][0]
def bb(self):
(self.blueSide[2][-1], self.blueSide[3][4], self.blueSide[3][5],
self.redSide[2][0], self.redSide[3][1], self.redSide[3][2],
self.yellowSide[1][0], self.yellowSide[1][1], self.yellowSide[1][2]) =\
(self.yellowSide[1][2], self.yellowSide[1][0], self.yellowSide[1][1],
self.blueSide[3][4], self.blueSide[3][5], self.blueSide[2][-1],
self.redSide[2][0], self.redSide[3][1],self.redSide[3][2])
def bbI(self):
(self.yellowSide[1][2], self.yellowSide[1][0], self.yellowSide[1][1],
self.blueSide[3][4], self.blueSide[3][5], self.blueSide[2][-1],
self.redSide[2][0], self.redSide[3][1],self.redSide[3][2]) =\
(self.blueSide[2][-1], self.blueSide[3][4], self.blueSide[3][5],
self.redSide[2][0], self.redSide[3][1], self.redSide[3][2],
self.yellowSide[1][0], self.yellowSide[1][1], self.yellowSide[1][2])
def bbb(self):
(self.blueSide[1][-1], self.blueSide[2][2], self.blueSide[2][3], self.blueSide[3][2], self.blueSide[3][3],
self.redSide[1][0], self.redSide[2][1], self.redSide[2][2], self.redSide[3][3], self.redSide[3][4],
self.yellowSide[2][0], self.yellowSide[2][1], self.yellowSide[2][2], self.yellowSide[2][3], self.yellowSide[2][4]) =\
(self.yellowSide[2][4],self.yellowSide[2][2], self.yellowSide[2][3], self.yellowSide[2][0],self.yellowSide[2][1],
self.blueSide[3][2], self.blueSide[3][3], self.blueSide[2][2], self.blueSide[2][3], self.blueSide[1][-1],
self.redSide[1][0], self.redSide[2][1], self.redSide[2][2], self.redSide[3][3], self.redSide[3][4])
def bbbI(self):
(self.yellowSide[2][4],self.yellowSide[2][2], self.yellowSide[2][3], self.yellowSide[2][0],self.yellowSide[2][1],
self.blueSide[3][2], self.blueSide[3][3], self.blueSide[2][2], self.blueSide[2][3], self.blueSide[1][-1],
self.redSide[1][0], self.redSide[2][1], self.redSide[2][2], self.redSide[3][3], self.redSide[3][4]) =\
(self.blueSide[1][-1], self.blueSide[2][2], self.blueSide[2][3], self.blueSide[3][2], self.blueSide[3][3],
self.redSide[1][0], self.redSide[2][1], self.redSide[2][2], self.redSide[3][3], self.redSide[3][4],
self.yellowSide[2][0], self.yellowSide[2][1], self.yellowSide[2][2], self.yellowSide[2][3], self.yellowSide[2][4])
def B(self):
self.b()
self.bb()
self.bbb()
def BI(self):
self.bI()
self.bbI()
self.bbbI()
def YF(self):
self.greenSide[3], self.redSide[3], self.blueSide[3] =\
self.blueSide[3], self.greenSide[3], self.redSide[3]
(self.yellowSide[3][0], self.yellowSide[3][1], self.yellowSide[2][0], self.yellowSide[2][1], self.yellowSide[1][0], self.yellowSide[1][1],
self.yellowSide[0][0], self.yellowSide[1][-2], self.yellowSide[1][-1], self.yellowSide[2][-2], self.yellowSide[2][-1], self.yellowSide[3][-2],
self.yellowSide[3][-1], self.yellowSide[3][-2], self.yellowSide[3][-3], self.yellowSide[3][-4], self.yellowSide[3][-5], self.yellowSide[3][-6]) =\
(self.yellowSide[3][-1], self.yellowSide[3][-2], self.yellowSide[3][-3], self.yellowSide[3][-4], self.yellowSide[3][-5], self.yellowSide[3][-6],
self.yellowSide[3][0], self.yellowSide[3][1], self.yellowSide[2][0], self.yellowSide[2][1], self.yellowSide[1][0], self.yellowSide[1][1],
self.yellowSide[0][0], self.yellowSide[1][-2], self.yellowSide[1][-1], self.yellowSide[2][-2], self.yellowSide[2][-1], self.yellowSide[3][-2])
def YFI(self):
self.blueSide[3], self.greenSide[3], self.redSide[3] =\
self.greenSide[3], self.redSide[3], self.blueSide[3]
(self.yellowSide[3][-1], self.yellowSide[3][-2], self.yellowSide[3][-3], self.yellowSide[3][-4], self.yellowSide[3][-5], self.yellowSide[3][-6],
self.yellowSide[3][0], self.yellowSide[3][1], self.yellowSide[2][0], self.yellowSide[2][1], self.yellowSide[1][0], self.yellowSide[1][1],
self.yellowSide[0][0], self.yellowSide[1][-2], self.yellowSide[1][-1], self.yellowSide[2][-2], self.yellowSide[2][-1], self.yellowSide[3][-2]) =\
(self.yellowSide[3][0], self.yellowSide[3][1], self.yellowSide[2][0], self.yellowSide[2][1], self.yellowSide[1][0], self.yellowSide[1][1],
self.yellowSide[0][0], self.yellowSide[1][-2], self.yellowSide[1][-1], self.yellowSide[2][-2], self.yellowSide[2][-1], self.yellowSide[3][-2],
self.yellowSide[3][-1], self.yellowSide[3][-2], self.yellowSide[3][-3], self.yellowSide[3][-4], self.yellowSide[3][-5], self.yellowSide[3][-6])
def BF(self):
(self.redSide[0][0], self.redSide[1][1], self.redSide[1][0], self.redSide[2][1], self.redSide[2][0], self.redSide[3][1], self.redSide[3][0],
self.yellowSide[0][0],self.yellowSide[1][1],self.yellowSide[1][-1], self.yellowSide[2][-2], self.yellowSide[2][-1], self.yellowSide[3][-2], self.yellowSide[3][-1],
self.greenSide[0][0], self.greenSide[1][1], self.greenSide[1][-1], self.greenSide[2][-2], self.greenSide[2][-1], self.greenSide[3][-2], self.greenSide[3][-1]) =\
(self.greenSide[3][-1], self.greenSide[3][-2], self.greenSide[2][-1], self.greenSide[2][-2], self.greenSide[1][-1], self.greenSide[1][1], self.greenSide[0][0],
self.redSide[0][0], self.redSide[1][1], self.redSide[1][0], self.redSide[2][1], self.redSide[2][0], self.redSide[3][1], self.redSide[3][0],
self.yellowSide[3][-1], self.yellowSide[3][-2], self.yellowSide[2][-1], self.yellowSide[2][-2], self.yellowSide[1][-1], self.yellowSide[1][1], self.yellowSide[0][0])
(self.blueSide[3][0], self.blueSide[3][1], self.blueSide[2][0], self.blueSide[2][1], self.blueSide[1][0], self.blueSide[1][1],
self.blueSide[0][0], self.blueSide[1][-2], self.blueSide[1][-1], self.blueSide[2][-2], self.blueSide[2][-1], self.blueSide[3][-2],
self.blueSide[3][-1], self.blueSide[3][-2], self.blueSide[3][-3], self.blueSide[3][-4], self.blueSide[3][-5], self.blueSide[3][-6]) =\
(self.blueSide[3][-1], self.blueSide[3][-2], self.blueSide[3][-3], self.blueSide[3][-4], self.blueSide[3][-5], self.blueSide[3][-6],
self.blueSide[3][0], self.blueSide[3][1], self.blueSide[2][0], self.blueSide[2][1], self.blueSide[1][0], self.blueSide[1][1],
self.blueSide[0][0], self.blueSide[1][-2], self.blueSide[1][-1], self.blueSide[2][-2], self.blueSide[2][-1], self.blueSide[3][-2])
def BFI(self):
(self.greenSide[3][-1], self.greenSide[3][-2], self.greenSide[2][-1], self.greenSide[2][-2], self.greenSide[1][-1], self.greenSide[1][1], self.greenSide[0][0],
self.redSide[0][0], self.redSide[1][1], self.redSide[1][0], self.redSide[2][1], self.redSide[2][0], self.redSide[3][1], self.redSide[3][0],
self.yellowSide[3][-1], self.yellowSide[3][-2], self.yellowSide[2][-1], self.yellowSide[2][-2], self.yellowSide[1][-1], self.yellowSide[1][1], self.yellowSide[0][0]) =\
(self.redSide[0][0], self.redSide[1][1], self.redSide[1][0], self.redSide[2][1], self.redSide[2][0], self.redSide[3][1], self.redSide[3][0],
self.yellowSide[0][0],self.yellowSide[1][1],self.yellowSide[1][-1], self.yellowSide[2][-2], self.yellowSide[2][-1], self.yellowSide[3][-2], self.yellowSide[3][-1],
self.greenSide[0][0], self.greenSide[1][1], self.greenSide[1][-1], self.greenSide[2][-2], self.greenSide[2][-1], self.greenSide[3][-2], self.greenSide[3][-1])
(self.blueSide[3][-1], self.blueSide[3][-2], self.blueSide[3][-3], self.blueSide[3][-4], self.blueSide[3][-5], self.blueSide[3][-6],
self.blueSide[3][0], self.blueSide[3][1], self.blueSide[2][0], self.blueSide[2][1], self.blueSide[1][0], self.blueSide[1][1],
self.blueSide[0][0], self.blueSide[1][-2], self.blueSide[1][-1], self.blueSide[2][-2], self.blueSide[2][-1], self.blueSide[3][-2])=\
(self.blueSide[3][0], self.blueSide[3][1], self.blueSide[2][0], self.blueSide[2][1], self.blueSide[1][0], self.blueSide[1][1],
self.blueSide[0][0], self.blueSide[1][-2], self.blueSide[1][-1], self.blueSide[2][-2], self.blueSide[2][-1], self.blueSide[3][-2],
self.blueSide[3][-1], self.blueSide[3][-2], self.blueSide[3][-3], self.blueSide[3][-4], self.blueSide[3][-5], self.blueSide[3][-6])
def RF(self):
(self.greenSide[0][0], self.greenSide[1][1], self.greenSide[1][0], self.greenSide[2][1], self.greenSide[2][0], self.greenSide[3][1], self.greenSide[3][0],
self.yellowSide[3][0], self.yellowSide[3][1], self.yellowSide[2][0], self.yellowSide[2][1], self.yellowSide[1][0], self.yellowSide[1][1], self.yellowSide[0][0],
self.blueSide[3][-1], self.blueSide[3][-2], self.blueSide[2][-1], self.blueSide[2][-2], self.blueSide[1][-1], self.blueSide[1][1], self.blueSide[0][0]) =\
(self.yellowSide[3][0], self.yellowSide[3][1], self.yellowSide[2][0], self.yellowSide[2][1], self.yellowSide[1][0], self.yellowSide[1][1], self.yellowSide[0][0],
self.blueSide[3][-1], self.blueSide[3][-2], self.blueSide[2][-1], self.blueSide[2][-2], self.blueSide[1][-1], self.blueSide[1][1], self.blueSide[0][0],
self.greenSide[0][0], self.greenSide[1][1], self.greenSide[1][0], self.greenSide[2][1], self.greenSide[2][0], self.greenSide[3][1], self.greenSide[3][0])
(self.redSide[3][-1], self.redSide[3][-2], self.redSide[3][-3], self.redSide[3][-4], self.redSide[3][-5], self.redSide[3][-6],
self.redSide[3][0], self.redSide[3][1], self.redSide[2][0], self.redSide[2][1], self.redSide[1][0], self.redSide[1][1],
self.redSide[0][0], self.redSide[1][-2], self.redSide[1][-1], self.redSide[2][-2], self.redSide[2][-1], self.redSide[3][-2]) =\
(self.redSide[3][0], self.redSide[3][1], self.redSide[2][0], self.redSide[2][1], self.redSide[1][0], self.redSide[1][1],
self.redSide[0][0], self.redSide[1][-2], self.redSide[1][-1], self.redSide[2][-2], self.redSide[2][-1], self.redSide[3][-2],
self.redSide[3][-1], self.redSide[3][-2], self.redSide[3][-3], self.redSide[3][-4], self.redSide[3][-5], self.redSide[3][-6])
def RFI(self):
(self.yellowSide[3][0], self.yellowSide[3][1], self.yellowSide[2][0], self.yellowSide[2][1], self.yellowSide[1][0], self.yellowSide[1][1], self.yellowSide[0][0],
self.blueSide[3][-1], self.blueSide[3][-2], self.blueSide[2][-1], self.blueSide[2][-2], self.blueSide[1][-1], self.blueSide[1][1], self.blueSide[0][0],
self.greenSide[0][0], self.greenSide[1][1], self.greenSide[1][0], self.greenSide[2][1], self.greenSide[2][0], self.greenSide[3][1], self.greenSide[3][0]) =\
(self.greenSide[0][0], self.greenSide[1][1], self.greenSide[1][0], self.greenSide[2][1], self.greenSide[2][0], self.greenSide[3][1], self.greenSide[3][0],
self.yellowSide[3][0], self.yellowSide[3][1], self.yellowSide[2][0], self.yellowSide[2][1], self.yellowSide[1][0], self.yellowSide[1][1], self.yellowSide[0][0],
self.blueSide[3][-1], self.blueSide[3][-2], self.blueSide[2][-1], self.blueSide[2][-2], self.blueSide[1][-1], self.blueSide[1][1], self.blueSide[0][0])
(self.redSide[3][0], self.redSide[3][1], self.redSide[2][0], self.redSide[2][1], self.redSide[1][0], self.redSide[1][1],
self.redSide[0][0], self.redSide[1][-2], self.redSide[1][-1], self.redSide[2][-2], self.redSide[2][-1], self.redSide[3][-2],
self.redSide[3][-1], self.redSide[3][-2], self.redSide[3][-3], self.redSide[3][-4], self.redSide[3][-5], self.redSide[3][-6]) =\
(self.redSide[3][-1], self.redSide[3][-2], self.redSide[3][-3], self.redSide[3][-4], self.redSide[3][-5], self.redSide[3][-6],
self.redSide[3][0], self.redSide[3][1], self.redSide[2][0], self.redSide[2][1], self.redSide[1][0], self.redSide[1][1],
self.redSide[0][0], self.redSide[1][-2], self.redSide[1][-1], self.redSide[2][-2], self.redSide[2][-1], self.redSide[3][-2])
def GF(self):
(self.blueSide[3][0], self.blueSide[3][1], self.blueSide[2][0], self.blueSide[2][1], self.blueSide[1][0], self.blueSide[1][1], self.blueSide[0][0],
self.yellowSide[3][0], self.yellowSide[3][1], self.yellowSide[3][2], self.yellowSide[3][3], self.yellowSide[3][4], self.yellowSide[3][5], self.yellowSide[3][6],
self.redSide[0][0], self.redSide[1][-2], self.redSide[1][-1], self.redSide[2][-2], self.redSide[2][-1], self.redSide[3][-2], self.redSide[3][-1]) =\
(self.redSide[0][0], self.redSide[1][-2], self.redSide[1][-1], self.redSide[2][-2], self.redSide[2][-1], self.redSide[3][-2], self.redSide[3][-1],
self.blueSide[3][0], self.blueSide[3][1], self.blueSide[2][0], self.blueSide[2][1], self.blueSide[1][0], self.blueSide[1][1], self.blueSide[0][0],
self.yellowSide[3][0], self.yellowSide[3][1], self.yellowSide[3][2], self.yellowSide[3][3], self.yellowSide[3][4], self.yellowSide[3][5], self.yellowSide[3][6])
(self.greenSide[3][0], self.greenSide[3][1], self.greenSide[2][0], self.greenSide[2][1], self.greenSide[1][0], self.greenSide[1][1],
self.greenSide[0][0], self.greenSide[1][-2], self.greenSide[1][-1], self.greenSide[2][-2], self.greenSide[2][-1], self.greenSide[3][-2],
self.greenSide[3][-1], self.greenSide[3][-2], self.greenSide[3][-3], self.greenSide[3][-4], self.greenSide[3][-5], self.greenSide[3][-6]) =\
(self.greenSide[3][-1], self.greenSide[3][-2], self.greenSide[3][-3], self.greenSide[3][-4], self.greenSide[3][-5], self.greenSide[3][-6],
self.greenSide[3][0], self.greenSide[3][1], self.greenSide[2][0], self.greenSide[2][1], self.greenSide[1][0], self.greenSide[1][1],
self.greenSide[0][0], self.greenSide[1][-2], self.greenSide[1][-1], self.greenSide[2][-2], self.greenSide[2][-1], self.greenSide[3][-2])
def GFI(self):
(self.redSide[0][0], self.redSide[1][-2], self.redSide[1][-1], self.redSide[2][-2], self.redSide[2][-1], self.redSide[3][-2], self.redSide[3][-1],
self.blueSide[3][0], self.blueSide[3][1], self.blueSide[2][0], self.blueSide[2][1], self.blueSide[1][0], self.blueSide[1][1], self.blueSide[0][0],
self.yellowSide[3][0], self.yellowSide[3][1], self.yellowSide[3][2], self.yellowSide[3][3], self.yellowSide[3][4], self.yellowSide[3][5], self.yellowSide[3][6]) =\
(self.blueSide[3][0], self.blueSide[3][1], self.blueSide[2][0], self.blueSide[2][1], self.blueSide[1][0], self.blueSide[1][1], self.blueSide[0][0],
self.yellowSide[3][0], self.yellowSide[3][1], self.yellowSide[3][2], self.yellowSide[3][3], self.yellowSide[3][4], self.yellowSide[3][5], self.yellowSide[3][6],
self.redSide[0][0], self.redSide[1][-2], self.redSide[1][-1], self.redSide[2][-2], self.redSide[2][-1], self.redSide[3][-2], self.redSide[3][-1])
(self.greenSide[3][-1], self.greenSide[3][-2], self.greenSide[3][-3], self.greenSide[3][-4], self.greenSide[3][-5], self.greenSide[3][-6],
self.greenSide[3][0], self.greenSide[3][1], self.greenSide[2][0], self.greenSide[2][1], self.greenSide[1][0], self.greenSide[1][1],
self.greenSide[0][0], self.greenSide[1][-2], self.greenSide[1][-1], self.greenSide[2][-2], self.greenSide[2][-1], self.greenSide[3][-2])=\
(self.greenSide[3][0], self.greenSide[3][1], self.greenSide[2][0], self.greenSide[2][1], self.greenSide[1][0], self.greenSide[1][1],
self.greenSide[0][0], self.greenSide[1][-2], self.greenSide[1][-1], self.greenSide[2][-2], self.greenSide[2][-1], self.greenSide[3][-2],
self.greenSide[3][-1], self.greenSide[3][-2], self.greenSide[3][-3], self.greenSide[3][-4], self.greenSide[3][-5], self.greenSide[3][-6])
# Defines printing the screen in the terminal instead of using the GUI.
def printFace(self):
arr = [self.redSide, self.greenSide, self.blueSide]
for face in arr:
print(' ' *14,face[0])
print(' '*9,face[1])
print(' '*4,face[2])
print(face[3])
print()
print(self.yellowSide[3])
print(' '*4,self.yellowSide[2])
print(' '*9,self.yellowSide[1])
print(' ' *14,self.yellowSide[0])
# Used for running only in terminal.
if __name__ == "__main__":
pyraminx = Pyraminx()
# Gets user input for random moves and executes.
usrInput = int(input("How many randomizations would you like? "))
moves = pyraminx.randomizePyraminx(usrInput)
for move in moves:
move()
# Prints pyraminx in terminal.
pyraminx.printFace()