View difference between Paste ID: xWwY3H8F and hE8Dh99K
SHOW: | | - or go back to the newest paste.
1
import random
2
from turtle import Turtle
3
from turtle import Screen
4
5
6
stickers = Turtle()
7
stickers.speed(0)
8
screen = Screen()
9
10
11
#sticker variables
12
red = "red"
13
blue = "blue"
14
green = "green"
15
orange = "orange"
16
white = "white"
17
yellow = "yellow"
18
19
20
21
#variable format (face,height,leftrightormiddle)
22
#front
23
ful = red
24
fum = red
25
fur = red
26
27
fml = red
28
fmm = red
29
fmr = red
30
31
fdl = red
32
fdm = red
33
fdr = red
34
35
#back face
36
bul = orange
37
bum = orange
38
bur = orange
39
40
bml = orange
41
bmm = orange
42
bmr = orange
43
44
bdl = orange
45
bdm = orange
46
bdr = orange
47
48
#right face
49
rul = green
50
rum = green
51
rur = green
52
53
rml = green
54
rmm = green
55
rmr = green
56
57
rdl = green
58
rdm = green
59
rdr = green
60
61
#left face
62
lul = blue
63
lum = blue
64
lur = blue
65
66
lml = blue
67
lmm = blue
68
lmr = blue
69
70
ldl = blue
71
ldm = blue
72
ldr = blue
73
74
#top face
75
uul = yellow
76
uum = yellow
77
uur = yellow
78
79
uml = yellow
80
umm = yellow
81
umr = yellow
82
83
udl = yellow
84
udm = yellow
85
udr = yellow
86
87
#bottom face
88
dul = white
89
dum = white
90
dur = white
91
92
dml = white
93
dmm = white
94
dmr = white
95
96
ddl = white
97
ddm = white
98
ddr = white
99
100
101
102
def drawcube():
103
   screen.tracer(0,0)
104
   #black base
105
   stickers.setpos(0,0)
106
   stickers.color("black")
107
   stickers.backward(10)
108
   stickers.begin_fill()
109
   stickers.forward(115)
110
   stickers.right(90)
111
   stickers.forward(115)
112
   stickers.right(90)
113
   stickers.forward(115)
114
   stickers.right(90)
115
   stickers.forward(115)
116
   stickers.right(180)
117
   stickers.end_fill()
118
   stickers.left(90)
119
120
   #black base left side
121
   stickers.begin_fill()
122
   stickers.left(135)
123
   stickers.forward(57.5)
124
   stickers.left(135)
125
   stickers.forward(115)
126
   stickers.left(45)
127
   stickers.forward(57.5)
128
   stickers.end_fill()
129
130
   #black base top
131
   stickers.left(135)
132
   stickers.forward(115)
133
   stickers.left(45)
134
   stickers.begin_fill()
135
   stickers.forward(57.5)
136
   stickers.right(135)
137
   stickers.forward(115)
138
   stickers.right(45)
139
   stickers.forward(57.5)
140
   stickers.right(135)
141
   stickers.forward(115)
142
   stickers.end_fill()
143
   stickers.left(90)
144
   stickers.forward(35)
145
   stickers.left(90)
146
   stickers.forward(10)
147
148
149
   #sticker creation
150
   #front face
151
   stickers.color(ful)
152
   stickers.begin_fill()
153
   stickers.forward(25)
154
   stickers.left(90)
155
   stickers.forward(25)
156
   stickers.left(90)
157
   stickers.forward(25)
158
   stickers.left(90)
159
   stickers.forward(25)
160
   stickers.left(90)
161
   stickers.end_fill()
162
163
   stickers.penup()
164
   stickers.forward(35)
165
   stickers.pendown()
166
167
   stickers.color(fum)
168
   stickers.begin_fill()
169
   stickers.forward(25)
170
   stickers.left(90)
171
   stickers.forward(25)
172
   stickers.left(90)
173
   stickers.forward(25)
174
   stickers.left(90)
175
   stickers.forward(25)
176
   stickers.left(90)
177
   stickers.end_fill()
178
179
   stickers.penup()
180
   stickers.forward(35)
181
   stickers.pendown()
182
183
   stickers.color(fur)
184
   stickers.begin_fill()
185
   stickers.forward(25)
186
   stickers.left(90)
187
   stickers.forward(25)
188
   stickers.left(90)
189
   stickers.forward(25)
190
   stickers.left(90)
191
   stickers.forward(25)
192
   stickers.left(90)
193
   stickers.end_fill()
194
195
   stickers.penup()
196
   stickers.forward(35)
197
   stickers.pendown()
198
199
   #down a layer
200
   stickers.penup()
201
   stickers.left(180)
202
   stickers.forward(105)
203
   stickers.left(90)
204
   stickers.forward(35)
205
   stickers.left(90)
206
   stickers.pendown()
207
208
   stickers.color(fml)
209
   stickers.begin_fill()
210
   stickers.forward(25)
211
   stickers.left(90)
212
   stickers.forward(25)
213
   stickers.left(90)
214
   stickers.forward(25)
215
   stickers.left(90)
216
   stickers.forward(25)
217
   stickers.left(90)
218
   stickers.end_fill()
219
220
   stickers.penup()
221
   stickers.forward(35)
222
   stickers.pendown()
223
224
   stickers.color(fmm)
225
   stickers.begin_fill()
226
   stickers.forward(25)
227
   stickers.left(90)
228
   stickers.forward(25)
229
   stickers.left(90)
230
   stickers.forward(25)
231
   stickers.left(90)
232
   stickers.forward(25)
233
   stickers.left(90)
234
   stickers.end_fill()
235
236
   stickers.penup()
237
   stickers.forward(35)
238
   stickers.pendown()
239
240
   stickers.color(fmr)
241
   stickers.begin_fill()
242
   stickers.forward(25)
243
   stickers.left(90)
244
   stickers.forward(25)
245
   stickers.left(90)
246
   stickers.forward(25)
247
   stickers.left(90)
248
   stickers.forward(25)
249
   stickers.left(90)
250
   stickers.end_fill()
251
252
   stickers.penup()
253
   stickers.forward(35)
254
   stickers.pendown()
255
256
   #down a layer
257
   stickers.penup()
258
   stickers.left(180)
259
   stickers.forward(105)
260
   stickers.left(90)
261
   stickers.forward(35)
262
   stickers.left(90)
263
   stickers.pendown()
264
265
   stickers.color(fdl)
266
   stickers.begin_fill()
267
   stickers.forward(25)
268
   stickers.left(90)
269
   stickers.forward(25)
270
   stickers.left(90)
271
   stickers.forward(25)
272
   stickers.left(90)
273
   stickers.forward(25)
274
   stickers.left(90)
275
   stickers.end_fill()
276
277
   stickers.penup()
278
   stickers.forward(35)
279
   stickers.pendown()
280
281
   stickers.color(fdm)
282
   stickers.begin_fill()
283
   stickers.forward(25)
284
   stickers.left(90)
285
   stickers.forward(25)
286
   stickers.left(90)
287
   stickers.forward(25)
288
   stickers.left(90)
289
   stickers.forward(25)
290
   stickers.left(90)
291
   stickers.end_fill()
292
293
   stickers.penup()
294
   stickers.forward(35)
295
   stickers.pendown()
296
297
   stickers.color(fdr)
298
   stickers.begin_fill()
299
   stickers.forward(25)
300
   stickers.left(90)
301
   stickers.forward(25)
302
   stickers.left(90)
303
   stickers.forward(25)
304
   stickers.left(90)
305
   stickers.forward(25)
306
   stickers.left(90)
307
   stickers.end_fill()
308
309
   stickers.penup()
310
   stickers.forward(35)
311
   stickers.right(180)
312
   stickers.forward(105)
313
   stickers.right(90)
314
   stickers.forward(105)
315
   stickers.right(90)
316
   stickers.pendown()
317
318
   #left face stickers
319
   stickers.penup()
320
   stickers.backward(10)
321
   stickers.right(90)
322
   stickers.forward(10)
323
   stickers.left(90)
324
   stickers.left(135)
325
   stickers.forward(7)
326
   stickers.pendown()
327
328
   stickers.color(lur)
329
   stickers.begin_fill()
330
   stickers.forward(12.5)
331
   stickers.left(135)
332
   stickers.forward(25)
333
   stickers.left(45)
334
   stickers.forward(12.5)
335
   stickers.left(135)
336
   stickers.forward(25)
337
   stickers.left(45)
338
   stickers.forward(12.5)
339
   stickers.end_fill()
340
341
   stickers.penup()
342
   stickers.forward(5)
343
   stickers.pendown()
344
345
   stickers.color(lum)
346
   stickers.begin_fill()
347
   stickers.forward(12.5)
348
   stickers.left(135)
349
   stickers.forward(25)
350
   stickers.left(45)
351
   stickers.forward(12.5)
352
   stickers.left(135)
353
   stickers.forward(25)
354
   stickers.left(45)
355
   stickers.forward(12.5)
356
   stickers.end_fill()
357
358
   stickers.penup()
359
   stickers.forward(3.3333)
360
   stickers.pendown()
361
362
   stickers.color(lul)
363
   stickers.begin_fill()
364
   stickers.forward(12.5)
365
   stickers.left(135)
366
   stickers.forward(25)
367
   stickers.left(45)
368
   stickers.forward(12.5)
369
   stickers.left(135)
370
   stickers.forward(25)
371
   stickers.left(45)
372
   stickers.forward(12.5)
373
   stickers.end_fill()
374
375
   #down layer
376
   stickers.penup()
377
   stickers.backward(52.8333)
378
   stickers.left(135)
379
   stickers.forward(35)
380
   stickers.right(135)
381
   stickers.forward(7)
382
   stickers.pendown()
383
384
   stickers.color(lmr)
385
   stickers.begin_fill()
386
   stickers.forward(12.5)
387
   stickers.left(135)
388
   stickers.forward(25)
389
   stickers.left(45)
390
   stickers.forward(12.5)
391
   stickers.left(135)
392
   stickers.forward(25)
393
   stickers.left(45)
394
   stickers.forward(12.5)
395
   stickers.end_fill()
396
397
   stickers.penup()
398
   stickers.forward(5)
399
   stickers.pendown()
400
401
   stickers.color(lmm)
402
   stickers.begin_fill()
403
   stickers.forward(12.5)
404
   stickers.left(135)
405
   stickers.forward(25)
406
   stickers.left(45)
407
   stickers.forward(12.5)
408
   stickers.left(135)
409
   stickers.forward(25)
410
   stickers.left(45)
411
   stickers.forward(12.5)
412
   stickers.end_fill()
413
414
   stickers.penup()
415
   stickers.forward(3.3333)
416
   stickers.pendown()
417
418
   stickers.color(lml)
419
   stickers.begin_fill()
420
   stickers.forward(12.5)
421
   stickers.left(135)
422
   stickers.forward(25)
423
   stickers.left(45)
424
   stickers.forward(12.5)
425
   stickers.left(135)
426
   stickers.forward(25)
427
   stickers.left(45)
428
   stickers.forward(12.5)
429
   stickers.end_fill()
430
431
432
   #down layer
433
   stickers.penup()
434
   stickers.backward(52.8333)
435
   stickers.left(135)
436
   stickers.forward(35)
437
   stickers.right(135)
438
   stickers.forward(7)
439
   stickers.pendown()
440
441
   stickers.color(ldr)
442
   stickers.begin_fill()
443
   stickers.forward(12.5)
444
   stickers.left(135)
445
   stickers.forward(25)
446
   stickers.left(45)
447
   stickers.forward(12.5)
448
   stickers.left(135)
449
   stickers.forward(25)
450
   stickers.left(45)
451
   stickers.forward(12.5)
452
   stickers.end_fill()
453
454
   stickers.penup()
455
   stickers.forward(5)
456
   stickers.pendown()
457
458
   stickers.color(ldm)
459
   stickers.begin_fill()
460
   stickers.forward(12.5)
461
   stickers.left(135)
462
   stickers.forward(25)
463
   stickers.left(45)
464
   stickers.forward(12.5)
465
   stickers.left(135)
466
   stickers.forward(25)
467
   stickers.left(45)
468
   stickers.forward(12.5)
469
   stickers.end_fill()
470
471
   stickers.penup()
472
   stickers.forward(3.3333)
473
   stickers.pendown()
474
475
   stickers.color(ldl)
476
   stickers.begin_fill()
477
   stickers.forward(12.5)
478
   stickers.left(135)
479
   stickers.forward(25)
480
   stickers.left(45)
481
   stickers.forward(12.5)
482
   stickers.left(135)
483
   stickers.forward(25)
484
   stickers.left(45)
485
   stickers.forward(12.5)
486
   stickers.end_fill()
487
488
   #return to start position
489
   stickers.penup()
490
   stickers.backward(52.8333)
491
   stickers.right(45)
492
   stickers.forward(80)
493
   stickers.right(90)
494
   stickers.pendown()
495
496
   #top face stickers
497
   stickers.penup()
498
   stickers.left(135)
499
   stickers.forward(5)
500
   stickers.right(135)
501
   stickers.forward(10)
502
   stickers.pendown()
503
504
   stickers.color(udl)
505
   stickers.begin_fill()
506
   stickers.forward(25)
507
   stickers.left(135)
508
   stickers.forward(15.625)
509
   stickers.left(45)
510
   stickers.forward(25)
511
   stickers.left(135)
512
   stickers.forward(15.625)
513
   stickers.left(45)
514
   stickers.end_fill()
515
516
   #move forward
517
   stickers.penup()
518
   stickers.forward(35)
519
   stickers.pendown()
520
521
522
   stickers.color(udm)
523
   stickers.begin_fill()
524
   stickers.forward(25)
525
   stickers.left(135)
526
   stickers.forward(15.625)
527
   stickers.left(45)
528
   stickers.forward(25)
529
   stickers.left(135)
530
   stickers.forward(15.625)
531
   stickers.left(45)
532
   stickers.end_fill()
533
534
   #move forward
535
   stickers.penup()
536
   stickers.forward(35)
537
   stickers.pendown()
538
539
540
   stickers.color(udr)
541
   stickers.begin_fill()
542
   stickers.forward(25)
543
   stickers.left(135)
544
   stickers.forward(15.625)
545
   stickers.left(45)
546
   stickers.forward(25)
547
   stickers.left(135)
548
   stickers.forward(15.625)
549
   stickers.left(45)
550
   stickers.end_fill()
551
552
   #up a layer
553
   stickers.penup()
554
   stickers.right(180)
555
   stickers.forward(70)
556
   stickers.right(45)
557
   stickers.forward(20.625)
558
   stickers.right(135)
559
   stickers.pendown()
560
561
   stickers.color(uml)
562
   stickers.begin_fill()
563
   stickers.forward(25)
564
   stickers.left(135)
565
   stickers.forward(10.416667)
566
   stickers.left(45)
567
   stickers.forward(25)
568
   stickers.left(135)
569
   stickers.forward(10.416667)
570
   stickers.left(45)
571
   stickers.end_fill()
572
573
   #move forward
574
   stickers.penup()
575
   stickers.forward(35)
576
   stickers.pendown()
577
578
579
   stickers.color(umm)
580
   stickers.begin_fill()
581
   stickers.forward(25)
582
   stickers.left(135)
583
   stickers.forward(10.416667)
584
   stickers.left(45)
585
   stickers.forward(25)
586
   stickers.left(135)
