-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDevelopment_plan.txt
96 lines (82 loc) · 1.82 KB
/
Development_plan.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
Number rep of a chess board
===========================
64Ro 63Kt 62Bi 61Qu 60Ki 59Bi 58Kt 57Ro BLACK
56Pa 55Pa 54Pa 53Pa 52Pa 51Pa 50Pa 49Pa
48 47 46 45 44 43 42 41
40 39 38 37 36 35 34 33
32 31 30 29 28 27 26 25
24 23 22 21 20 19 18 17
16Pa 15Pa 14Pa 13Pa 12Pa 11Pa 10Pa 9Pa
8Ro 7Kt 6Bi 5Qu 4Ki 3Bi 2Kt 1Ro WHITE
Objects used
Move
======
form
to
pieces_type
isMovePossible(); //use move mask
piece_bag
=========
white_rack
black_rack
get(piece_type);
put(piece, color_rack);
Board (inside chessboard)
==========================
map;
death_bag;
en_passant //the map value of the piece
turn;
piece_map;
init();
isCheck();
getPiece(int position);
piece_type(int position)
isCheckMate();
isStalemate();
remove(); //remove a piece from board
reset();
whosTurn();
whiteBitMask();
BlackBitMask();
can_castle(castle_type);
move(move_object);
piece constant interface
========================
board constant interface
========================
pieces
=======
color
position
validate(to, Board)
getType(); //return constant
for pawn enpassant & move twice
for rook and king, if castle candidate
move(piece_name, from, to);
piece::bit_mask()
Java model
===========
board_model
game_state
White_player
black_player
controller
==========
view
=====
Engine
=======
Constructor(board)
Min_max();
get_move();
Later features
==============
FEN -> playerable functionality
Logger and Undo() functionality
setPosition from logger();
set a rack to cache bit for white and black();
Make engine interface();
Let all class use a particular chess constant and use the constant reference in other classes
Rerrange all the functions later on
synchronize map of pieces and pieces position