manim-chess 0.0.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- manim_chess-0.0.1.dist-info/METADATA +212 -0
- manim_chess-0.0.1.dist-info/RECORD +9 -0
- manim_chess-0.0.1.dist-info/WHEEL +5 -0
- manim_chess-0.0.1.dist-info/top_level.txt +1 -0
- src/__init__.py +11 -0
- src/board.py +532 -0
- src/evaluation_bar.py +84 -0
- src/game_player.py +711 -0
- src/pieces.py +246 -0
src/pieces.py
ADDED
@@ -0,0 +1,246 @@
|
|
1
|
+
import os
|
2
|
+
from manim import *
|
3
|
+
|
4
|
+
class Pawn(Mobject):
|
5
|
+
"""
|
6
|
+
A class to represent a Pawn chess piece using Manim for visualization.
|
7
|
+
|
8
|
+
Attributes:
|
9
|
+
----------
|
10
|
+
piece_size : float
|
11
|
+
The size of the chess piece.
|
12
|
+
is_white : bool
|
13
|
+
A boolean indicating if the piece is white.
|
14
|
+
|
15
|
+
Methods:
|
16
|
+
-------
|
17
|
+
create_svg():
|
18
|
+
Creates and adds the SVG representation of the pawn to the Mobject.
|
19
|
+
"""
|
20
|
+
def __init__(self, is_white: bool, piece_size=1.1) -> None:
|
21
|
+
"""
|
22
|
+
Initializes the Pawn object with specified color and size.
|
23
|
+
|
24
|
+
Parameters:
|
25
|
+
----------
|
26
|
+
is_white : bool
|
27
|
+
Indicates if the pawn is white.
|
28
|
+
piece_size : float, optional
|
29
|
+
The size of the pawn (default is 1.1).
|
30
|
+
"""
|
31
|
+
super().__init__()
|
32
|
+
self.piece_size = piece_size
|
33
|
+
self.is_white = is_white
|
34
|
+
self.create_svg()
|
35
|
+
|
36
|
+
def create_svg(self) -> SVGMobject:
|
37
|
+
"""
|
38
|
+
Creates the SVG representation of the pawn and adds it to the Mobject.
|
39
|
+
"""
|
40
|
+
svg_path = os.path.join(os.path.dirname(__file__), 'piece_svgs', 'wP.svg' if self.is_white else 'bP.svg')
|
41
|
+
self.add(SVGMobject(svg_path).scale(self.piece_size / 4))
|
42
|
+
|
43
|
+
class Knight(Mobject):
|
44
|
+
"""
|
45
|
+
A class to represent a Knight chess piece using Manim for visualization.
|
46
|
+
|
47
|
+
Attributes:
|
48
|
+
----------
|
49
|
+
piece_size : float
|
50
|
+
The size of the chess piece.
|
51
|
+
|
52
|
+
Methods:
|
53
|
+
-------
|
54
|
+
create_svg(is_white):
|
55
|
+
Creates and adds the SVG representation of the knight to the Mobject.
|
56
|
+
"""
|
57
|
+
def __init__(self, is_white: bool, piece_size=1.1) -> None:
|
58
|
+
"""
|
59
|
+
Initializes the Knight object with specified color and size.
|
60
|
+
|
61
|
+
Parameters:
|
62
|
+
----------
|
63
|
+
is_white : bool
|
64
|
+
Indicates if the knight is white.
|
65
|
+
piece_size : float, optional
|
66
|
+
The size of the knight (default is 1.1).
|
67
|
+
"""
|
68
|
+
super().__init__()
|
69
|
+
self.piece_size = piece_size
|
70
|
+
self.create_svg(is_white)
|
71
|
+
|
72
|
+
def create_svg(self, is_white: bool) -> SVGMobject:
|
73
|
+
"""
|
74
|
+
Creates the SVG representation of the knight and adds it to the Mobject.
|
75
|
+
|
76
|
+
Parameters:
|
77
|
+
----------
|
78
|
+
is_white : bool
|
79
|
+
Indicates if the knight is white.
|
80
|
+
"""
|
81
|
+
svg_path = os.path.join(os.path.dirname(__file__), 'piece_svgs', 'wN.svg' if is_white else 'bN.svg')
|
82
|
+
self.add(SVGMobject(svg_path).scale(self.piece_size / 4))
|
83
|
+
|
84
|
+
class Bishop(Mobject):
|
85
|
+
"""
|
86
|
+
A class to represent a Bishop chess piece using Manim for visualization.
|
87
|
+
|
88
|
+
Attributes:
|
89
|
+
----------
|
90
|
+
piece_size : float
|
91
|
+
The size of the chess piece.
|
92
|
+
|
93
|
+
Methods:
|
94
|
+
-------
|
95
|
+
create_svg(is_white):
|
96
|
+
Creates and adds the SVG representation of the bishop to the Mobject.
|
97
|
+
"""
|
98
|
+
def __init__(self, is_white: bool, piece_size=1.1) -> None:
|
99
|
+
"""
|
100
|
+
Initializes the Bishop object with specified color and size.
|
101
|
+
|
102
|
+
Parameters:
|
103
|
+
----------
|
104
|
+
is_white : bool
|
105
|
+
Indicates if the bishop is white.
|
106
|
+
piece_size : float, optional
|
107
|
+
The size of the bishop (default is 1.1).
|
108
|
+
"""
|
109
|
+
super().__init__()
|
110
|
+
self.piece_size = piece_size
|
111
|
+
self.create_svg(is_white)
|
112
|
+
|
113
|
+
def create_svg(self, is_white: bool) -> SVGMobject:
|
114
|
+
"""
|
115
|
+
Creates the SVG representation of the bishop and adds it to the Mobject.
|
116
|
+
|
117
|
+
Parameters:
|
118
|
+
----------
|
119
|
+
is_white : bool
|
120
|
+
Indicates if the bishop is white.
|
121
|
+
"""
|
122
|
+
svg_path = os.path.join(os.path.dirname(__file__), 'piece_svgs', 'wB.svg' if is_white else 'bB.svg')
|
123
|
+
self.add(SVGMobject(svg_path).scale(self.piece_size / 4))
|
124
|
+
|
125
|
+
class Rook(Mobject):
|
126
|
+
"""
|
127
|
+
A class to represent a Rook chess piece using Manim for visualization.
|
128
|
+
|
129
|
+
Attributes:
|
130
|
+
----------
|
131
|
+
piece_size : float
|
132
|
+
The size of the chess piece.
|
133
|
+
|
134
|
+
Methods:
|
135
|
+
-------
|
136
|
+
create_svg(is_white):
|
137
|
+
Creates and adds the SVG representation of the rook to the Mobject.
|
138
|
+
"""
|
139
|
+
def __init__(self, is_white: bool, piece_size=1.1) -> None:
|
140
|
+
"""
|
141
|
+
Initializes the Rook object with specified color and size.
|
142
|
+
|
143
|
+
Parameters:
|
144
|
+
----------
|
145
|
+
is_white : bool
|
146
|
+
Indicates if the rook is white.
|
147
|
+
piece_size : float, optional
|
148
|
+
The size of the rook (default is 1.1).
|
149
|
+
"""
|
150
|
+
super().__init__()
|
151
|
+
self.piece_size = piece_size
|
152
|
+
self.create_svg(is_white)
|
153
|
+
|
154
|
+
def create_svg(self, is_white: bool) -> SVGMobject:
|
155
|
+
"""
|
156
|
+
Creates the SVG representation of the rook and adds it to the Mobject.
|
157
|
+
|
158
|
+
Parameters:
|
159
|
+
----------
|
160
|
+
is_white : bool
|
161
|
+
Indicates if the rook is white.
|
162
|
+
"""
|
163
|
+
svg_path = os.path.join(os.path.dirname(__file__), 'piece_svgs', 'wR.svg' if is_white else 'bR.svg')
|
164
|
+
self.add(SVGMobject(svg_path).scale(self.piece_size / 4))
|
165
|
+
|
166
|
+
class Queen(Mobject):
|
167
|
+
"""
|
168
|
+
A class to represent a Queen chess piece using Manim for visualization.
|
169
|
+
|
170
|
+
Attributes:
|
171
|
+
----------
|
172
|
+
piece_size : float
|
173
|
+
The size of the chess piece.
|
174
|
+
|
175
|
+
Methods:
|
176
|
+
-------
|
177
|
+
create_svg(is_white):
|
178
|
+
Creates and adds the SVG representation of the queen to the Mobject.
|
179
|
+
"""
|
180
|
+
def __init__(self, is_white: bool, piece_size=1.1) -> None:
|
181
|
+
"""
|
182
|
+
Initializes the Queen object with specified color and size.
|
183
|
+
|
184
|
+
Parameters:
|
185
|
+
----------
|
186
|
+
is_white : bool
|
187
|
+
Indicates if the queen is white.
|
188
|
+
piece_size : float, optional
|
189
|
+
The size of the queen (default is 1.1).
|
190
|
+
"""
|
191
|
+
super().__init__()
|
192
|
+
self.piece_size = piece_size
|
193
|
+
self.create_svg(is_white)
|
194
|
+
|
195
|
+
def create_svg(self, is_white: bool) -> SVGMobject:
|
196
|
+
"""
|
197
|
+
Creates the SVG representation of the queen and adds it to the Mobject.
|
198
|
+
|
199
|
+
Parameters:
|
200
|
+
----------
|
201
|
+
is_white : bool
|
202
|
+
Indicates if the queen is white.
|
203
|
+
"""
|
204
|
+
svg_path = os.path.join(os.path.dirname(__file__), 'piece_svgs', 'wQ.svg' if is_white else 'bQ.svg')
|
205
|
+
self.add(SVGMobject(svg_path).scale(self.piece_size / 4))
|
206
|
+
|
207
|
+
class King(Mobject):
|
208
|
+
"""
|
209
|
+
A class to represent a King chess piece using Manim for visualization.
|
210
|
+
|
211
|
+
Attributes:
|
212
|
+
----------
|
213
|
+
piece_size : float
|
214
|
+
The size of the chess piece.
|
215
|
+
|
216
|
+
Methods:
|
217
|
+
-------
|
218
|
+
create_svg(is_white):
|
219
|
+
Creates and adds the SVG representation of the king to the Mobject.
|
220
|
+
"""
|
221
|
+
def __init__(self, is_white: bool, piece_size=1.1) -> None:
|
222
|
+
"""
|
223
|
+
Initializes the King object with specified color and size.
|
224
|
+
|
225
|
+
Parameters:
|
226
|
+
----------
|
227
|
+
is_white : bool
|
228
|
+
Indicates if the king is white.
|
229
|
+
piece_size : float, optional
|
230
|
+
The size of the king (default is 1.1).
|
231
|
+
"""
|
232
|
+
super().__init__()
|
233
|
+
self.piece_size = piece_size
|
234
|
+
self.create_svg(is_white)
|
235
|
+
|
236
|
+
def create_svg(self, is_white: bool) -> SVGMobject:
|
237
|
+
"""
|
238
|
+
Creates the SVG representation of the king and adds it to the Mobject.
|
239
|
+
|
240
|
+
Parameters:
|
241
|
+
----------
|
242
|
+
is_white : bool
|
243
|
+
Indicates if the king is white.
|
244
|
+
"""
|
245
|
+
svg_path = os.path.join(os.path.dirname(__file__), 'piece_svgs', 'wK.svg' if is_white else 'bK.svg')
|
246
|
+
self.add(SVGMobject(svg_path).scale(self.piece_size / 4))
|