587
   stickers.forward(10.416667)
588
   stickers.left(45)
589
   stickers.end_fill()
590
591
   #move forward
592
   stickers.penup()
593
   stickers.forward(35)
594
   stickers.pendown()
595
596
597
   stickers.color(umr)
598
   stickers.begin_fill()
599
   stickers.forward(25)
600
   stickers.left(135)
601
   stickers.forward(10.416667)
602
   stickers.left(45)
603
   stickers.forward(25)
604
   stickers.left(135)
605
   stickers.forward(10.416667)
606
   stickers.left(45)
607
   stickers.end_fill()
608
609
   #up a layer
610
   stickers.penup()
611
   stickers.right(180)
612
   stickers.forward(70)
613
   stickers.right(45)
614
   stickers.forward(13.416667)
615
   stickers.right(135)
616
   stickers.pendown()
617
618
   stickers.color(uul)
619
   stickers.begin_fill()
620
   stickers.forward(25)
621
   stickers.left(135)
622
   stickers.forward(9.94444)
623
   stickers.left(45)
624
   stickers.forward(25)
625
   stickers.left(135)
626
   stickers.forward(9.94444)
627
   stickers.left(45)
628
   stickers.end_fill()
629
630
   #move forward
631
   stickers.penup()
632
   stickers.forward(35)
633
   stickers.pendown()
634
635
636
   stickers.color(uum)
637
   stickers.begin_fill()
638
   stickers.forward(25)
639
   stickers.left(135)
640
   stickers.forward(9.94444)
641
   stickers.left(45)
642
   stickers.forward(25)
643
   stickers.left(135)
644
   stickers.forward(9.94444)
645
   stickers.left(45)
646
   stickers.end_fill()
647
648
   #move forward
649
   stickers.penup()
650
   stickers.forward(35)
651
   stickers.pendown()
652
653
654
   stickers.color(uur)
655
   stickers.begin_fill()
656
   stickers.forward(25)
657
   stickers.left(135)
658
   stickers.forward(9.94444)
659
   stickers.left(45)
660
   stickers.forward(25)
661
   stickers.left(135)
662
   stickers.forward(9.94444)
663
   stickers.left(45)
664
   stickers.end_fill()
665
666
   #start turns
667
   stickers.speed(0)
668
   stickers.penup()
669
   stickers.right(180)
670
   stickers.forward(70)
671
   stickers.left(135)
672
   stickers.forward(9.94444+10.416667+19.625)
673
   stickers.left(45)
674
   stickers.pendown()
675
   screen.update()
676
677
678
679
680
def draw2x2():
681
       stickers.clear()
682
       screen.tracer(0,0)
683
       stickers.speed(0)
684
       stickers.color("black")
685
       stickers.penup()
686
       stickers.backward(50)
687
       stickers.pendown()
688
       stickers.begin_fill()
689
       stickers.forward(100)
690
       stickers.left(90)
691
       stickers.forward(100)
692
       stickers.left(90)
693
       stickers.forward(100)
694
       stickers.left(90)
695
       stickers.forward(100)
696
       stickers.end_fill()
697
698
       stickers.setpos(0,0)
699
       stickers.penup()
700
       stickers.left(90)
701
       stickers.backward(50)
702
       stickers.pendown()
703
       stickers.begin_fill()
704
       stickers.left(135)
705
       stickers.forward(44)
706
       stickers.right(45)
707
       stickers.forward(100)
708
       stickers.right(135)
709
       stickers.forward(44)
710
       stickers.end_fill()
711
712
       stickers.left(180)
713
       stickers.begin_fill()
714
       stickers.forward(44)
715
       stickers.right(135)
716
       stickers.forward(100)
717
       stickers.right(45)
718
       stickers.forward(44)
719
       stickers.end_fill()
720
       stickers.penup()
721
722
       #stickers
723
       #front
724
       stickers.left(45)
725
       stickers.setpos(-50,100)
726
       stickers.right(90)
727
       stickers.forward(10)
728
       stickers.left(90)
729
       stickers.forward(10)
730
731
       def stickersfront():
732
           stickers.pendown()
733
           stickers.begin_fill()
734
           stickers.forward(35)
735
           stickers.right(90)
736
           stickers.forward(35)
737
           stickers.right(90)
738
           stickers.forward(35)
739
           stickers.right(90)
740
           stickers.forward(35)
741
           stickers.right(90)
742
           stickers.forward(35)
743
           stickers.end_fill()
744
           stickers.penup()
745
746
           stickers.forward(10)
747
748
749
       stickers.color(ful)
750
       stickersfront()
751
752
       stickers.color(fur)
753
       stickersfront()
754
755
       stickers.setpos(-40,45)
756
757
       stickers.color(fdl)
758
       stickersfront()
759
760
       stickers.color(fdr)
761
       stickersfront()
762
763
       #stickersleft
764
       stickers.setpos(-52.5,90)
765
       stickers.left(180)
766
       stickers.right(45)
767
       def stickersleft():
768
           stickers.pendown()
769
           stickers.begin_fill()
770
           stickers.forward(17.5)
771
           stickers.left(135)
772
           stickers.forward(35)
773
           stickers.left(45)
774
           stickers.forward(17.5)
775
           stickers.left(135)
776
           stickers.forward(35)
777
           stickers.end_fill()
778
           stickers.penup()
779
           stickers.left(45)
780
           stickers.forward(20)
781
782
783
       stickers.color(lur)
784
       stickersleft()
785
786
       stickers.color(lul)
787
       stickersleft()
788
789
       stickers.setpos(-52.5,45)
790
791
       stickers.color(ldr)
792
       stickersleft()
793
794
       stickers.color(ldl)
795
       stickersleft()
796
797
798
799
       #top face
800
       stickers.setpos(-45,103)
801
       stickers.right(135)
802
       def stickerstop():
803
           stickers.color(udl)
804
           stickers.pendown()
805
           stickers.begin_fill()
806
           stickers.forward(35)
807
           stickers.left(135)
808
           stickers.forward(17.5)
809
           stickers.left(45)
810
           stickers.forward(35)
811
           stickers.left(135)
812
           stickers.forward(17.5)
813
           stickers.end_fill()
814
           stickers.penup()
815
           stickers.left(180)
816
           stickers.forward(20.5)
817
           stickers.right(135)
818
           stickers.penup()
819
820
821
           stickers.color(uul)
822
           stickers.pendown()
823
           stickers.begin_fill()
824
           stickers.forward(35)
825
           stickers.left(135)
826
           stickers.forward(14.5)
827
           stickers.left(45)
828
           stickers.forward(35)
829
           stickers.left(135)
830
           stickers.forward(14.5)
831
           stickers.end_fill()
832
           stickers.penup()
833
           stickers.left(180)
834
           stickers.forward(20.5)
835
           stickers.right(135)
836
           stickers.penup()
837
838
           stickers.setpos(0,103)
839
840
           stickers.color(udr)
841
           stickers.pendown()
842
           stickers.begin_fill()
843
           stickers.forward(35)
844
           stickers.left(135)
845
           stickers.forward(17.5)
846
           stickers.left(45)
847
           stickers.forward(35)
848
           stickers.left(135)
849
           stickers.forward(17.5)
850
           stickers.end_fill()
851
           stickers.penup()
852
           stickers.left(180)
853
           stickers.forward(20.5)
854
           stickers.right(135)
855
           stickers.penup()
856
857
858
           stickers.color(uur)
859
           stickers.pendown()
860
           stickers.begin_fill()
861
           stickers.forward(35)
862
           stickers.left(135)
863
           stickers.forward(14.5)
864
           stickers.left(45)
865
           stickers.forward(35)
866
           stickers.left(135)
867
           stickers.forward(14.5)
868
           stickers.end_fill()
869
           stickers.penup()
870
           stickers.left(180)
871
           stickers.forward(20.5)
872
           stickers.right(135)
873
874
875
876
       stickerstop()
877
878
       stickers.setpos(0,0)
879
       screen.update()
880
881
882
883
884
885
886
887
888
889
890
cubeselect = 1
891
while cubeselect == 1:
892
893
   cube = input("What cube would you like? ")
894
   if cube == "3x3":
895
       #variable format (face,height,leftrightormiddle)
896
       #front
897
       ful = red
898
       fum = red
899
       fur = red
900
901
       fml = red
902
       fmm = red
903
       fmr = red
904
905
       fdl = red
906
       fdm = red
907
       fdr = red
908
909
       #back face
910
       bul = orange
911
       bum = orange
912
       bur = orange
913
914
       bml = orange
915
       bmm = orange
916
       bmr = orange
917
918
       bdl = orange
919
       bdm = orange
920
       bdr = orange
921
922
       #right face
923
       rul = green
924
       rum = green
925
       rur = green
926
927
       rml = green
928
       rmm = green
929
       rmr = green
930
931
       rdl = green
932
       rdm = green
933
       rdr = green
934
935
       #left face
936
       lul = blue
937
       lum = blue
938
       lur = blue
939
940
       lml = blue
941
       lmm = blue
942
       lmr = blue
943
944
       ldl = blue
945
       ldm = blue
946
       ldr = blue
947
948
       #top face
949
       uul = yellow
950
       uum = yellow
951
       uur = yellow
952
953
       uml = yellow
954
       umm = yellow
955
       umr = yellow
956
957
       udl = yellow
958
       udm = yellow
959
       udr = yellow
960
961
       #bottom face
962
       dul = white
963
       dum = white
964
       dur = white
965
966
       dml = white
967
       dmm = white
968
       dmr = white
969
970
       ddl = white
971
       ddm = white
972
       ddr = white
973
       stickers.clear()
974
       drawcube()
975
976
977
       print("Type a move you would like to make then hit enter and put in the next move you would like to make")
978
       print("type commands for a list of commands you can enter")
979
980
981
       stall=1
982
       while stall == 1:
983
           pause = input("Move:")
984
           pause = pause.lower()
985
           stickers.clear()
986
           if pause == "f":
987
               #front face
988
               #corners
989
               temp = ful
990
               ful = fdl
991
               fdl = fdr
992
               fdr = fur
993
               fur = temp
994
995
               #edges
996
               temp = fum
997
               fum = fml
998
               fml = fdm
999
               fdm = fmr
1000
               fmr = temp
1001
1002
               #ring around
1003
               #corners
1004
               temp = udl
1005
               udl = ldr
1006
               ldr = dur
1007
               dur = rul
1008
               rul = temp
1009
1010
               temp2 = udr
1011
               udr = lur
1012
               lur = dul
1013
               dul = rdl
1014
               rdl = temp2
1015
1016
               #edges
1017
               temp = udm
1018
               udm = lmr
1019
               lmr = dum
1020
               dum = rml
1021
               rml = temp
1022
1023
1024
1025
1026
           elif pause == "f'":
1027
               #front face
1028
               #corners
1029
               temp = ful
1030
               ful = fur
1031
               fur = fdr
1032
               fdr = fdl
1033
               fdl = temp
1034
               #edges
1035
               temp2 = fum
1036
               fum = fmr
1037
               fmr = fdm
1038
               fdm = fml
1039
               fml = temp2
1040
1041
               #ring around front face
1042
               #corners
1043
               temp = lur
1044
               temp2 = ldr
1045
1046
               lur = udr
1047
               ldr = udl
1048
1049
               udr = rdl
1050
               udl = rul
1051
1052
               rdl = dul
1053
               rul = dur
1054
1055
               dul = temp
1056
               dur = temp2
1057
1058
               #edges
1059
               temp = lmr
1060
1061
               lmr = udm
1062
1063
               udm = rml
1064
1065
               rml = dum
1066
1067
               dum = temp
1068
1069
1070
           elif pause == "u":
1071
               #top face turn
1072
               #corners
1073
               temp = uul
1074
               uul = udl
1075
               udl = udr
1076
               udr = uur
1077
               uur = temp
1078
1079
               #edges
1080
               temp = uml
1081
               uml = udm
1082
               udm = umr
1083
               umr = uum
1084
               uum = temp
1085
1086
               #ring around top
1087
               #corners
1088
               temp = lul
1089
               lul = ful
1090
               ful = rul
1091
               rul = bur
1092
               bur = temp
1093
1094
1095
               temp2 = lur
1096
               lur = fur
1097
               fur = rur
1098
               rur = bul
1099
               bul = temp2
1100
1101
               #edges
1102
               temp = lum
1103
               lum = fum
1104
               fum = rum
1105
               rum = bum
1106
               bum = temp
1107
1108
1109
1110
           elif pause == "u'":
1111
               #top face
1112
               temp = uul
1113
               uul = uur
1114
               uur = udr
1115
               udr = udl
1116
               udl = temp
1117
1118
               temp = uum
1119
               uum = umr
1120
               umr = udm
1121
               udm = uml
1122
               uml = temp
1123
1124
               #ring around top
1125
               #corners
1126
               temp = lul
1127
               lul = bur
1128
               bur = rul
1129
               rul = ful
1130
               ful = temp
1131
1132
               temp2 = lur
1133
               lur = bul
1134
               bul = rur
1135
               rur = fur
1136
               fur = temp2
1137
1138
               #edges
1139
               temp = lum
1140
               lum = bum
1141
               bum = rum
1142
               rum = fum
1143
               fum = temp
1144
1145
1146
           elif pause == "r":
1147
               #right face
1148
               temp = rul
1149
               rul = rdl
1150
               rdl = rdr
1151
               rdr = rur
1152
               rur = temp
1153
1154
               temp = rml
1155
               rml = rdm
1156
               rdm = rmr
1157
               rmr = rum
1158
               rum = temp
1159
1160
               #ring around right face
1161
               temp = fur
1162
               fur = dur
1163
               dur = bdr
1164
               bdr = uur
1165
               uur = temp
1166
1167
               temp2 = fdr
1168
               fdr = ddr
1169
               ddr = bur
1170
               bur = udr
1171
               udr = temp2
1172
1173
               temp = fmr
1174
               fmr = dmr
1175
               dmr = bmr
1176
               bmr = umr
1177
               umr = temp
1178
1179
1180
1181
           elif pause == "r'":
1182
               #right face
1183
               temp = rul
1184
               rul = rur
1185
               rur = rdr
1186
               rdr = rdl
1187
               rdl = temp
1188
1189
               temp = rml
1190
               rml = rum
1191
               rum = rmr
1192
               rmr = rdm
1193
               rdm = temp
1194
1195
               #ring around face
1196
               temp = fur
1197
               fur = uur
1198
               uur = bdr
1199
               bdr = dur
1200
               dur = temp
1201
1202
               temp2 = fdr
1203
               fdr = udr
1204
               udr = bur
1205
               bur = ddr
1206
               ddr = temp2
1207
1208
               temp = fmr
1209
               fmr = umr
1210
               umr = bmr
1211
               bmr = dmr
1212
               dmr = temp
1213
1214
           elif pause == "l":
1215
               #left face
1216
               #corners
1217
               temp = lul
1218
               lul = ldl
1219
               ldl = ldr
1220
               ldr = lur
1221
               lur = temp
1222
1223
               #edges
1224
               temp = lum
1225
               lum = lml
1226
               lml = ldm
1227
               ldm = lmr
1228
               lmr = temp
1229
1230
               #ring around left side
1231
               temp = ful
1232
               ful = uul
1233
               uul = bdl
1234
               bdl = dul
1235
               dul = temp
1236
1237
               temp2 = fdl
