-
Notifications
You must be signed in to change notification settings - Fork 0
/
design.txt
61 lines (55 loc) · 1.42 KB
/
design.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
Design and TODOs
================
This: new game option from starting position w/o engine
TODO:
1. cache scaled images
4. convert opening name games to positions
7. look for game end
9. board visualization exercises (click on given file/rank)
10. game in reverse
11. given moves, recreate position
12. play with indistinguishable pieces
13. play blind/partial blind
14. board from fen
16. put some time gap between user move and system move
17. maximize board display toggle
18. game controls
19. move list label expands after 4/5 lines
21. load and save game
22. show message box on errors
Menu
File
New
Shadow...
Board from FEN...
Analyze position
App
has list of games tab
each item in the list is a GameListItem
double click a GameListItem to open in a new game tab
has game tabs
each game tab is a QGame object
has message list (below the tabs)
has check list on the right
* has moves list above check list
evaluate board position
check if book move
return opening name
QGame
has chess.Game object
is also the board gui
handles piece drags and process user move
pass messages to the App
has move timer
Process user move
return is move not legal
# compare with game move
get the next game move
if book move
get opening name
else
evaluate both moves
make game move
if opponent move
get next game move
make the game move