-
Notifications
You must be signed in to change notification settings - Fork 0
/
doc.txt
285 lines (277 loc) · 12.7 KB
/
doc.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
21.07.2019:
Features:
First Layer Trainer Dialog:
Widgets:
QSlider --> Scramble Length
QPushButton --> generate a new scramble + colour to start with
QLabel --> shows the scramble in monospace
QLabel --> shows the colour to start with
QLabel --> shows a logo
Functionality:
load all scrambles when program is started and keep them available
during the runtime of the program by using lists / containers
as constants throughout the whole execution
decide how many moves the scramble shall consist of with a slider
generate scrambles and all starting colours for this scramble
scrambles are ordered (backwards)
scrambles make sense and are not of the form x x' or x x
when the end of all scrambles of a given length has been
reached, start all over again
window title and icon are included
favicon.ico has been generated online using
https://www.icoconverter.com/
exe-File has been generated using the following cmd-line:
pyinstaller -w -F -i favicon.ico MainWindow.py
in venv\Scripts
shortcut of the exe-File has been generated in the same folder
and has been attached to the taskbar
py-Files:
ScrambleGen.py (only to be used once, generates all possible
scrambles with white or any colour to start with)
no classes, no functions, no methods
MainWindow.py (shows the dialog with all current Widgets)
class Window(QDialog)
def __init__(self)
def ReadAllScrambles(self):
def CreateLayout(self):
def changescrlen(self):
def ScramblePlusColour(self):
txt-Files:
scrambles, scrambles1, scrambles1w, ... , scrambles7, scrambles7w
(w indicates only white, other ones use all starting colours)
pictures:
logo.pdn
logo.png
logo-Kopie.pdn
logogreen.png
logogreenicon.png
logoicon.png --> copied and transformed to favicon.ico
logored.png
logoredicon.png
22.07.2019:
Features:
First Layer Trainer (central widget):
New Widgets:
QLabel --> shows copyright symbol and creators name
QWidget --> centralWidget of QMainWindow, with gridlayout attached to it
QCheckBox --> checks if scrambles shall be given out in random order or not
QCheckBox --> checks if all colours shall be used as a starting colour
Added Functionality:
Font of groupBox changed to Sansserif, 13
added label showing the creators name and copyright symbol
added tooltip for the scramble length deciding slider, the button and
both checkboxes
added shortcut (Qt.Key_Space) to the scramblegenbutton
uses QMainWindow instead of QDialog for later purposes and puts
all previous widgets and the grid layout into self.central
and defines self.central as self.setCentralWidget
added two checkboxes
changed the functionality of the method changescrlen:
if self.shufflescrchecker is enabled, copy the list as always but shuffle it
before it is given back as self.scramblelist
if self.anycolourchecker is enabled, proceed as always, but if not, use the
scrambles with "w" in [filename].txt
because cmd did not work properly with python installation, I used
pyinstaller -w -F -i favicon.ico MainWindow.py
in PyCharm local Terminal, now there is the latest exe-File in SkewbSkills\dist
the previous version has been stored in SkewbSkills\Version 1.0
if you want to use the exe-File, make sure all files (png, txt, etc.) are
located in the same folder as the exe, otherwise, there will occur a
messagebox showing an error
py-Files:
ScrambleGen.py
MainWindow.py
class Window(QMainWindow)
def __init__(self)
def ReadAllScrambles(self):
def CreateLayout(self):
def changescrlen(self):
def ScramblePlusColour(self):
txt-Files:
no changes at all
pictures:
no changes at all
25.07.2019:
Features:
First Layer Trainer (central widget):
New Widgets:
QWidget --> shows the scramble by drawing several polygons
Added Functionality:
clarified in tooltip of the shuffle-checkbox that shuffling might take some time
defined a function threeswap that performs 3-cycles with elements of a list
added class ScrambleDrawing (QWidget) that will show the scramble
created a function ShowScramble in WindowFLT that uses the solved position /
index / sticker / colour - combination; splits the current scramble into moves;
performs permutations inside the list of colours / numbers and triggers the
ScrambleDrawing with the new (permuted) list; draws objects with specified
colour; now working correctly
ScramblePlusColour triggers ShowScramble, which itself triggers the ScrambleDrawing
Start Window Skewb Skills (central widget):
New Widgets:
QPushButton --> starts the FLT
QPushButton --> starts the AT
QPushButton --> starts the CS
QPushButton --> starts the Q
QLabel --> shows a logo
QLabel --> shows info about the creator
Added Functionality:
added Start-Menu in which you can choose between several modes to practice
buttons shown in Start-Menu can be triggered with shortcuts as well
clicking one button of the Start-Menu closes itself and opens the corresponding
window with the desired functionality
py-Files:
ScrambleGen.py
MainWindow.py
class StartWindow(QMainWindow)
def __init__(self)
def CreateLayout(self):
def StartFirstLayerTrainer(self):
def StartAlgTrainer(self):
def StartCompSim(self):
def StartQuiz(self):
class WindowFLT(QMainWindow)
def __init__(self)
def ReadAllScrambles(self):
def CreateLayout(self):
def changescrlen(self):
def ScramblePlusColour(self):
def ShowScramble(self, scramble):
class ScrambleDrawing(QWidget):
def __init__(self, stickers):
def paintEvent(self, QPaintEvent):
def drawScr(self, painter, s):
def threeswap(listname,i,j,k):
txt-Files:
no changes at all
pictures:
no changes at all
26.07.2019:
Features:
First Layer Trainer (central widget):
New Widgets:
none
Added Functionality:
scramble is now shown with FUR corner in front to be able to display FCN (Fixed
Corner Notation)
Start Window Skewb Skills (central widget):
New Widgets:
none
Added Functionality:
none
py-Files:
ScrambleGen.py
MainWindow.py
class StartWindow(QMainWindow)
def __init__(self)
def CreateLayout(self):
def StartFirstLayerTrainer(self):
def StartAlgTrainer(self):
def StartCompSim(self):
def StartQuiz(self):
class WindowFLT(QMainWindow)
def __init__(self)
def ReadAllScrambles(self):
def CreateLayout(self):
def changescrlen(self):
def ScramblePlusColour(self):
def ShowScramble(self, scramble):
class ScrambleDrawing(QWidget):
def __init__(self, stickers):
def paintEvent(self, QPaintEvent):
def drawScr(self, painter, s):
def threeswap(listname,i,j,k):
txt-Files:
no changes at all
pictures:
no changes at all
21.08.2019:
Features:
Alg Trainer (central widget):
New Widgets:
QCheckBoxes for every type of L2L-Alg
QPushButton: Generate Scramble
QPushButton: Start / Stop Timer
QPushButton: Reset Timer
QLabel: Info 'bout me :)
QLabel: shows the scramble
QWidget: showing a drawing of the scramble
MenuBar containing Practice Mode, with the two options FLT or L2LT;
also containing L2L Functions (currently only Return-Shortcut to generate scr.)
Added Functionality:
Shortcuts to the practice modes work again with the menubar
start stop timer with button or spacebar, reset with button or 'R' key
First Layer Trainer (central widget):
New Widgets:
MenuBar containing Practice Mode, with the two options FLT or L2LT
Added Functionality:
Shortcuts to the practice modes work again with the menubar
Starting Window Skewb Skills (central widget):
New Widgets:
MenuBar containing Practice Mode, with the two options FLT or L2LT
Added Functionality:
Shortcuts to the practice modes work again with the menubar
py-Files:
ScrambleGen.py
MainWindow.py
class StartWindow(QMainWindow)
def __init__(self)
def CreateLayout(self):
def StartFirstLayerTrainer(self):
def StartAlgTrainer(self):
class WindowFLT(QMainWindow)
def __init__(self)
def ReadAllScrambles(self):
def CreateLayout(self):
def changescrlen(self):
def ScramblePlusColour(self):
def ShowScramble(self, scramble):
def StartFirstLayerTrainer(self):
def StartAlgTrainer(self):
class WindowL2LT(QMainWindow):
def __init__(self):
def ReadAllScrambles(self):
def CreateLayout(self):
def changescrlen(self):
def ScramblePlusColour(self):
def display(self):
@pyqtSlot()
def tick(self):
@pyqtSlot()
def do_start(self):
@pyqtSlot()
def do_pause(self):
@pyqtSlot()
def do_reset(self):
def ShowScramble(self, scramble):
def StartFirstLayerTrainer(self):
def StartAlgTrainer(self):
class ScrambleDrawing(QWidget):
def __init__(self, stickers):
def paintEvent(self, QPaintEvent):
def drawScr(self, painter, s):
def threeswap(listname,i,j,k):
def fourswap(listname,i,j,k,l):
def corrcol(list,i):
txt-Files:
New files for the L2L-scrambles, indicated by the type of the case (pi, peanut, l4c, l5c)
and more detailed description (+ xyz-perm or whatever)
l4c,l4c,p3s,phu,phzpure,pi3s,pihu,pihz,pio,piswirl,pivu,piwat,pix,pizconj,po,
pswirl,pvu,pwat,px,pzconj .txt
pictures:
no changes at all
25.08.2019:
Features:
Both practicing modes come with a stopwatch, with higher accuracy
Menubar with more buttons
Help button / window
Shortcuts added for both modes
Scrambles are generated way faster, using less disk space
Used "pyinstaller -w -F -n SkewbSkills -i favicon.ico MainWindow.py" to generate executable
28.08.2019:
added 'General Functions' menu with shortcut to close the window
create subfolders where the .txt files are located and work with those
instead of having all files in only one folder (requested by Elias)
create new exe and release new zip-folder, marked as v1. with
"pyinstaller -w -F -n SkewbSkills -i Icons/favicon.ico MainWindow.py"
02.09.2019:
modified webpage / readme a bit, added a few screenshots