1238
               fdl = udl
1239
               udl = bul
1240
               bul = ddl
1241
               ddl = temp2
1242
1243
               #edges
1244
               temp = fml
1245
               fml = uml
1246
               uml = bml
1247
               bml = dml
1248
               dml = temp
1249
1250
           elif pause == "l'":
1251
               #left face
1252
               #corners
1253
               temp = lul
1254
               lul = lur
1255
               lur = ldr
1256
               ldr = ldl
1257
               ldl = temp
1258
1259
               #edges
1260
               temp = lum
1261
               lum = lmr
1262
               lmr = ldm
1263
               ldm = lml
1264
               lml = temp
1265
1266
               #ring around
1267
               #corners
1268
               temp = ful
1269
               ful = dul
1270
               dul = bdl
1271
               bdl = uul
1272
               uul = temp
1273
1274
               temp2 = fdl
1275
               fdl = ddl
1276
               ddl = bul
1277
               bul = udl
1278
               udl = temp2
1279
1280
               #edges
1281
               temp = fml
1282
               fml = dml
1283
               dml = bml
1284
               bml = uml
1285
               uml = temp
1286
1287
1288
           elif pause == "d":
1289
               #bottom face
1290
               #corners
1291
               temp = dul
1292
               dul = ddl
1293
               ddl = ddr
1294
               ddr = dur
1295
               dur = temp
1296
1297
               #edges
1298
               temp = dum
1299
               dum = dml
1300
               dml = ddm
1301
               ddm = dmr
1302
               dmr = temp
1303
1304
               #ring around layer
1305
               #corners
1306
               temp = fdl
1307
               fdl = ldl
1308
               ldl = bdr
1309
               bdr = rdl
1310
               rdl = temp
1311
1312
               temp2 = fdr
1313
               fdr = ldr
1314
               ldr = bdl
1315
               bdl = rdr
1316
               rdr = temp2
1317
1318
               #edges
1319
               temp = fdm
1320
               fdm = ldm
1321
               ldm = bdm
1322
               bdm = rdm
1323
               rdm = temp
1324
1325
           elif pause == "d'":
1326
               #bottom face
1327
               #corners
1328
               temp = dul
1329
               dul = dur
1330
               dur = ddr
1331
               ddr = ddl
1332
               ddl = temp
1333
1334
               #edges
1335
               temp = dum
1336
               dum = dmr
1337
               dmr = ddm
1338
               ddm = dml
1339
               dml = temp
1340
1341
               #ring around layer
1342
               #corners
1343
               temp = fdl
1344
               fdl = rdl
1345
               rdl = bdr
1346
               bdr = ldl
1347
               ldl = temp
1348
1349
               temp2 = fdr
1350
               fdr = rdr
1351
               rdr = bdl
1352
               bdl = ldr
1353
               ldr = temp2
1354
1355
               #edges
1356
               temp = fdm
1357
               fdm = rdm
1358
               rdm = bdm
1359
               bdm = ldm
1360
               ldm = temp
1361
1362
1363
           elif pause == "b":
1364
               #back face
1365
               #corners
1366
               temp = bul
1367
               bul = bur
1368
               bur = bdr
1369
               bdr = bdl
1370
               bdl = temp
1371
1372
               #edges
1373
               temp = bum
1374
               bum = bmr
1375
               bmr = bdm
1376
               bdm = bml
1377
               bml = temp
1378
1379
               #ring around layer
1380
               temp = uul
1381
               uul = rur
1382
               rur = ddr
1383
               ddr = ldl
1384
               ldl = temp
1385
1386
               temp2 = uur
1387
               uur = rdr
1388
               rdr = ddl
1389
               ddl = lul
1390
               lul = temp2
1391
1392
               #edges
1393
               temp = uum
1394
               uum = rmr
1395
               rmr = ddm
1396
               ddm = lml
1397
               lml = temp
1398
1399
           elif pause == "b'":
1400
               #back face
1401
               #corners
1402
               temp = bul
1403
               bul = bdl
1404
               bdl = bdr
1405
               bdr = bur
1406
               bur = temp
1407
1408
               #edges
1409
               temp = bum
1410
               bum = bml
1411
               bml = bdm
1412
               bdm = bmr
1413
               bmr = temp
1414
1415
               #ring around layer
1416
               #corners
1417
               temp = uul
1418
               uul = ldl
1419
               ldl = ddr
1420
               ddr = rur
1421
               rur = temp
1422
1423
               temp2 = uur
1424
               uur = lul
1425
               lul = ddl
1426
               ddl = rdr
1427
               rdr = temp2
1428
1429
               #edges
1430
               temp = uum
1431
               uum = lml
1432
               lml = ddm
1433
               ddm = rmr
1434
               rmr = temp
1435
1436
           elif pause == "solve":
1437
               ful = red
1438
               fum = red
1439
               fur = red
1440
1441
               fml = red
1442
               fmm = red
1443
               fmr = red
1444
1445
               fdl = red
1446
               fdm = red
1447
               fdr = red
1448
1449
               #back face
1450
               bul = orange
1451
               bum = orange
1452
               bur = orange
1453
1454
               bml = orange
1455
               bmm = orange
1456
               bmr = orange
1457
1458
               bdl = orange
1459
               bdm = orange
1460
               bdr = orange
1461
1462
               #right face
1463
               rul = green
1464
               rum = green
1465
               rur = green
1466
1467
               rml = green
1468
               rmm = green
1469
               rmr = green
1470
1471
               rdl = green
1472
               rdm = green
1473
               rdr = green
1474
1475
               #left face
1476
               lul = blue
1477
               lum = blue
1478
               lur = blue
1479
1480
               lml = blue
1481
               lmm = blue
1482
               lmr = blue
1483
1484
               ldl = blue
1485
               ldm = blue
1486
               ldr = blue
1487
1488
               #top face
1489
               uul = yellow
1490
               uum = yellow
1491
               uur = yellow
1492
1493
               uml = yellow
1494
               umm = yellow
1495
               umr = yellow
1496
1497
               udl = yellow
1498
               udm = yellow
1499
               udr = yellow
1500
1501
               #bottom face
1502
               dul = white
1503
               dum = white
1504
               dur = white
1505
1506
               dml = white
1507
               dmm = white
1508
               dmr = white
1509
1510
               ddl = white
1511
               ddm = white
1512
               ddr = white
1513
1514
               drawcube()
1515
1516
           elif pause == "y":
1517
1518
               #bottom rotation
1519
               #bottom face
1520
               #corners
1521
               temp = dul
1522
               dul = dur
1523
               dur = ddr
1524
               ddr = ddl
1525
               ddl = temp
1526
1527
               #edges
1528
               temp = dum
1529
               dum = dmr
1530
               dmr = ddm
1531
               ddm = dml
1532
               dml = temp
1533
1534
               #ring around layer
1535
               #corners
1536
               temp = fdl
1537
               fdl = rdl
1538
               rdl = bdr
1539
               bdr = ldl
1540
               ldl = temp
1541
1542
               temp2 = fdr
1543
               fdr = rdr
1544
               rdr = bdl
1545
               bdl = ldr
1546
               ldr = temp2
1547
1548
               #edges
1549
               temp = fdm
1550
               fdm = rdm
1551
               rdm = bdm
1552
               bdm = ldm
1553
               ldm = temp
1554
1555
1556
               #top rotation
1557
               #top face turn
1558
               #corners
1559
               temp = uul
1560
               uul = udl
1561
               udl = udr
1562
               udr = uur
1563
               uur = temp
1564
1565
               #edges
1566
               temp = uml
1567
               uml = udm
1568
               udm = umr
1569
               umr = uum
1570
               uum = temp
1571
1572
               #ring around top
1573
               #corners
1574
               temp = lul
1575
               lul = ful
1576
               ful = rul
1577
               rul = bur
1578
               bur = temp
1579
1580
1581
               temp2 = lur
1582
               lur = fur
1583
               fur = rur
1584
               rur = bul
1585
               bul = temp2
1586
1587
               #edges
1588
               temp = lum
1589
               lum = fum
1590
               fum = rum
1591
               rum = bum
1592
               bum = temp
1593
1594
               #middle layer rotation
1595
               temp = fml
1596
               fml = rml
1597
               rml = bmr
1598
               bmr = lml
1599
               lml = temp
1600
1601
               temp = fmm
1602
               fmm = rmm
1603
               rmm = bmm
1604
               bmm = lmm
1605
               lmm = temp
1606
1607
               temp = fmr
1608
               fmr = rmr
1609
               rmr = bml
1610
               bml = lmr
1611
               lmr = temp
1612
1613
           elif pause == "y'":
1614
               #top face
1615
               temp = uul
1616
               uul = uur
1617
               uur = udr
1618
               udr = udl
1619
               udl = temp
1620
1621
               temp = uum
1622
               uum = umr
1623
               umr = udm
1624
               udm = uml
1625
               uml = temp
1626
1627
               #ring around top
1628
               #corners
1629
               temp = lul
1630
               lul = bur
1631
               bur = rul
1632
               rul = ful
1633
               ful = temp
1634
1635
               temp2 = lur
1636
               lur = bul
1637
               bul = rur
1638
               rur = fur
1639
               fur = temp2
1640
1641
               #edges
1642
               temp = lum
1643
               lum = bum
1644
               bum = rum
1645
               rum = fum
1646
               fum = temp
1647
1648
               #middle
1649
               #centers
1650
               temp = fmm
1651
               fmm = lmm
1652
               lmm = bmm
1653
               bmm = rmm
1654
               rmm = temp
1655
1656
               #edges
1657
               temp = fml
1658
               fml = lml
1659
               lml = bmr
1660
               bmr = rml
1661
               rml = temp
1662
1663
               temp = fmr
1664
               fmr = lmr
1665
               lmr = bml
1666
               bml = rmr
1667
               rmr = temp
1668
1669
               #bottom face
1670
               #corners
1671
               temp = dul
1672
               dul = ddl
1673
               ddl = ddr
1674
               ddr = dur
1675
               dur = temp
1676
1677
               #edges
1678
               temp = dum
1679
               dum = dml
1680
               dml = ddm
1681
               ddm = dmr
1682
               dmr = temp
1683
1684
               #ring around layer
1685
               #corners
1686
               temp = fdl
1687
               fdl = ldl
1688
               ldl = bdr
1689
               bdr = rdl
1690
               rdl = temp
1691
1692
               temp2 = fdr
1693
               fdr = ldr
1694
               ldr = bdl
1695
               bdl = rdr
1696
               rdr = temp2
1697
1698
               #edges
1699
               temp = fdm
1700
               fdm = ldm
1701
               ldm = bdm
1702
               bdm = rdm
1703
               rdm = temp
1704
1705
           elif pause == "x":
1706
               #right face
1707
               temp = rul
1708
               rul = rdl
1709
               rdl = rdr
1710
               rdr = rur
1711
               rur = temp
1712
1713
               temp = rml
1714
               rml = rdm
1715
               rdm = rmr
1716
               rmr = rum
1717
               rum = temp
1718
1719
               #ring around right face
1720
               temp = fur
1721
               fur = dur
1722
               dur = bdr
1723
               bdr = uur
1724
               uur = temp
1725
1726
               temp2 = fdr
1727
               fdr = ddr
1728
               ddr = bur
1729
               bur = udr
1730
               udr = temp2
1731
1732
               temp = fmr
1733
               fmr = dmr
1734
               dmr = bmr
1735
               bmr = umr
1736
               umr = temp
1737
1738
               #middle
1739
               #centers
1740
               temp = dmm
1741
               dmm = bmm
1742
               bmm = umm
1743
               umm = fmm
1744
               fmm = temp
1745
1746
               #edges
1747
               temp = dum
1748
               dum = bdm
1749
               bdm = uum
1750
               uum = fum
1751
               fum = temp
1752
1753
               temp = ddm
1754
               ddm = bum
1755
               bum = udm
1756
               udm = fdm
1757
               fdm = temp
1758
1759
               #left face
1760
               #corners
1761
               temp = lul
1762
               lul = lur
1763
               lur = ldr
1764
               ldr = ldl
1765
               ldl = temp
1766
1767
               #edges
1768
               temp = lum
1769
               lum = lmr
1770
               lmr = ldm
1771
               ldm = lml
1772
               lml = temp
1773
1774
               #ring around
1775
               #corners
1776
               temp = ful
1777
               ful = dul
1778
               dul = bdl
1779
               bdl = uul
1780
               uul = temp
1781
1782
               temp2 = fdl
1783
               fdl = ddl
1784
               ddl = bul
1785
               bul = udl
1786
               udl = temp2
1787
1788
               #edges
1789
               temp = fml
1790
               fml = dml
1791
               dml = bml
1792
               bml = uml
1793
               uml = temp
1794
1795
           elif pause == "x'":
1796
               #right face
1797
               temp = rul
1798
               rul = rur
1799
               rur = rdr
1800
               rdr = rdl
1801
               rdl = temp
1802
1803
               temp = rml
1804
               rml = rum
1805
               rum = rmr
1806
               rmr = rdm
1807
               rdm = temp
1808
1809
               #ring around face
1810
               temp = fur
1811
               fur = uur
1812
               uur = bdr
1813
               bdr = dur
1814
               dur = temp
1815
1816
               temp2 = fdr
1817
               fdr = udr
1818
               udr = bur
1819
               bur = ddr
1820
               ddr = temp2
1821
1822
               temp = fmr
1823
               fmr = umr
1824
               umr = bmr
1825
               bmr = dmr
1826
               dmr = temp
1827
1828
               #left face
1829
               #corners
1830
               temp = lul
1831
               lul = ldl
1832
               ldl = ldr
1833
               ldr = lur
1834
               lur = temp
1835
1836
               #edges
1837
               temp = lum
1838
               lum = lml
1839
               lml = ldm
1840
               ldm = lmr
1841
               lmr = temp
1842
1843
               #ring around left side
1844
               temp = ful
1845
               ful = uul
1846
               uul = bdl
1847
               bdl = dul
1848
               dul = temp
1849
1850
               temp2 = fdl
1851
               fdl = udl
1852
               udl = bul
1853
               bul = ddl
1854
               ddl = temp2
1855
1856
               #edges
1857
               temp = fml
1858
               fml = uml
1859
               uml = bml
1860
               bml = dml
1861
               dml = temp
1862
1863
               #middle
1864
               #centers
1865
               temp = fmm
1866
               fmm = umm
1867
               umm = bmm
1868
               bmm = dmm
1869
               dmm = temp
1870
1871
               #edges
1872
               temp = fum
1873
               fum = uum
1874
               uum = bdm
1875
               bdm = dum
1876
               dum = temp
1877
1878
               temp = fdm
1879
               fdm = udm
1880
               udm = bum
1881
               bum = ddm
1882
               ddm = temp
1883
1884
           elif pause == "m":
1885
               #middle
1886
               #centers
1887
               temp = fmm
1888
               fmm = umm
1889
               umm = bmm
1890
               bmm = dmm
1891
               dmm = temp
1892
1893
               #edges
1894
               temp = fum
1895
               fum = uum
1896
               uum = bdm
1897
               bdm = dum
1898
               dum = temp
1899
1900
               temp = fdm
1901
               fdm = udm
1902
               udm = bum
1903
               bum = ddm
1904
               ddm = temp
1905
1906
           elif pause == "m'":
1907
               #middle
1908
               #centers
1909
               temp = dmm
1910
               dmm = bmm
