-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathpieces.asc
223 lines (201 loc) · 6.36 KB
/
pieces.asc
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
; MSX Block Puzzle game, released as entry for the MSXDev'20
; Created by David Heremans, aka turbor on mrc
;
; the 19 possible pieces of the game are defined here
;
pieces:
dw piece0
dw piece1
dw piece2
dw piece3
dw piece4
dw piece5
dw piece6
dw piece7
dw piece8
dw piece9
dw piece10
dw piece11
dw piece12
dw piece13
dw piece14
dw piece15
dw piece16
dw piece17
dw piece18
piecesend
nrpieces equ (piecesend-pieces)/2
; score points storing is faster and simpler then writting code to count the
; bits, and probably since there are only 18 pieces less memory is needed also
piece0:
db 1 ; score points
db 2 ; rowshift to fit in the 5x5 preview
db 2 ; colshift to fit in the 5x5 preview
dw %1000000000000000 ; 5 rows since that is the max height but always shiftup/left as much as possible
dw %0000000000000000
dw %0000000000000000
dw %0000000000000000
dw %0000000000000000
piece1:
db 3 ; score points
db 2 ; rowshift to fit in the 5x5 preview
db 2 ; colshift to fit in the 5x5 preview
dw %1100000000000000 ; 5 rows since that is the max height but always shiftup/left as much as possible
dw %1000000000000000
dw %0000000000000000
dw %0000000000000000
dw %0000000000000000
piece2:
db 3 ; score points
db 1 ; rowshift to fit in the 5x5 preview
db 2 ; colshift to fit in the 5x5 preview
dw %1000000000000000 ; 5 rows since that is the max height but always shiftup/left as much as possible
dw %1100000000000000
dw %0000000000000000
dw %0000000000000000
dw %0000000000000000
piece3:
db 3 ; score points
db 1 ; rowshift to fit in the 5x5 preview
db 1 ; colshift to fit in the 5x5 preview
dw %0100000000000000 ; 5 rows since that is the max height but always shiftup/left as much as possible
dw %1100000000000000
dw %0000000000000000
dw %0000000000000000
dw %0000000000000000
piece4:
db 3 ; score points
db 2 ; rowshift to fit in the 5x5 preview
db 1 ; colshift to fit in the 5x5 preview
dw %1100000000000000 ; 5 rows since that is the max height but always shiftup/left as much as possible
dw %0100000000000000
dw %0000000000000000
dw %0000000000000000
dw %0000000000000000
piece5:
db 4 ; score points
db 1 ; rowshift to fit in the 5x5 preview
db 2 ; colshift to fit in the 5x5 preview
dw %1100000000000000 ; 5 rows since that is the max height but always shiftup/left as much as possible
dw %1100000000000000
dw %0000000000000000
dw %0000000000000000
dw %0000000000000000
piece6:
db 9 ; score points
db 1 ; rowshift to fit in the 5x5 preview
db 1 ; colshift to fit in the 5x5 preview
dw %1110000000000000 ; 5 rows since that is the max height but always shiftup/left as much as possible
dw %1110000000000000
dw %1110000000000000
dw %0000000000000000
dw %0000000000000000
piece7:
db 5 ; score points
db 1 ; rowshift to fit in the 5x5 preview
db 1 ; colshift to fit in the 5x5 preview
dw %1110000000000000 ; 5 rows since that is the max height but always shiftup/left as much as possible
dw %1000000000000000
dw %1000000000000000
dw %0000000000000000
dw %0000000000000000
piece8:
db 5 ; score points
db 1 ; rowshift to fit in the 5x5 preview
db 1 ; colshift to fit in the 5x5 preview
dw %1000000000000000 ; 5 rows since that is the max height but always shiftup/left as much as possible
dw %1000000000000000
dw %1110000000000000
dw %0000000000000000
dw %0000000000000000
piece9:
db 5 ; score points
db 1 ; rowshift to fit in the 5x5 preview
db 1 ; colshift to fit in the 5x5 preview
dw %0010000000000000 ; 5 rows since that is the max height but always shiftup/left as much as possible
dw %0010000000000000
dw %1110000000000000
dw %0000000000000000
dw %0000000000000000
piece10:
db 5 ; score points
db 1 ; rowshift to fit in the 5x5 preview
db 1 ; colshift to fit in the 5x5 preview
dw %1110000000000000 ; 5 rows since that is the max height but always shiftup/left as much as possible
dw %0010000000000000
dw %0010000000000000
dw %0000000000000000
dw %0000000000000000
piece11:
db 2 ; score points
db 1 ; rowshift to fit in the 5x5 preview
db 2 ; colshift to fit in the 5x5 preview
dw %1000000000000000 ; 5 rows since that is the max height but always shiftup/left as much as possible
dw %1000000000000000
dw %0000000000000000
dw %0000000000000000
dw %0000000000000000
piece12:
db 3 ; score points
db 1 ; rowshift to fit in the 5x5 preview
db 2 ; colshift to fit in the 5x5 preview
dw %1000000000000000 ; 5 rows since that is the max height but always shiftup/left as much as possible
dw %1000000000000000
dw %1000000000000000
dw %0000000000000000
dw %0000000000000000
piece13:
db 4 ; score points
db 0 ; rowshift to fit in the 5x5 preview
db 2 ; colshift to fit in the 5x5 preview
dw %1000000000000000 ; 5 rows since that is the max height but always shiftup/left as much as possible
dw %1000000000000000
dw %1000000000000000
dw %1000000000000000
dw %0000000000000000
piece14:
db 5 ; score points
db 0 ; rowshift to fit in the 5x5 preview
db 2 ; colshift to fit in the 5x5 preview
dw %1000000000000000 ; 5 rows since that is the max height but always shiftup/left as much as possible
dw %1000000000000000
dw %1000000000000000
dw %1000000000000000
dw %1000000000000000
piece15:
db 2 ; score points
db 2 ; rowshift to fit in the 5x5 preview
db 2 ; colshift to fit in the 5x5 preview
dw %1100000000000000 ; 5 rows since that is the max height but always shiftup/left as much as possible
dw %0000000000000000
dw %0000000000000000
dw %0000000000000000
dw %0000000000000000
piece16:
db 3 ; score points
db 2 ; rowshift to fit in the 5x5 preview
db 1 ; colshift to fit in the 5x5 preview
dw %1110000000000000 ; 5 rows since that is the max height but always shiftup/left as much as possible
dw %0000000000000000
dw %0000000000000000
dw %0000000000000000
dw %0000000000000000
piece17:
db 4 ; score points
db 2 ; rowshift to fit in the 5x5 preview
db 1 ; colshift to fit in the 5x5 preview
dw %1111000000000000 ; 5 rows since that is the max height but always shiftup/left as much as possible
dw %0000000000000000
dw %0000000000000000
dw %0000000000000000
dw %0000000000000000
piece18:
db 5 ; score points
db 2 ; rowshift to fit in the 5x5 preview
db 0 ; colshift to fit in the 5x5 preview
dw %1111100000000000 ; 5 rows since that is the max height but always shiftup/left as much as possible
dw %0000000000000000
dw %0000000000000000
dw %0000000000000000
dw %0000000000000000
; vim:foldmethod=marker:ft=z8a:ts=16