1911
               bmm = umm
1912
               umm = fmm
1913
               fmm = temp
1914
1915
               #edges
1916
               temp = dum
1917
               dum = bdm
1918
               bdm = uum
1919
               uum = fum
1920
               fum = temp
1921
1922
               temp = ddm
1923
               ddm = bum
1924
               bum = udm
1925
               udm = fdm
1926
               fdm = temp
1927
               
1928
1929
               
1930
               
1931
1932
1933
           elif pause == "commands":
1934
               print("These are the commands you can use on the cube:")
1935
               print("f/f': turns the front face of the cube")
1936
               print("b/b': turn the back face of the cube")
1937
               print("u/u': turns the top face of the cube")
1938
               print("d/d': turns the bottom face of the cube")
1939
               print("r/r': turns the right face of the cube")
1940
               print("l/l': turns the left face of the cube")
1941
               print("y/y': rotates the entire cube like a U/U' turn")
1942
               print("x/x': rotates the entire cube like an R/R' turn")
1943
               print("m/m': turns the middle layer like abd L/L' turn")
1944
               print("scramble: scrambles the cube")
1945
               print("solve: solves the cube")
1946
               print("back: goes back to cube selection")
1947
1948
1949
           elif pause == "scramble":
1950
               moves = ["f", "f'", "u", "u'", "r", "r'", "l", "l'", "d", "d'", "b", "b'"]
1951
               scrambling = 0
1952
               while scrambling != 40:
1953
                   scramblemove = random.choice(moves)
1954
                   scrambling = scrambling + 1
1955
                   print(scramblemove)
1956
                   stickers.clear()
1957
                   if scramblemove == "f":
1958
                       #front face
1959
                       #corners
1960
                       temp = ful
1961
                       ful = fdl
1962
                       fdl = fdr
1963
                       fdr = fur
1964
                       fur = temp
1965
1966
                       #edges
1967
                       temp = fum
1968
                       fum = fml
1969
                       fml = fdm
1970
                       fdm = fmr
1971
                       fmr = temp
1972
1973
                       #ring around
1974
                       #corners
1975
                       temp = udl
1976
                       udl = ldr
1977
                       ldr = dur
1978
                       dur = rul
1979
                       rul = temp
1980
1981
                       temp2 = udr
1982
                       udr = lur
1983
                       lur = dul
1984
                       dul = rdl
1985
                       rdl = temp2
1986
1987
                       #edges
1988
                       temp = udm
1989
                       udm = lmr
1990
                       lmr = dum
1991
                       dum = rml
1992
                       rml = temp
1993
1994
1995
1996
1997
                   elif scramblemove == "f'":
1998
                       #front face
1999
                       #corners
2000
                       temp = ful
2001
                       ful = fur
2002
                       fur = fdr
2003
                       fdr = fdl
2004
                       fdl = temp
2005
                       #edges
2006
                       temp2 = fum
2007
                       fum = fmr
2008
                       fmr = fdm
2009
                       fdm = fml
2010
                       fml = temp2
2011
2012
                       #ring around front face
2013
                       #corners
2014
                       temp = lur
2015
                       temp2 = ldr
2016
2017
                       lur = udr
2018
                       ldr = udl
2019
2020
                       udr = rdl
2021
                       udl = rul
2022
2023
                       rdl = dul
2024
                       rul = dur
2025
2026
                       dul = temp
2027
                       dur = temp2
2028
2029
                       #edges
2030
                       temp = lmr
2031
2032
                       lmr = udm
2033
2034
                       udm = rml
2035
2036
                       rml = dum
2037
2038
                       dum = temp
2039
2040
2041
                   elif scramblemove == "u":
2042
                       #top face turn
2043
                       #corners
2044
                       temp = uul
2045
                       uul = udl
2046
                       udl = udr
2047
                       udr = uur
2048
                       uur = temp
2049
2050
                       #edges
2051
                       temp = uml
2052
                       uml = udm
2053
                       udm = umr
2054
                       umr = uum
2055
                       uum = temp
2056
2057
                       #ring around top
2058
                       #corners
2059
                       temp = lul
2060
                       lul = ful
2061
                       ful = rul
2062
                       rul = bur
2063
                       bur = temp
2064
2065
2066
                       temp2 = lur
2067
                       lur = fur
2068
                       fur = rur
2069
                       rur = bul
2070
                       bul = temp2
2071
2072
                       #edges
2073
                       temp = lum
2074
                       lum = fum
2075
                       fum = rum
2076
                       rum = bum
2077
                       bum = temp
2078
2079
2080
2081
                   elif scramblemove == "u'":
2082
                       #top face
2083
                       temp = uul
2084
                       uul = uur
2085
                       uur = udr
2086
                       udr = udl
2087
                       udl = temp
2088
2089
                       temp = uum
2090
                       uum = umr
2091
                       umr = udm
2092
                       udm = uml
2093
                       uml = temp
2094
2095
                       #ring around top
2096
                       #corners
2097
                       temp = lul
2098
                       lul = bur
2099
                       bur = rul
2100
                       rul = ful
2101
                       ful = temp
2102
2103
                       temp2 = lur
2104
                       lur = bul
2105
                       bul = rur
2106
                       rur = fur
2107
                       fur = temp2
2108
2109
                       #edges
2110
                       temp = lum
2111
                       lum = bum
2112
                       bum = rum
2113
                       rum = fum
2114
                       fum = temp
2115
2116
2117
                   elif scramblemove == "r":
2118
                       #right face
2119
                       temp = rul
2120
                       rul = rdl
2121
                       rdl = rdr
2122
                       rdr = rur
2123
                       rur = temp
2124
2125
                       temp = rml
2126
                       rml = rdm
2127
                       rdm = rmr
2128
                       rmr = rum
2129
                       rum = temp
2130
2131
                       #ring around right face
2132
                       temp = fur
2133
                       fur = dur
2134
                       dur = bdr
2135
                       bdr = uur
2136
                       uur = temp
2137
2138
                       temp2 = fdr
2139
                       fdr = ddr
2140
                       ddr = bur
2141
                       bur = udr
2142
                       udr = temp2
2143
2144
                       temp = fmr
2145
                       fmr = dmr
2146
                       dmr = bmr
2147
                       bmr = umr
2148
                       umr = temp
2149
2150
2151
2152
                   elif scramblemove == "r'":
2153
                       #right face
2154
                       temp = rul
2155
                       rul = rur
2156
                       rur = rdr
2157
                       rdr = rdl
2158
                       rdl = temp
2159
2160
                       temp = rml
2161
                       rml = rum
2162
                       rum = rmr
2163
                       rmr = rdm
2164
                       rdm = temp
2165
2166
                       #ring around face
2167
                       temp = fur
2168
                       fur = uur
2169
                       uur = bdr
2170
                       bdr = dur
2171
                       dur = temp
2172
2173
                       temp2 = fdr
2174
                       fdr = udr
2175
                       udr = bur
2176
                       bur = ddr
2177
                       ddr = temp2
2178
2179
                       temp = fmr
2180
                       fmr = umr
2181
                       umr = bmr
2182
                       bmr = dmr
2183
                       dmr = temp
2184
2185
                   elif scramblemove == "l":
2186
                       #left face
2187
                       #corners
2188
                       temp = lul
2189
                       lul = ldl
2190
                       ldl = ldr
2191
                       ldr = lur
2192
                       lur = temp
2193
2194
                       #edges
2195
                       temp = lum
2196
                       lum = lml
2197
                       lml = ldm
2198
                       ldm = lmr
2199
                       lmr = temp
2200
2201
                       #ring around left side
2202
                       temp = ful
2203
                       ful = uul
2204
                       uul = bdl
2205
                       bdl = dul
2206
                       dul = temp
2207
2208
                       temp2 = fdl
2209
                       fdl = udl
2210
                       udl = bul
2211
                       bul = ddl
2212
                       ddl = temp2
2213
2214
                       #edges
2215
                       temp = fml
2216
                       fml = uml
2217
                       uml = bml
2218
                       bml = dml
2219
                       dml = temp
2220
2221
                   elif scramblemove == "l'":
2222
                       #left face
2223
                       #corners
2224
                       temp = lul
2225
                       lul = lur
2226
                       lur = ldr
2227
                       ldr = ldl
2228
                       ldl = temp
2229
2230
                       #edges
2231
                       temp = lum
2232
                       lum = lmr
2233
                       lmr = ldm
2234
                       ldm = lml
2235
                       lml = temp
2236
2237
                       #ring around
2238
                       #corners
2239
                       temp = ful
2240
                       ful = dul
2241
                       dul = bdl
2242
                       bdl = uul
2243
                       uul = temp
2244
2245
                       temp2 = fdl
2246
                       fdl = ddl
2247
                       ddl = bul
2248
                       bul = udl
2249
                       udl = temp2
2250
2251
                       #edges
2252
                       temp = fml
2253
                       fml = dml
2254
                       dml = bml
2255
                       bml = uml
2256
                       uml = temp
2257
2258
2259
                   elif scramblemove == "d":
2260
                       #bottom face
2261
                       #corners
2262
                       temp = dul
2263
                       dul = ddl
2264
                       ddl = ddr
2265
                       ddr = dur
2266
                       dur = temp
2267
2268
                       #edges
2269
                       temp = dum
2270
                       dum = dml
2271
                       dml = ddm
2272
                       ddm = dmr
2273
                       dmr = temp
2274
2275
                       #ring around layer
2276
                       #corners
2277
                       temp = fdl
2278
                       fdl = ldl
2279
                       ldl = bdr
2280
                       bdr = rdl
2281
                       rdl = temp
2282
2283
                       temp2 = fdr
2284
                       fdr = ldr
2285
                       ldr = bdl
2286
                       bdl = rdr
2287
                       rdr = temp2
2288
2289
                       #edges
2290
                       temp = fdm
2291
                       fdm = ldm
2292
                       ldm = bdm
2293
                       bdm = rdm
2294
                       rdm = temp
2295
2296
                   elif scramblemove == "d'":
2297
                       #bottom face
2298
                       #corners
2299
                       temp = dul
2300
                       dul = dur
2301
                       dur = ddr
2302
                       ddr = ddl
2303
                       ddl = temp
2304
2305
                       #edges
2306
                       temp = dum
2307
                       dum = dmr
2308
                       dmr = ddm
2309
                       ddm = dml
2310
                       dml = temp
2311
2312
                       #ring around layer
2313
                       #corners
2314
                       temp = fdl
2315
                       fdl = rdl
2316
                       rdl = bdr
2317
                       bdr = ldl
2318
                       ldl = temp
2319
2320
                       temp2 = fdr
2321
                       fdr = rdr
2322
                       rdr = bdl
2323
                       bdl = ldr
2324
                       ldr = temp2
2325
2326
                       #edges
2327
                       temp = fdm
2328
                       fdm = rdm
2329
                       rdm = bdm
2330
                       bdm = ldm
2331
                       ldm = temp
2332
2333
2334
                   elif scramblemove == "b":
2335
                       #back face
2336
                       #corners
2337
                       temp = bul
2338
                       bul = bur
2339
                       bur = bdr
2340
                       bdr = bdl
2341
                       bdl = temp
2342
2343
                       #edges
2344
                       temp = bum
2345
                       bum = bmr
2346
                       bmr = bdm
2347
                       bdm = bml
2348
                       bml = temp
2349
2350
                       #ring around layer
2351
                       temp = uul
2352
                       uul = rur
2353
                       rur = ddr
2354
                       ddr = ldl
2355
                       ldl = temp
2356
2357
                       temp2 = uur
2358
                       uur = rdr
2359
                       rdr = ddl
2360
                       ddl = lul
2361
                       lul = temp2
2362
2363
                       #edges
2364
                       temp = uum
2365
                       uum = rmr
2366
                       rmr = ddm
2367
                       ddm = lml
2368
                       lml = temp
2369
2370
                   elif scramblemove == "b'":
2371
                       #back face
2372
                       #corners
2373
                       temp = bul
2374
                       bul = bdl
2375
                       bdl = bdr
2376
                       bdr = bur
2377
                       bur = temp
2378
2379
                       #edges
2380
                       temp = bum
2381
                       bum = bml
2382
                       bml = bdm
2383
                       bdm = bmr
2384
                       bmr = temp
2385
2386
                       #ring around layer
2387
                       #corners
2388
                       temp = uul
2389
                       uul = ldl
2390
                       ldl = ddr
2391
                       ddr = rur
2392
                       rur = temp
2393
2394
                       temp2 = uur
2395
                       uur = lul
2396
                       lul = ddl
2397
                       ddl = rdr
2398
                       rdr = temp2
2399
2400
                       #edges
2401
                       temp = uum
2402
                       uum = lml
2403
                       lml = ddm
2404
                       ddm = rmr
2405
                       rmr = temp
2406
                   drawcube()
2407
2408
           elif pause == "solve the long way":
2409
               scrambling = 0
2410
               if ful == red:
2411
                   if fum == red:
2412
                       if fur == red:
2413
                           if fml == red:
2414
                               if fmm == red:
2415
                                   if fmr == red:
2416
                                       if fdl == red:
2417
                                           if fdm == red:
2418
                                               if fdr == red:
2419
2420
                                                   #back face
2421
                                                   if bul == orange:
2422
                                                       if bum == orange:
2423
                                                           if bur == orange:
2424
2425
                                                               if bml == orange:
2426
                                                                   if bmm == orange:
2427
                                                                       if bmr == orange:
2428
2429
                                                                           if bdl == orange:
2430
                                                                               if bdm == orange:
2431
                                                                                   if bdr == orange:
2432
2433
                                                                                       #right face
2434
                                                                                       if rul == green:
2435
                                                                                           if rum == green:
2436
                                                                                               if rur == green:
2437
2438
                                                                                                   if rml == green:
2439
                                                                                                       if rmm == green:
2440
                                                                                                           if rmr == green:
2441
2442
                                                                                                               if rdl == green:
2443
                                                                                                                   if rdm == green:
2444
                                                                                                                       if rdr == green:
2445
2446
                                                                                                                           #left face
2447
                                                                                                                           if lul == blue:
2448
                                                                                                                               if lum == blue:
2449
                                                                                                                                   if lur ==blue:
2450
2451
                                                                                                                                       if lml == blue:
2452
                                                                                                                                           if lmm ==blue:
2453
                                                                                                                                               if lmr == blue:
2454
2455
                                                                                                                                                   if ldl == blue:
2456
                                                                                                                                                       if ldm == blue:
2457
                                                                                                                                                           if ldr == blue:
2458
2459
                                                                                                                                                               #top face
2460
                                                                                                                                                               if uul == yellow:
2461
                                                                                                                                                                   if uum == yellow:
2462
                                                                                                                                                                       if uur == yellow:
2463
2464
                                                                                                                                                                           if uml == yellow:
2465
                                                                                                                                                                               if umm == yellow:
2466
                                                                                                                                                                                   if umr == yellow:
2467
2468
                                                                                                                                                                                       if udl == yellow:
2469
                                                                                                                                                                                           if udm == yellow:
2470
                                                                                                                                                                                               if udr == yellow:
2471
2472
                                                                                                                                                                                                   #bottom face
2473
                                                                                                                                                                                                   if dul == white:
2474
                                                                                                                                                                                                       if dum == white:
2475
                                                                                                                                                                                                           if dur == white:
2476
2477
                                                                                                                                                                                                               if dml == white:
2478
                                                                                                                                                                                                                   if dmm == white:
2479
                                                                                                                                                                                                                       if dmr == white:
2480
2481
                                                                                                                                                                                                                           if ddl == white:
2482
                                                                                                                                                                                                                               if ddm == white:
2483
                                                                                                                                                                                                                                   if ddr == white:
2484
                                                                                                                                                                                                                                       scrambling = scrambling + 1
2485
                                                                                                                                                                                                                                       print("solved")
2486
                                                                                                                                                                                                                                       drawcube()
2487
2488
2489
               else:
2490
                   moves = ["f", "f'", "u", "u'", "r", "r'", "l", "l'", "d", "d'", "b", "b'"]
2491
                   while scrambling != 1:
2492
                       scramblemove = random.choice(moves)
2493
                       stickers.clear()
2494
                       if scramblemove == "f":
2495
                           #front face
2496
                           #corners
2497
                           temp = ful
2498
                           ful = fdl
2499
                           fdl = fdr
2500
                           fdr = fur
2501
                           fur = temp
2502
2503
                           #edges
2504
                           temp = fum
2505
                           fum = fml
2506
                           fml = fdm
2507
                           fdm = fmr
2508
                           fmr = temp
2509
2510
                           #ring around
2511
                           #corners
2512
                           temp = udl
2513
                           udl = ldr
2514
                           ldr = dur
2515
                           dur = rul
2516
                           rul = temp
2517
2518
                           temp2 = udr
2519
                           udr = lur
2520
                           lur = dul
2521
                           dul = rdl
2522
                           rdl = temp2
2523
2524
                           #edges
2525
                           temp = udm
2526
                           udm = lmr
2527
                           lmr = dum
2528
                           dum = rml
2529
                           rml = temp
2530
2531
2532
2533
2534
                       elif scramblemove == "f'":
2535
                           #front face
2536
                           #corners
2537
                           temp = ful
2538
                           ful = fur
2539
                           fur = fdr
2540
                           fdr = fdl
2541
                           fdl = temp
2542
                           #edges
2543
                           temp2 = fum
2544
                           fum = fmr
2545
                           fmr = fdm
2546
                           fdm = fml
2547
                           fml = temp2
2548
2549
                           #ring around front face
2550
                           #corners
2551
                           temp = lur
2552
                           temp2 = ldr
2553
2554
                           lur = udr
2555
                           ldr = udl
2556
2557
                           udr = rdl
2558
                           udl = rul
2559
2560
                           rdl = dul
2561
                           rul = dur
2562
2563
                           dul = temp
2564
                           dur = temp2
2565
2566
                           #edges
2567
                           temp = lmr
2568
2569
                           lmr = udm
2570
2571
                           udm = rml
2572
2573
                           rml = dum
2574
2575
                           dum = temp
2576
2577
2578
                       elif scramblemove == "u":
2579
                           #top face turn
2580
                           #corners
2581
                           temp = uul
2582
                           uul = udl
2583
                           udl = udr
2584
                           udr = uur
2585
                           uur = temp
2586
2587
                           #edges
2588
                           temp = uml
2589
                           uml = udm
2590
                           udm = umr
2591
                           umr = uum
2592
                           uum = temp
2593
2594
                           #ring around top
2595
                           #corners
2596
                           temp = lul
2597
                           lul = ful
2598
                           ful = rul
2599
                           rul = bur
2600
                           bur = temp
2601
2602
2603
                           temp2 = lur
2604
                           lur = fur
2605
                           fur = rur
2606
                           rur = bul
2607
                           bul = temp2
2608
2609
                           #edges
2610
                           temp = lum
2611
                           lum = fum
2612
                           fum = rum
2613
                           rum = bum
2614
                           bum = temp
2615
2616
2617
2618
                       elif scramblemove == "u'":
2619
                           #top face
2620
                           temp = uul
2621
                           uul = uur
2622
                           uur = udr
2623
                           udr = udl
2624
                           udl = temp
2625
2626
                           temp = uum
2627
                           uum = umr
2628
                           umr = udm
2629
                           udm = uml
2630
                           uml = temp
2631
2632
                           #ring around top
2633
                           #corners
2634
                           temp = lul
2635
                           lul = bur
2636
                           bur = rul
2637
                           rul = ful
2638
                           ful = temp
2639
2640
                           temp2 = lur
2641
                           lur = bul
2642
                           bul = rur
2643
                           rur = fur
2644
                           fur = temp2
2645
2646
                           #edges
2647
                           temp = lum
2648
                           lum = bum
2649
                           bum = rum
2650
                           rum = fum
2651
                           fum = temp
2652
2653
2654
                       elif scramblemove == "r":
2655
                           #right face
2656
                           temp = rul
2657
                           rul = rdl
2658
                           rdl = rdr
2659
                           rdr = rur
2660
                           rur = temp
2661
2662
                           temp = rml
2663
                           rml = rdm
2664
                           rdm = rmr
2665
                           rmr = rum
2666
                           rum = temp
2667
2668
                           #ring around right face
2669
                           temp = fur
2670
                           fur = dur
2671
                           dur = bdr
2672
                           bdr = uur
2673
                           uur = temp
2674
2675
                           temp2 = fdr
2676
                           fdr = ddr
2677
                           ddr = bur
2678
                           bur = udr
2679
                           udr = temp2
2680
2681
                           temp = fmr
2682
                           fmr = dmr
2683
                           dmr = bmr
2684
                           bmr = umr
2685
                           umr = temp
2686
2687
2688
2689
                       elif scramblemove == "r'":
2690
                           #right face
2691
                           temp = rul
2692
                           rul = rur
2693
                           rur = rdr
2694
                           rdr = rdl
2695
                           rdl = temp
2696
2697
                           temp = rml
2698
                           rml = rum
2699
                           rum = rmr
2700
                           rmr = rdm
2701
                           rdm = temp
2702
2703
                           #ring around face
2704
                           temp = fur
2705
                           fur = uur
2706
                           uur = bdr
2707
                           bdr = dur
2708
                           dur = temp
2709
2710
                           temp2 = fdr
2711
                           fdr = udr
2712
                           udr = bur
2713
                           bur = ddr
2714
                           ddr = temp2
2715
2716
                           temp = fmr
2717
                           fmr = umr
2718
                           umr = bmr
2719
                           bmr = dmr
2720
                           dmr = temp
2721
2722
                       elif scramblemove == "l":
2723
                           #left face
2724
                           #corners
2725
                           temp = lul
2726
                           lul = ldl
2727
                           ldl = ldr
2728
                           ldr = lur
2729
                           lur = temp
2730
2731
                           #edges
2732
                           temp = lum
2733
                           lum = lml
2734
                           lml = ldm
2735
                           ldm = lmr
2736
                           lmr = temp
2737
2738
                           #ring around left side
2739
                           temp = ful
2740
                           ful = uul
2741
                           uul = bdl
2742
                           bdl = dul
2743
                           dul = temp
2744
2745
                           temp2 = fdl
2746
                           fdl = udl
2747
                           udl = bul
2748
                           bul = ddl
2749
                           ddl = temp2
2750
2751
                           #edges
2752
                           temp = fml
2753
                           fml = uml
2754
                           uml = bml
2755
                           bml = dml
2756
                           dml = temp
2757
2758
                       elif scramblemove == "l'":
2759
                           #left face
2760
                           #corners
2761
                           temp = lul
2762
                           lul = lur
2763
                           lur = ldr
2764
                           ldr = ldl
2765
                           ldl = temp
2766
2767
                           #edges
2768
                           temp = lum
2769
                           lum = lmr
2770
                           lmr = ldm
2771
                           ldm = lml
2772
                           lml = temp
2773
2774
                           #ring around
2775
                           #corners
2776
                           temp = ful
2777
                           ful = dul
2778
                           dul = bdl
2779
                           bdl = uul
2780
                           uul = temp
2781
2782
                           temp2 = fdl
2783
                           fdl = ddl
2784
                           ddl = bul
2785
                           bul = udl
2786
                           udl = temp2
2787
2788
                           #edges
2789
                           temp = fml
2790
                           fml = dml
2791
                           dml = bml
2792
                           bml = uml
2793
                           uml = temp
2794
2795
2796
                       elif scramblemove == "d":
2797
                           #bottom face
2798
                           #corners
2799
                           temp = dul
2800
                           dul = ddl
2801
                           ddl = ddr
2802
                           ddr = dur
2803
                           dur = temp
2804
2805
                           #edges
2806
                           temp = dum
2807
                           dum = dml
2808
                           dml = ddm
2809
                           ddm = dmr
2810
                           dmr = temp
2811
2812
                           #ring around layer
2813
                           #corners
2814
                           temp = fdl
2815
                           fdl = ldl
2816
                           ldl = bdr
2817
                           bdr = rdl
2818
                           rdl = temp
2819
2820
                           temp2 = fdr
2821
                           fdr = ldr
2822
                           ldr = bdl
2823
                           bdl = rdr
2824
                           rdr = temp2
2825
2826
                           #edges
2827
                           temp = fdm
2828
                           fdm = ldm
2829
                           ldm = bdm
2830
                           bdm = rdm
2831
                           rdm = temp
2832
2833
                       elif scramblemove == "d'":
2834
                           #bottom face
2835
                           #corners
2836
                           temp = dul
2837
                           dul = dur
2838
                           dur = ddr
2839
                           ddr = ddl
2840
                           ddl = temp
2841
2842
                           #edges
2843
                           temp = dum
2844
                           dum = dmr
2845
                           dmr = ddm
2846
                           ddm = dml
2847
                           dml = temp
2848
2849
                           #ring around layer
2850
                           #corners
2851
                           temp = fdl
2852
                           fdl = rdl
2853
                           rdl = bdr
2854
                           bdr = ldl
2855
                           ldl = temp
2856
2857
                           temp2 = fdr
2858
                           fdr = rdr
2859
                           rdr = bdl
2860
                           bdl = ldr
2861
                           ldr = temp2
2862
2863
                           #edges
2864
                           temp = fdm
2865
                           fdm = rdm
2866
                           rdm = bdm
2867
                           bdm = ldm
2868
                           ldm = temp
2869
2870
2871
                       elif scramblemove == "b":
2872
                           #back face
2873
                           #corners
2874
                           temp = bul
2875
                           bul = bur
2876
                           bur = bdr
2877
                           bdr = bdl
2878
                           bdl = temp
2879
2880
                           #edges
2881
                           temp = bum
2882
                           bum = bmr
2883
                           bmr = bdm
2884
                           bdm = bml
2885
                           bml = temp
2886
2887
                           #ring around layer
2888
                           temp = uul
2889
                           uul = rur
2890
                           rur = ddr
2891
                           ddr = ldl
2892
                           ldl = temp
2893
2894
                           temp2 = uur
2895
                           uur = rdr
2896
                           rdr = ddl
2897
                           ddl = lul
2898
                           lul = temp2
2899
2900
                           #edges
2901
                           temp = uum
2902
                           uum = rmr
2903
                           rmr = ddm
2904
                           ddm = lml
2905
                           lml = temp
2906
2907
                       elif scramblemove == "b'":
2908
                           #back face
2909
                           #corners
2910
                           temp = bul
2911
                           bul = bdl
2912
                           bdl = bdr
2913
                           bdr = bur
2914
                           bur = temp
2915
2916
                           #edges
2917
                           temp = bum
2918
                           bum = bml
2919
                           bml = bdm
2920
                           bdm = bmr
2921
                           bmr = temp
2922
2923
                           #ring around layer
2924
                           #corners
2925
                           temp = uul
2926
                           uul = ldl
2927
                           ldl = ddr
2928
                           ddr = rur
2929
                           rur = temp
2930
2931
                           temp2 = uur
2932
                           uur = lul
2933
                           lul = ddl
2934
                           ddl = rdr
2935
                           rdr = temp2
2936
2937
                           #edges
2938
                           temp = uum
2939
                           uum = lml
2940
                           lml = ddm
2941
                           ddm = rmr
2942
                           rmr = temp
2943
2944
           elif pause == "back":
2945
               stall = 0
2946
2947
2948
           elif pause == "move":
2949
               drawcube()
2950
           drawcube()
2951
2952
2953
   elif cube == "2x2":
2954
       #variable format (face,height,leftrightormiddle)
2955
       #front
2956
       ful = red
2957
       fum = red
2958
       fur = red
2959
2960
       fml = red
2961
       fmm = red
2962
       fmr = red
2963
2964
       fdl = red
2965
       fdm = red
2966
       fdr = red
2967
2968
       #back face
2969
       bul = orange
2970
       bum = orange
2971
       bur = orange
2972
2973
       bml = orange
2974
       bmm = orange
2975
       bmr = orange
2976
2977
       bdl = orange
2978
       bdm = orange
2979
       bdr = orange
2980
2981
       #right face
2982
       rul = green
2983
       rum = green
2984
       rur = green
2985
2986
       rml = green
2987
       rmm = green
2988
       rmr = green
2989
2990
       rdl = green
2991
       rdm = green
2992
       rdr = green
2993
2994
       #left face
2995
       lul = blue
2996
       lum = blue
2997
       lur = blue
2998
2999
       lml = blue
3000
       lmm = blue
3001
       lmr = blue
3002
3003
       ldl = blue
3004
       ldm = blue
3005
       ldr = blue
3006
3007
       #top face
3008
       uul = yellow
3009
       uum = yellow
3010
       uur = yellow
3011
3012
       uml = yellow
3013
       umm = yellow
3014
       umr = yellow
3015
3016
       udl = yellow
3017
       udm = yellow
3018
       udr = yellow
3019
3020
       #bottom face
3021
       dul = white
3022
       dum = white
3023
       dur = white
3024
3025
       dml = white
3026
       dmm = white
3027
       dmr = white
3028
3029
       ddl = white
3030
       ddm = white
3031
       ddr = white
3032
       stickers.clear()
3033
       draw2x2()
3034
       #2x2 turns
3035
       print("Type a move you would like to make then hit enter and put in the next move you would like to make")
3036
       print("type commands for a list of commands you can enter")
3037
3038
3039
       stall=1
3040
       while stall == 1:
3041
               pause = input("Move:")
3042
               pause = pause.lower()
3043
               stickers.clear()
3044
               if pause == "f":
3045
                   #front face
3046
                   #corners
3047
                   temp = ful
3048
                   ful = fdl
3049
                   fdl = fdr
3050
                   fdr = fur
3051
                   fur = temp
3052
3053
                   #edges
3054
                   temp = fum
3055
                   fum = fml
3056
                   fml = fdm
3057
                   fdm = fmr
3058
                   fmr = temp
3059
3060
                   #ring around
3061
                   #corners
3062
                   temp = udl
3063
                   udl = ldr
3064
                   ldr = dur
3065
                   dur = rul
3066
                   rul = temp
3067
3068
                   temp2 = udr
3069
                   udr = lur
3070
                   lur = dul
3071
                   dul = rdl
3072
                   rdl = temp2
3073
3074
                   #edges
3075
                   temp = udm
3076
                   udm = lmr
3077
                   lmr = dum
3078
                   dum = rml
3079
                   rml = temp
3080
3081
3082
3083
3084
               elif pause == "f'":
3085
                   #front face
3086
                   #corners
3087
                   temp = ful
3088
                   ful = fur
3089
                   fur = fdr
3090
                   fdr = fdl
3091
                   fdl = temp
3092
                   #edges
3093
                   temp2 = fum
3094
                   fum = fmr
3095
                   fmr = fdm
3096
                   fdm = fml
3097
                   fml = temp2
3098
3099
                   #ring around front face
3100
                   #corners
3101
                   temp = lur
3102
                   temp2 = ldr
3103
3104
                   lur = udr
3105
                   ldr = udl
3106
3107
                   udr = rdl
3108
                   udl = rul
3109
3110
                   rdl = dul
3111
                   rul = dur
3112
3113
                   dul = temp
3114
                   dur = temp2
3115
3116
                   #edges
3117
                   temp = lmr
3118
3119
                   lmr = udm
3120
3121
                   udm = rml
3122
3123
                   rml = dum
3124
3125
                   dum = temp
3126
3127
3128
               elif pause == "u":
3129
                   #top face turn
3130
                   #corners
3131
                   temp = uul
3132
                   uul = udl
3133
                   udl = udr
3134
                   udr = uur
3135
                   uur = temp
3136
3137
                   #edges
3138
                   temp = uml
3139
                   uml = udm
3140
                   udm = umr
3141
                   umr = uum
3142
                   uum = temp
3143
3144
                   #ring around top
3145
                   #corners
3146
                   temp = lul
3147
                   lul = ful
3148
                   ful = rul
3149
                   rul = bur
3150
                   bur = temp
3151
3152
3153
                   temp2 = lur
3154
                   lur = fur
3155
                   fur = rur
3156
                   rur = bul
3157
                   bul = temp2
3158
3159
                   #edges
3160
                   temp = lum
3161
                   lum = fum
3162
                   fum = rum
3163
                   rum = bum
3164
                   bum = temp
3165
3166
3167
3168
               elif pause == "u'":
3169
                   #top face
3170
                   temp = uul
3171
                   uul = uur
3172
                   uur = udr
3173
                   udr = udl
3174
                   udl = temp
3175
3176
                   temp = uum
3177
                   uum = umr
3178
                   umr = udm
3179
                   udm = uml
3180
                   uml = temp
3181
3182
                   #ring around top
3183
                   #corners
3184
                   temp = lul
3185
                   lul = bur
3186
                   bur = rul
3187
                   rul = ful
3188
                   ful = temp
3189
3190
                   temp2 = lur
3191
                   lur = bul
3192
                   bul = rur
3193
                   rur = fur
3194
                   fur = temp2
3195
3196
                   #edges
3197
                   temp = lum
3198
                   lum = bum
3199
                   bum = rum
3200
                   rum = fum
3201
                   fum = temp
3202
3203
3204
               elif pause == "r":
3205
                   #right face
3206
                   temp = rul
3207
                   rul = rdl
3208
                   rdl = rdr
3209
                   rdr = rur
3210
                   rur = temp
3211
3212
                   temp = rml
3213
                   rml = rdm
3214
                   rdm = rmr
3215
                   rmr = rum
3216
                   rum = temp
3217
3218
                   #ring around right face
3219
                   temp = fur
3220
                   fur = dur
3221
                   dur = bdr
3222
                   bdr = uur
3223
                   uur = temp
3224
3225
                   temp2 = fdr
3226
                   fdr = ddr
3227
                   ddr = bur
3228
                   bur = udr
3229
                   udr = temp2
3230
3231
                   temp = fmr
3232
                   fmr = dmr
3233
                   dmr = bmr
3234
                   bmr = umr
3235
                   umr = temp
3236
3237
3238
3239
               elif pause == "r'":
3240
                   #right face
3241
                   temp = rul
3242
                   rul = rur
3243
                   rur = rdr
3244
                   rdr = rdl
3245
                   rdl = temp
3246
3247
                   temp = rml
3248
                   rml = rum
3249
                   rum = rmr
3250
                   rmr = rdm
3251
                   rdm = temp
3252
3253
                   #ring around face
3254
                   temp = fur
3255
                   fur = uur
3256
                   uur = bdr
3257
                   bdr = dur
3258
                   dur = temp
3259
3260
                   temp2 = fdr
3261
                   fdr = udr
3262
                   udr = bur
3263
                   bur = ddr
3264
                   ddr = temp2
3265
3266
                   temp = fmr
3267
                   fmr = umr
3268
                   umr = bmr
3269
                   bmr = dmr
3270
                   dmr = temp
3271
3272
               elif pause == "l":
3273
                   #left face
3274
                   #corners
3275
                   temp = lul
3276
                   lul = ldl
3277
                   ldl = ldr
3278
                   ldr = lur
3279
                   lur = temp
3280
3281
                   #edges
3282
                   temp = lum
3283
                   lum = lml
3284
                   lml = ldm
3285
                   ldm = lmr
3286
                   lmr = temp
3287
3288
                   #ring around left side
3289
                   temp = ful
3290
                   ful = uul
3291
                   uul = bdl
3292
                   bdl = dul
3293
                   dul = temp
3294
3295
                   temp2 = fdl
3296
                   fdl = udl
3297
                   udl = bul
3298
                   bul = ddl
3299
                   ddl = temp2
3300
3301
                   #edges
3302
                   temp = fml
3303
                   fml = uml
3304
                   uml = bml
3305
                   bml = dml
3306
                   dml = temp
3307
3308
               elif pause == "l'":
3309
                   #left face
3310
                   #corners
3311
                   temp = lul
3312
                   lul = lur
3313
                   lur = ldr
3314
                   ldr = ldl
3315
                   ldl = temp
3316
3317
                   #edges
3318
                   temp = lum
3319
                   lum = lmr
3320
                   lmr = ldm
3321
                   ldm = lml
3322
                   lml = temp
3323
3324
                   #ring around
3325
                   #corners
3326
                   temp = ful
3327
                   ful = dul
3328
                   dul = bdl
3329
                   bdl = uul
3330
                   uul = temp
3331
3332
                   temp2 = fdl
3333
                   fdl = ddl
3334
                   ddl = bul
3335
                   bul = udl
3336
                   udl = temp2
3337
3338
                   #edges
3339
                   temp = fml
3340
                   fml = dml
3341
                   dml = bml
3342
                   bml = uml
3343
                   uml = temp
3344
3345
3346
               elif pause == "d":
3347
                   #bottom face
3348
                   #corners
3349
                   temp = dul
3350
                   dul = ddl
3351
                   ddl = ddr
3352
                   ddr = dur
3353
                   dur = temp
3354
3355
                   #edges
3356
                   temp = dum
3357
                   dum = dml
3358
                   dml = ddm
3359
                   ddm = dmr
3360
                   dmr = temp
3361
3362
                   #ring around layer
3363
                   #corners
3364
                   temp = fdl
3365
                   fdl = ldl
3366
                   ldl = bdr
3367
                   bdr = rdl
3368
                   rdl = temp
3369
3370
                   temp2 = fdr
3371
                   fdr = ldr
3372
                   ldr = bdl
3373
                   bdl = rdr
3374
                   rdr = temp2
3375
3376
                   #edges
3377
                   temp = fdm
3378
                   fdm = ldm
3379
                   ldm = bdm
3380
                   bdm = rdm
3381
                   rdm = temp
3382
3383
               elif pause == "d'":
3384
                   #bottom face
3385
                   #corners
3386
                   temp = dul
3387
                   dul = dur
3388
                   dur = ddr
3389
                   ddr = ddl
3390
                   ddl = temp
3391
3392
                   #edges
3393
                   temp = dum
3394
                   dum = dmr
3395
                   dmr = ddm
3396
                   ddm = dml
3397
                   dml = temp
3398
3399
                   #ring around layer
3400
                   #corners
3401
                   temp = fdl
3402
                   fdl = rdl
3403
                   rdl = bdr
3404
                   bdr = ldl
3405
                   ldl = temp
3406
3407
                   temp2 = fdr
3408
                   fdr = rdr
3409
                   rdr = bdl
3410
                   bdl = ldr
3411
                   ldr = temp2
3412
3413
                   #edges
3414
                   temp = fdm
3415
                   fdm = rdm
3416
                   rdm = bdm
3417
                   bdm = ldm
3418
                   ldm = temp
3419
3420
3421
               elif pause == "b":
3422
                   #back face
3423
                   #corners
3424
                   temp = bul
3425
                   bul = bur
3426
                   bur = bdr
3427
                   bdr = bdl
3428
                   bdl = temp
3429
3430
                   #edges
3431
                   temp = bum
3432
                   bum = bmr
3433
                   bmr = bdm
3434
                   bdm = bml
3435
                   bml = temp
3436
3437
                   #ring around layer
3438
                   temp = uul
3439
                   uul = rur
3440
                   rur = ddr
3441
                   ddr = ldl
3442
                   ldl = temp
3443
3444
                   temp2 = uur
3445
                   uur = rdr
3446
                   rdr = ddl
3447
                   ddl = lul
3448
                   lul = temp2
3449
3450
                   #edges
3451
                   temp = uum
3452
                   uum = rmr
3453
                   rmr = ddm
3454
                   ddm = lml
3455
                   lml = temp
3456
3457
               elif pause == "b'":
3458
                   #back face
3459
                   #corners
3460
                   temp = bul
3461
                   bul = bdl
3462
                   bdl = bdr
3463
                   bdr = bur
3464
                   bur = temp
3465
3466
                   #edges
3467
                   temp = bum
3468
                   bum = bml
3469
                   bml = bdm
3470
                   bdm = bmr
3471
                   bmr = temp
3472
3473
                   #ring around layer
3474
                   #corners
3475
                   temp = uul
3476
                   uul = ldl
3477
                   ldl = ddr
3478
                   ddr = rur
3479
                   rur = temp
3480
3481
                   temp2 = uur
3482
                   uur = lul
3483
                   lul = ddl
3484
                   ddl = rdr
3485
                   rdr = temp2
3486
3487
                   #edges
3488
                   temp = uum
3489
                   uum = lml
3490
                   lml = ddm
3491
                   ddm = rmr
3492
                   rmr = temp
3493
3494
               elif pause == "solve":
3495
                   ful = red
3496
                   fum = red
3497
                   fur = red
3498
3499
                   fml = red
3500
                   fmm = red
3501
                   fmr = red
3502
3503
                   fdl = red
3504
                   fdm = red
3505
                   fdr = red
3506
3507
                   #back face
3508
                   bul = orange
3509
                   bum = orange
3510
                   bur = orange
3511
3512
                   bml = orange
3513
                   bmm = orange
3514
                   bmr = orange
3515
3516
                   bdl = orange
3517
                   bdm = orange
3518
                   bdr = orange
3519
3520
                   #right face
3521
                   rul = green
3522
                   rum = green
3523
                   rur = green
3524
3525
                   rml = green
3526
                   rmm = green
3527
                   rmr = green
3528
3529
                   rdl = green
3530
                   rdm = green
3531
                   rdr = green
3532
3533
                   #left face
3534
                   lul = blue
3535
                   lum = blue
3536
                   lur = blue
3537
3538
                   lml = blue
3539
                   lmm = blue
3540
                   lmr = blue
3541
3542
                   ldl = blue
3543
                   ldm = blue
3544
                   ldr = blue
3545
3546
                   #top face
3547
                   uul = yellow
3548
                   uum = yellow
3549
                   uur = yellow
3550
3551
                   uml = yellow
3552
                   umm = yellow
3553
                   umr = yellow
3554
3555
                   udl = yellow
3556
                   udm = yellow
3557
                   udr = yellow
3558
3559
                   #bottom face
3560
                   dul = white
3561
                   dum = white
3562
                   dur = white
3563
3564
                   dml = white
3565
                   dmm = white
3566
                   dmr = white
3567
3568
                   ddl = white
3569
                   ddm = white
3570
                   ddr = white
3571
3572
               elif pause == "y":
3573
3574
                   #bottom rotation
3575
                   #bottom face
3576
                   #corners
3577
                   temp = dul
3578
                   dul = dur
3579
                   dur = ddr
3580
                   ddr = ddl
3581
                   ddl = temp
3582
3583
                   #edges
3584
                   temp = dum
3585
                   dum = dmr
3586
                   dmr = ddm
3587
                   ddm = dml
3588
                   dml = temp
3589
3590
                   #ring around layer
3591
                   #corners
3592
                   temp = fdl
3593
                   fdl = rdl
3594
                   rdl = bdr
3595
                   bdr = ldl
3596
                   ldl = temp
3597
3598
                   temp2 = fdr
3599
                   fdr = rdr
3600
                   rdr = bdl
3601
                   bdl = ldr
3602
                   ldr = temp2
3603
3604
                   #edges
3605
                   temp = fdm
3606
                   fdm = rdm
3607
                   rdm = bdm
3608
                   bdm = ldm
3609
                   ldm = temp
3610
3611
3612
                   #top rotation
3613
                   #top face turn
3614
                   #corners
3615
                   temp = uul
3616
                   uul = udl
3617
                   udl = udr
3618
                   udr = uur
3619
                   uur = temp
3620
3621
                   #edges
3622
                   temp = uml
3623
                   uml = udm
3624
                   udm = umr
3625
                   umr = uum
3626
                   uum = temp
3627
3628
                   #ring around top
3629
                   #corners
3630
                   temp = lul
3631
                   lul = ful
3632
                   ful = rul
3633
                   rul = bur
3634
                   bur = temp
3635
3636
3637
                   temp2 = lur
3638
                   lur = fur
3639
                   fur = rur
3640
                   rur = bul
3641
                   bul = temp2
3642
3643
                   #edges
3644
                   temp = lum
3645
                   lum = fum
3646
                   fum = rum
3647
                   rum = bum
3648
                   bum = temp
3649
3650
                   #middle layer rotation
3651
                   temp = fml
3652
                   fml = rml
3653
                   rml = bmr
3654
                   bmr = lml
3655
                   lml = temp
3656
3657
                   temp = fmm
3658
                   fmm = rmm
3659
                   rmm = bmm
3660
                   bmm = lmm
3661
                   lmm = temp
3662
3663
                   temp = fmr
3664
                   fmr = rmr
3665
                   rmr = bml
3666
                   bml = lmr
3667
                   lmr = temp
3668
3669
               elif pause == "y'":
3670
                   #top face
3671
                   temp = uul
3672
                   uul = uur
3673
                   uur = udr
3674
                   udr = udl
3675
                   udl = temp
3676
3677
                   temp = uum
3678
                   uum = umr
3679
                   umr = udm
3680
                   udm = uml
3681
                   uml = temp
3682
3683
                   #ring around top
3684
                   #corners
3685
                   temp = lul
3686
                   lul = bur
3687
                   bur = rul
3688
                   rul = ful
3689
                   ful = temp
3690
3691
                   temp2 = lur
3692
                   lur = bul
3693
                   bul = rur
3694
                   rur = fur
3695
                   fur = temp2
3696
3697
                   #edges
3698
                   temp = lum
3699
                   lum = bum
3700
                   bum = rum
3701
                   rum = fum
3702
                   fum = temp
3703
3704
                   #middle
3705
                   #centers
3706
                   temp = fmm
3707
                   fmm = lmm
3708
                   lmm = bmm
3709
                   bmm = rmm
3710
                   rmm = temp
3711
3712
                   #edges
3713
                   temp = fml
3714
                   fml = lml
3715
                   lml = bmr
3716
                   bmr = rml
3717
                   rml = temp
3718
3719
                   temp = fmr
3720
                   fmr = lmr
3721
                   lmr = bml
3722
                   bml = rmr
3723
                   rmr = temp
3724
3725
                   #bottom face
3726
                   #corners
3727
                   temp = dul
3728
                   dul = ddl
3729
                   ddl = ddr
3730
                   ddr = dur
3731
                   dur = temp
3732
3733
                   #edges
3734
                   temp = dum
3735
                   dum = dml
3736
                   dml = ddm
3737
                   ddm = dmr
3738
                   dmr = temp
3739
3740
                   #ring around layer
3741
                   #corners
3742
                   temp = fdl
3743
                   fdl = ldl
3744
                   ldl = bdr
3745
                   bdr = rdl
3746
                   rdl = temp
3747
3748
                   temp2 = fdr
3749
                   fdr = ldr
3750
                   ldr = bdl
3751
                   bdl = rdr
3752
                   rdr = temp2
3753
3754
                   #edges
3755
                   temp = fdm
3756
                   fdm = ldm
3757
                   ldm = bdm
3758
                   bdm = rdm
3759
                   rdm = temp
3760
3761
               elif pause == "x":
3762
                   #right face
3763
                   temp = rul
3764
                   rul = rdl
3765
                   rdl = rdr
3766
                   rdr = rur
3767
                   rur = temp
3768
3769
                   temp = rml
3770
                   rml = rdm
3771
                   rdm = rmr
3772
                   rmr = rum
3773
                   rum = temp
3774
3775
                   #ring around right face
3776
                   temp = fur
3777
                   fur = dur
3778
                   dur = bdr
3779
                   bdr = uur
3780
                   uur = temp
3781
3782
                   temp2 = fdr
3783
                   fdr = ddr
3784
                   ddr = bur
3785
                   bur = udr
3786
                   udr = temp2
3787
3788
                   temp = fmr
3789
                   fmr = dmr
3790
                   dmr = bmr
3791
                   bmr = umr
3792
                   umr = temp
3793
3794
                   #middle
3795
                   #centers
3796
                   temp = dmm
3797
                   dmm = bmm
3798
                   bmm = umm
3799
                   umm = fmm
3800
                   fmm = temp
3801
3802
                   #edges
3803
                   temp = dum
3804
                   dum = bdm
3805
                   bdm = uum
3806
                   uum = fum
3807
                   fum = temp
3808
3809
                   temp = ddm
3810
                   ddm = bum
3811
                   bum = udm
3812
                   udm = fdm
3813
                   fdm = temp
3814
3815
                   #left face
3816
                   #corners
3817
                   temp = lul
3818
                   lul = lur
3819
                   lur = ldr
3820
                   ldr = ldl
3821
                   ldl = temp
3822
3823
                   #edges
3824
                   temp = lum
3825
                   lum = lmr
3826
                   lmr = ldm
3827
                   ldm = lml
3828
                   lml = temp
3829
3830
                   #ring around
3831
                   #corners
3832
                   temp = ful
3833
                   ful = dul
3834
                   dul = bdl
3835
                   bdl = uul
3836
                   uul = temp
3837
3838
                   temp2 = fdl
3839
                   fdl = ddl
3840
                   ddl = bul
3841
                   bul = udl
3842
                   udl = temp2
3843
3844
                   #edges
3845
                   temp = fml
3846
                   fml = dml
3847
                   dml = bml
3848
                   bml = uml
3849
                   uml = temp
3850
3851
               elif pause == "x'":
3852
                   #right face
3853
                   temp = rul
3854
                   rul = rur
3855
                   rur = rdr
3856
                   rdr = rdl
3857
                   rdl = temp
3858
3859
                   temp = rml
3860
                   rml = rum
3861
                   rum = rmr
3862
                   rmr = rdm
3863
                   rdm = temp
3864
3865
                   #ring around face
3866
                   temp = fur
3867
                   fur = uur
3868
                   uur = bdr
3869
                   bdr = dur
3870
                   dur = temp
3871
3872
                   temp2 = fdr
3873
                   fdr = udr
3874
                   udr = bur
3875
                   bur = ddr
3876
                   ddr = temp2
3877
3878
                   temp = fmr
3879
                   fmr = umr
3880
                   umr = bmr
3881
                   bmr = dmr
3882
                   dmr = temp
3883
3884
                   #left face
3885
                   #corners
3886
                   temp = lul
3887
                   lul = ldl
3888
                   ldl = ldr
3889
                   ldr = lur
3890
                   lur = temp
3891
3892
                   #edges
3893
                   temp = lum
3894
                   lum = lml
3895
                   lml = ldm
3896
                   ldm = lmr
3897
                   lmr = temp
3898
3899
                   #ring around left side
3900
                   temp = ful
3901
                   ful = uul
3902
                   uul = bdl
3903
                   bdl = dul
3904
                   dul = temp
3905
3906
                   temp2 = fdl
3907
                   fdl = udl
3908
                   udl = bul
3909
                   bul = ddl
3910
                   ddl = temp2
3911
3912
                   #edges
3913
                   temp = fml
3914
                   fml = uml
3915
                   uml = bml
3916
                   bml = dml
3917
                   dml = temp
3918
3919
                   #middle
3920
                   #centers
3921
                   temp = fmm
3922
                   fmm = umm
3923
                   umm = bmm
3924
                   bmm = dmm
3925
                   dmm = temp
3926
3927
                   #edges
3928
                   temp = fum
3929
                   fum = uum
3930
                   uum = bdm
3931
                   bdm = dum
3932
                   dum = temp
3933
3934
                   temp = fdm
3935
                   fdm = udm
3936
                   udm = bum
3937
                   bum = ddm
3938
                   ddm = temp
3939
3940
3941
3942
3943
               elif pause == "commands":
3944
                   print("These are the commands you can use on the cube:")
3945
                   print("move: draws the moves that you have made")
3946
                   print("f/f': turns the front face of the cube")
3947
                   print("b/b': turn the back face of the cube")
3948
                   print("u/u': turns the top face of the cube")
3949
                   print("d/d': turns the bottom face of the cube")
3950
                   print("r/r': turns the right face of the cube")
3951
                   print("l/l': turns the left face of the cube")
3952
                   print("y/y': rotates the entire cube like a U/U' turn")
3953
                   print("x/x': rotates the entire cube like an R/R' turn")
3954
                   print("scramble: scrambles the cube")
3955
                   print("solve: solves the cube")
3956
                   print("back: goes back to cube selection")
3957
3958
3959
               elif pause == "scramble":
3960
                   moves = ["f", "f'", "u", "u'", "r", "r'", "l", "l'", "d", "d'", "b", "b'"]
3961
                   scrambling = 0
3962
                   while scrambling != 40:
3963
                       scramblemove = random.choice(moves)
3964
                       scrambling = scrambling + 1
3965
                       stickers.clear()
3966
                       draw2x2()
3967
                       if scramblemove == "f":
3968
                           #front face
3969
                           #corners
3970
                           temp = ful
3971
                           ful = fdl
3972
                           fdl = fdr
3973
                           fdr = fur
3974
                           fur = temp
3975
3976
                           #edges
3977
                           temp = fum
3978
                           fum = fml
3979
                           fml = fdm
3980
                           fdm = fmr
3981
                           fmr = temp
3982
3983
                           #ring around
3984
                           #corners
3985
                           temp = udl
3986
                           udl = ldr
3987
                           ldr = dur
3988
                           dur = rul
3989
                           rul = temp
3990
3991
                           temp2 = udr
3992
                           udr = lur
3993
                           lur = dul
3994
                           dul = rdl
3995
                           rdl = temp2
3996
3997
                           #edges
3998
                           temp = udm
3999
                           udm = lmr
4000
                           lmr = dum
4001
                           dum = rml
4002
                           rml = temp
4003
4004
4005
4006
4007
                       elif scramblemove == "f'":
4008
                           #front face
4009
                           #corners
4010
                           temp = ful
4011
                           ful = fur
4012
                           fur = fdr
4013
                           fdr = fdl
4014
                           fdl = temp
4015
                           #edges
4016
                           temp2 = fum
4017
                           fum = fmr
4018
                           fmr = fdm
4019
                           fdm = fml
4020
                           fml = temp2
4021
4022
                           #ring around front face
4023
                           #corners
4024
                           temp = lur
4025
                           temp2 = ldr
4026
4027
                           lur = udr
4028
                           ldr = udl
4029
4030
                           udr = rdl
4031
                           udl = rul
4032
4033
                           rdl = dul
4034
                           rul = dur
4035
4036
                           dul = temp
4037
                           dur = temp2
4038
4039
                           #edges
4040
                           temp = lmr
4041
4042
                           lmr = udm
4043
4044
                           udm = rml
4045
4046
                           rml = dum
4047
4048
                           dum = temp
4049
4050
4051
                       elif scramblemove == "u":
4052
                           #top face turn
4053
                           #corners
4054
                           temp = uul
4055
                           uul = udl
4056
                           udl = udr
4057
                           udr = uur
4058
                           uur = temp
4059
4060
                           #edges
4061
                           temp = uml
4062
                           uml = udm
4063
                           udm = umr
4064
                           umr = uum
4065
                           uum = temp
4066
4067
                           #ring around top
4068
                           #corners
4069
                           temp = lul
4070
                           lul = ful
4071
                           ful = rul
4072
                           rul = bur
4073
                           bur = temp
4074
4075
4076
                           temp2 = lur
4077
                           lur = fur
4078
                           fur = rur
4079
                           rur = bul
4080
                           bul = temp2
4081
4082
                           #edges
4083
                           temp = lum
4084
                           lum = fum
4085
                           fum = rum
4086
                           rum = bum
4087
                           bum = temp
4088
4089
4090
4091
                       elif scramblemove == "u'":
4092
                           #top face
4093
                           temp = uul
4094
                           uul = uur
4095
                           uur = udr
4096
                           udr = udl
4097
                           udl = temp
4098
4099
                           temp = uum
4100
                           uum = umr
4101
                           umr = udm
4102
                           udm = uml
4103
                           uml = temp
4104
4105
                           #ring around top
4106
                           #corners
4107
                           temp = lul
4108
                           lul = bur
4109
                           bur = rul
4110
                           rul = ful
4111
                           ful = temp
4112
4113
                           temp2 = lur
4114
                           lur = bul
4115
                           bul = rur
4116
                           rur = fur
4117
                           fur = temp2
4118
4119
                           #edges
4120
                           temp = lum
4121
                           lum = bum
4122
                           bum = rum
4123
                           rum = fum
4124
                           fum = temp
4125
4126
4127
                       elif scramblemove == "r":
4128
                           #right face
4129
                           temp = rul
4130
                           rul = rdl
4131
                           rdl = rdr
4132
                           rdr = rur
4133
                           rur = temp
4134
4135
                           temp = rml
4136
                           rml = rdm
4137
                           rdm = rmr
4138
                           rmr = rum
4139
                           rum = temp
4140
4141
                           #ring around right face
4142
                           temp = fur
4143
                           fur = dur
4144
                           dur = bdr
4145
                           bdr = uur
4146
                           uur = temp
4147
4148
                           temp2 = fdr
4149
                           fdr = ddr
4150
                           ddr = bur
4151
                           bur = udr
4152
                           udr = temp2
4153
4154
                           temp = fmr
4155
                           fmr = dmr
4156
                           dmr = bmr
4157
                           bmr = umr
4158
                           umr = temp
4159
4160
4161
4162
                       elif scramblemove == "r'":
4163
                           #right face
4164
                           temp = rul
4165
                           rul = rur
4166
                           rur = rdr
4167
                           rdr = rdl
4168
                           rdl = temp
4169
4170
                           temp = rml
4171
                           rml = rum
4172
                           rum = rmr
4173
                           rmr = rdm
4174
                           rdm = temp
4175
4176
                           #ring around face
4177
                           temp = fur
4178
                           fur = uur
4179
                           uur = bdr
4180
                           bdr = dur
4181
                           dur = temp
4182
4183
                           temp2 = fdr
4184
                           fdr = udr
4185
                           udr = bur
4186
                           bur = ddr
4187
                           ddr = temp2
4188
4189
                           temp = fmr
4190
                           fmr = umr
4191
                           umr = bmr
4192
                           bmr = dmr
4193
                           dmr = temp
4194
4195
                       elif scramblemove == "l":
4196
                           #left face
4197
                           #corners
4198
                           temp = lul
4199
                           lul = ldl
4200
                           ldl = ldr
4201
                           ldr = lur
4202
                           lur = temp
4203
4204
                           #edges
4205
                           temp = lum
4206
                           lum = lml
4207
                           lml = ldm
4208
                           ldm = lmr
4209
                           lmr = temp
4210
4211
                           #ring around left side
4212
                           temp = ful
4213
                           ful = uul
4214
                           uul = bdl
4215
                           bdl = dul
4216
                           dul = temp
4217
4218
                           temp2 = fdl
4219
                           fdl = udl
4220
                           udl = bul
4221
                           bul = ddl
4222
                           ddl = temp2
4223
4224
                           #edges
4225
                           temp = fml
4226
                           fml = uml
4227
                           uml = bml
4228
                           bml = dml
4229
                           dml = temp
4230
4231
                       elif scramblemove == "l'":
4232
                           #left face
4233
                           #corners
4234
                           temp = lul
4235
                           lul = lur
4236
                           lur = ldr
4237
                           ldr = ldl
4238
                           ldl = temp
4239
4240
                           #edges
4241
                           temp = lum
4242
                           lum = lmr
4243
                           lmr = ldm
4244
                           ldm = lml
4245
                           lml = temp
4246
4247
                           #ring around
4248
                           #corners
4249
                           temp = ful
4250
                           ful = dul
4251
                           dul = bdl
4252
                           bdl = uul
4253
                           uul = temp
4254
4255
                           temp2 = fdl
4256
                           fdl = ddl
4257
                           ddl = bul
4258
                           bul = udl
4259
                           udl = temp2
4260
4261
                           #edges
4262
                           temp = fml
4263
                           fml = dml
4264
                           dml = bml
4265
                           bml = uml
4266
                           uml = temp
4267
4268
4269
                       elif scramblemove == "d":
4270
                           #bottom face
4271
                           #corners
4272
                           temp = dul
4273
                           dul = ddl
4274
                           ddl = ddr
4275
                           ddr = dur
4276
                           dur = temp
4277
4278
                           #edges
4279
                           temp = dum
4280
                           dum = dml
4281
                           dml = ddm
4282
                           ddm = dmr
4283
                           dmr = temp
4284
4285
                           #ring around layer
4286
                           #corners
4287
                           temp = fdl
4288
                           fdl = ldl
4289
                           ldl = bdr
4290
                           bdr = rdl
4291
                           rdl = temp
4292
4293
                           temp2 = fdr
4294
                           fdr = ldr
4295
                           ldr = bdl
4296
                           bdl = rdr
4297
                           rdr = temp2
4298
4299
                           #edges
4300
                           temp = fdm
4301
                           fdm = ldm
4302
                           ldm = bdm
4303
                           bdm = rdm
4304
                           rdm = temp
4305
4306
                       elif scramblemove == "d'":
4307
                           #bottom face
4308
                           #corners
4309
                           temp = dul
4310
                           dul = dur
4311
                           dur = ddr
4312
                           ddr = ddl
4313
                           ddl = temp
4314
4315
                           #edges
4316
                           temp = dum
4317
                           dum = dmr
4318
                           dmr = ddm
4319
                           ddm = dml
4320
                           dml = temp
4321
4322
                           #ring around layer
4323
                           #corners
4324
                           temp = fdl
4325
                           fdl = rdl
4326
                           rdl = bdr
4327
                           bdr = ldl
4328
                           ldl = temp
4329
4330
                           temp2 = fdr
4331
                           fdr = rdr
4332
                           rdr = bdl
4333
                           bdl = ldr
4334
                           ldr = temp2
4335
4336
                           #edges
4337
                           temp = fdm
4338
                           fdm = rdm
4339
                           rdm = bdm
4340
                           bdm = ldm
4341
                           ldm = temp
4342
4343
4344
                       elif scramblemove == "b":
4345
                           #back face
4346
                           #corners
4347
                           temp = bul
4348
                           bul = bur
4349
                           bur = bdr
4350
                           bdr = bdl
4351
                           bdl = temp
4352
4353
                           #edges
4354
                           temp = bum
4355
                           bum = bmr
4356
                           bmr = bdm
4357
                           bdm = bml
4358
                           bml = temp
4359
4360
                           #ring around layer
4361
                           temp = uul
4362
                           uul = rur
4363
                           rur = ddr
4364
                           ddr = ldl
4365
                           ldl = temp
4366
4367
                           temp2 = uur
4368
                           uur = rdr
4369
                           rdr = ddl
4370
                           ddl = lul
4371
                           lul = temp2
4372
4373
                           #edges
4374
                           temp = uum
4375
                           uum = rmr
4376
                           rmr = ddm
4377
                           ddm = lml
4378
                           lml = temp
4379
4380
                       elif scramblemove == "b'":
4381
                           #back face
4382
                           #corners
4383
                           temp = bul
4384
                           bul = bdl
4385
                           bdl = bdr
4386
                           bdr = bur
4387
                           bur = temp
4388
4389
                           #edges
4390
                           temp = bum
4391
                           bum = bml
4392
                           bml = bdm
4393
                           bdm = bmr
4394
                           bmr = temp
4395
4396
                           #ring around layer
4397
                           #corners
4398
                           temp = uul
4399
                           uul = ldl
4400
                           ldl = ddr
4401
                           ddr = rur
4402
                           rur = temp
4403
4404
                           temp2 = uur
4405
                           uur = lul
4406
                           lul = ddl
4407
                           ddl = rdr
4408
                           rdr = temp2
4409
4410
                           #edges
4411
                           temp = uum
4412
                           uum = lml
4413
                           lml = ddm
4414
                           ddm = rmr
4415
                           rmr = temp
4416
4417
4418
               elif pause == "solve the long way":
4419
                   scrambling = 0
4420
                   if ful == red:
4421
                       if fur == red:
4422
                           if fdl == red:
4423
                               if fdr == red:
4424
                                   if bul == orange:
4425
                                       if bur == orange:
4426
                                           if bdl == orange:
4427
                                               if bdr == orange:
4428
                                                  if rul == green:
4429
                                                      if rur == green:
4430
                                                          if rdl == green:
4431
                                                              if rdr == green:
4432
                                                                  if lul == blue:
4433
                                                                      if lur ==blue:
4434
                                                                          if ldl == blue:
4435
                                                                              if ldr == blue:
4436
                                                                                  if uul == yellow:
4437
                                                                                      if uur == yellow:
4438
                                                                                          if udl == yellow:
4439
                                                                                              if udr == yellow:
4440
                                                                                                  if dul == white:
4441
                                                                                                      if dur == white:
4442
                                                                                                          if ddl == white:
4443
                                                                                                              if ddr == white:
4444
                                                                                                                  scrambling = scrambling + 1
4445
                                                                                                                  print("solved")
4446
                                                                                                                  draw2x2()
4447
                   else:
4448
                       moves = ["f", "f'", "u", "u'", "r", "r'", "l", "l'", "d", "d'", "b", "b'"]
4449
                       while scrambling != 1:
4450
                           scramblemove = random.choice(moves)
4451
                           turnsmade = 0
4452
                           turnsmade = turnsmade + 1
4453
                           draw2x2()
4454
                           if scramblemove == "f":
4455
                               #front face
4456
                               #corners
4457
                               temp = ful
4458
                               ful = fdl
4459
                               fdl = fdr
4460
                               fdr = fur
4461
                               fur = temp
4462
4463
                               #edges
4464
                               temp = fum
4465
                               fum = fml
4466
                               fml = fdm
4467
                               fdm = fmr
4468
                               fmr = temp
4469
4470
                               #ring around
4471
                               #corners
4472
                               temp = udl
4473
                               udl = ldr
4474
                               ldr = dur
4475
                               dur = rul
4476
                               rul = temp
4477
4478
                               temp2 = udr
4479
                               udr = lur
4480
                               lur = dul
4481
                               dul = rdl
4482
                               rdl = temp2
4483
4484
                               #edges
4485
                               temp = udm
4486
                               udm = lmr
4487
                               lmr = dum
4488
                               dum = rml
4489
                               rml = temp
4490
4491
4492
4493
4494
                           elif scramblemove == "f'":
4495
                               #front face
4496
                               #corners
4497
                               temp = ful
4498
                               ful = fur
4499
                               fur = fdr
4500
                               fdr = fdl
4501
                               fdl = temp
4502
                               #edges
4503
                               temp2 = fum
4504
                               fum = fmr
4505
                               fmr = fdm
4506
                               fdm = fml
4507
                               fml = temp2
4508
4509
                               #ring around front face
4510
                               #corners
4511
                               temp = lur
4512
                               temp2 = ldr
4513
4514
                               lur = udr
4515
                               ldr = udl
4516
4517
                               udr = rdl
4518
                               udl = rul
4519
4520
                               rdl = dul
4521
                               rul = dur
4522
4523
                               dul = temp
4524
                               dur = temp2
4525
4526
                               #edges
4527
                               temp = lmr
4528
4529
                               lmr = udm
4530
4531
                               udm = rml
4532
4533
                               rml = dum
4534
4535
                               dum = temp
4536
4537
4538
                           elif scramblemove == "u":
4539
                               #top face turn
4540
                               #corners
4541
                               temp = uul
4542
                               uul = udl
4543
                               udl = udr
4544
                               udr = uur
4545
                               uur = temp
4546
4547
                               #edges
4548
                               temp = uml
4549
                               uml = udm
4550
                               udm = umr
4551
                               umr = uum
4552
                               uum = temp
4553
4554
                               #ring around top
4555
                               #corners
4556
                               temp = lul
4557
                               lul = ful
4558
                               ful = rul
4559
                               rul = bur
4560
                               bur = temp
4561
4562
4563
                               temp2 = lur
4564
                               lur = fur
4565
                               fur = rur
4566
                               rur = bul
4567
                               bul = temp2
4568
4569
                               #edges
4570
                               temp = lum
4571
                               lum = fum
4572
                               fum = rum
4573
                               rum = bum
4574
                               bum = temp
4575
4576
4577
4578
                           elif scramblemove == "u'":
4579
                               #top face
4580
                               temp = uul
4581
                               uul = uur
4582
                               uur = udr
4583
                               udr = udl
4584
                               udl = temp
4585
4586
                               temp = uum
4587
                               uum = umr
4588
                               umr = udm
4589
                               udm = uml
4590
                               uml = temp
4591
4592
                               #ring around top
4593
                               #corners
4594
                               temp = lul
4595
                               lul = bur
4596
                               bur = rul
4597
                               rul = ful
4598
                               ful = temp
4599
4600
                               temp2 = lur
4601
                               lur = bul
4602
                               bul = rur
4603
                               rur = fur
4604
                               fur = temp2
4605
4606
                               #edges
4607
                               temp = lum
4608
                               lum = bum
4609
                               bum = rum
4610
                               rum = fum
4611
                               fum = temp
4612
4613
4614
                           elif scramblemove == "r":
4615
                               #right face
4616
                               temp = rul
4617
                               rul = rdl
4618
                               rdl = rdr
4619
                               rdr = rur
4620
                               rur = temp
4621
4622
                               temp = rml
4623
                               rml = rdm
4624
                               rdm = rmr
4625
                               rmr = rum
4626
                               rum = temp
4627
4628
                               #ring around right face
4629
                               temp = fur
4630
                               fur = dur
4631
                               dur = bdr
4632
                               bdr = uur
4633
                               uur = temp
4634
4635
                               temp2 = fdr
4636
                               fdr = ddr
4637
                               ddr = bur
4638
                               bur = udr
4639
                               udr = temp2
4640
4641
                               temp = fmr
4642
                               fmr = dmr
4643
                               dmr = bmr
4644
                               bmr = umr
4645
                               umr = temp
4646
4647
4648
4649
                           elif scramblemove == "r'":
4650
                               #right face
4651
                               temp = rul
4652
                               rul = rur
4653
                               rur = rdr
4654
                               rdr = rdl
4655
                               rdl = temp
4656
4657
                               temp = rml
4658
                               rml = rum
4659
                               rum = rmr
4660
                               rmr = rdm
4661
                               rdm = temp
4662
4663
                               #ring around face
4664
                               temp = fur
4665
                               fur = uur
4666
                               uur = bdr
4667
                               bdr = dur
4668
                               dur = temp
4669
4670
                               temp2 = fdr
4671
                               fdr = udr
4672
                               udr = bur
4673
                               bur = ddr
4674
                               ddr = temp2
4675
4676
                               temp = fmr
4677
                               fmr = umr
4678
                               umr = bmr
4679
                               bmr = dmr
4680
                               dmr = temp
4681
4682
                           elif scramblemove == "l":
4683
                               #left face
4684
                               #corners
4685
                               temp = lul
4686
                               lul = ldl
4687
                               ldl = ldr
4688
                               ldr = lur
4689
                               lur = temp
4690
4691
                               #edges
4692
                               temp = lum
4693
                               lum = lml
4694
                               lml = ldm
4695
                               ldm = lmr
4696
                               lmr = temp
4697
4698
                               #ring around left side
4699
                               temp = ful
4700
                               ful = uul
4701
                               uul = bdl
4702
                               bdl = dul
4703
                               dul = temp
4704
4705
                               temp2 = fdl
4706
                               fdl = udl
4707
                               udl = bul
4708
                               bul = ddl
4709
                               ddl = temp2
4710
4711
                               #edges
4712
                               temp = fml
4713
                               fml = uml
4714
                               uml = bml
4715
                               bml = dml
4716
                               dml = temp
4717
4718
                           elif scramblemove == "l'":
4719
                               #left face
4720
                               #corners
4721
                               temp = lul
4722
                               lul = lur
4723
                               lur = ldr
4724
                               ldr = ldl
4725
                               ldl = temp
4726
4727
                               #edges
4728
                               temp = lum
4729
                               lum = lmr
4730
                               lmr = ldm
4731
                               ldm = lml
4732
                               lml = temp
4733
4734
                               #ring around
4735
                               #corners
4736
                               temp = ful
4737
                               ful = dul
4738
                               dul = bdl
4739
                               bdl = uul
4740
                               uul = temp
4741
4742
                               temp2 = fdl
4743
                               fdl = ddl
4744
                               ddl = bul
4745
                               bul = udl
4746
                               udl = temp2
4747
4748
                               #edges
4749
                               temp = fml
4750
                               fml = dml
4751
                               dml = bml
4752
                               bml = uml
4753
                               uml = temp
4754
4755
4756
                           elif scramblemove == "d":
4757
                               #bottom face
4758
                               #corners
4759
                               temp = dul
4760
                               dul = ddl
4761
                               ddl = ddr
4762
                               ddr = dur
4763
                               dur = temp
4764
4765
                               #edges
4766
                               temp = dum
4767
                               dum = dml
4768
                               dml = ddm
4769
                               ddm = dmr
4770
                               dmr = temp
4771
4772
                               #ring around layer
4773
                               #corners
4774
                               temp = fdl
4775
                               fdl = ldl
4776
                               ldl = bdr
4777
                               bdr = rdl
4778
                               rdl = temp
4779
4780
                               temp2 = fdr
4781
                               fdr = ldr
4782
                               ldr = bdl
4783
                               bdl = rdr
4784
                               rdr = temp2
4785
4786
                               #edges
4787
                               temp = fdm
4788
                               fdm = ldm
4789
                               ldm = bdm
4790
                               bdm = rdm
4791
                               rdm = temp
4792
4793
                           elif scramblemove == "d'":
4794
                               #bottom face
4795
                               #corners
4796
                               temp = dul
4797
                               dul = dur
4798
                               dur = ddr
4799
                               ddr = ddl
4800
                               ddl = temp
4801
4802
                               #edges
4803
                               temp = dum
4804
                               dum = dmr
4805
                               dmr = ddm
4806
                               ddm = dml
4807
                               dml = temp
4808
4809
                               #ring around layer
4810
                               #corners
4811
                               temp = fdl
4812
                               fdl = rdl
4813
                               rdl = bdr
4814
                               bdr = ldl
4815
                               ldl = temp
4816
4817
                               temp2 = fdr
4818
                               fdr = rdr
4819
                               rdr = bdl
4820
                               bdl = ldr
4821
                               ldr = temp2
4822
4823
                               #edges
4824
                               temp = fdm
4825
                               fdm = rdm
4826
                               rdm = bdm
4827
                               bdm = ldm
4828
                               ldm = temp
4829
4830
4831
                           elif scramblemove == "b":
4832
                               #back face
4833
                               #corners
4834
                               temp = bul
4835
                               bul = bur
4836
                               bur = bdr
4837
                               bdr = bdl
4838
                               bdl = temp
4839
4840
                               #edges
4841
                               temp = bum
4842
                               bum = bmr
4843
                               bmr = bdm
4844
                               bdm = bml
4845
                               bml = temp
4846
4847
                               #ring around layer
4848
                               temp = uul
4849
                               uul = rur
4850
                               rur = ddr
4851
                               ddr = ldl
4852
                               ldl = temp
4853
4854
                               temp2 = uur
4855
                               uur = rdr
4856
                               rdr = ddl
4857
                               ddl = lul
4858
                               lul = temp2
4859
4860
                               #edges
4861
                               temp = uum
4862
                               uum = rmr
4863
                               rmr = ddm
4864
                               ddm = lml
4865
                               lml = temp
4866
4867
                           elif scramblemove == "b'":
4868
                               #back face
4869
                               #corners
4870
                               temp = bul
4871
                               bul = bdl
4872
                               bdl = bdr
4873
                               bdr = bur
4874
                               bur = temp
4875
4876
                               #edges
4877
                               temp = bum
4878
                               bum = bml
4879
                               bml = bdm
4880
                               bdm = bmr
4881
                               bmr = temp
4882
4883
                               #ring around layer
4884
                               #corners
4885
                               temp = uul
4886
                               uul = ldl
4887
                               ldl = ddr
4888
                               ddr = rur
4889
                               rur = temp
4890
4891
                               temp2 = uur
4892
                               uur = lul
4893
                               lul = ddl
4894
                               ddl = rdr
4895
                               rdr = temp2
4896
4897
                               #edges
4898
                               temp = uum
4899
                               uum = lml
4900
                               lml = ddm
4901
                               ddm = rmr
4902
                               rmr = temp
4903
4904
               elif pause == "back":
4905
                   stall = 0
4906
               draw2x2()
4907
4908
4909
4910
4911
4912
4913
4914
4915
4916
4917
4918
4919
4920
       draw2x2()
4921
       input()