Rev 2282 | Rev 2295 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2282 | Rev 2283 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | //Leency 06.10.2011, Flood-it! v2.1, GPL |
1 | //Leency 06.10.2011, Flood-it! v2.2, GPL |
Line 2... | Line 2... | ||
2 | 2 | ||
3 | #include "lib\kolibri.h" |
3 | #include "lib\kolibri.h" |
Line 4... | Line 4... | ||
4 | #include "lib\random.h" |
4 | #include "lib\random.h" |
Line 29... | Line 29... | ||
29 | dword FIELD_COLORS[]= {0xf18db6, 0x605ca8, 0xfddc80, 0xdc4a20, 0x46b1e2, 0x7e9d1e, 0x232323, 0}; |
29 | dword FIELD_COLORS[]= {0xf18db6, 0x605ca8, 0xfddc80, 0xdc4a20, 0x46b1e2, 0x7e9d1e, 0x232323, 0}; |
30 | char *BOARD_SIZES[]={ "S", "L", 0 }; |
30 | char *BOARD_SIZES[]={ "S", "L", 0 }; |
Line 31... | Line 31... | ||
31 | 31 | ||
32 | 32 | ||
33 | #ifdef LANG_RUS |
33 | #ifdef LANG_RUS |
34 | char *BUTTON_CAPTIONS[]={ " ®¢ ï [F2]", " ®¬®éì [F1]", " ë室 [Esc]", 0}; |
34 | char *BUTTON_CAPTIONS[]={ " ®¢® [F2]", " ®¬®éì [F1]", " ë室 [Esc]", 0}; |
Line 35... | Line 35... | ||
35 | char CLICKS_TEXT[]=" «¨ª¨: /"; |
35 | char CLICKS_TEXT[]=" «¨ª¨: /"; |
36 | char LEVELS_TEXT[]="®«¥:"; |
36 | char LEVELS_TEXT[]="®«¥:"; |
Line 70... | Line 70... | ||
70 | "[A] [S] [D]", |
70 | "[A] [S] [D]", |
71 | 0}; |
71 | 0}; |
72 | #endif |
72 | #endif |
Line 73... | Line 73... | ||
73 | 73 | ||
Line 74... | Line 74... | ||
74 | 74 | ||
75 | int color_matrix[28*28]; //öâåòà äëÿ ïîëÿ ñ êâàäðàòèêàìè |
75 | unsigned char color_matrix[28*28]; //öâåòà äëÿ ïîëÿ ñ êâàäðàòèêàìè |
76 | 76 | ||
77 | int loose_matrix[14*14]={ |
77 | unsigned char loose_matrix[14*14]={ |
78 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
78 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
79 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
79 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
Line 89... | Line 89... | ||
89 | 2, 3, 2, 2, 2, 3, 2, 3, 2, 3, 2, 3, 3, 2, |
89 | 2, 3, 2, 2, 2, 3, 2, 3, 2, 3, 2, 3, 3, 2, |
90 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
90 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
91 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 |
91 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 |
92 | }; |
92 | }; |
Line 93... | Line 93... | ||
93 | 93 | ||
94 | int win_matrix[14*14]={ |
94 | unsigned char win_matrix[14*14]={ |
95 | 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, |
95 | 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, |
96 | 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, |
96 | 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, |
97 | 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 4, 1, 4, |
97 | 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 4, 1, 4, |
98 | 4, 1, 4, 1, 4, 1, 4, 4, 4, 1, 4, 4, 1, 4, |
98 | 4, 1, 4, 1, 4, 1, 4, 4, 4, 1, 4, 4, 1, 4, |
Line 121... | Line 121... | ||
121 | case evButton: |
121 | case evButton: |
122 | id = GetButtonID(); |
122 | id = GetButtonID(); |
123 | IF (id==1) || (id==4) ExitProcess(); |
123 | IF (id==1) || (id==4) ExitProcess(); |
124 | IF (id==2) goto _NEW_GAME_MARK; |
124 | IF (id==2) goto _NEW_GAME_MARK; |
125 | IF (id==3) goto _HELP_MARK; |
125 | IF (id==3) goto _HELP_MARK; |
- | 126 | IF (id>=100) |
|
- | 127 | { |
|
126 | IF (id>=100) make_turn(id-100); |
128 | make_turn(id-100); |
- | 129 | break; |
|
- | 130 | } |
|
127 | if (id>=10) |
131 | if (id>=10) |
128 | { |
132 | { |
129 | id=id-10*3; |
133 | id=id-10*3; |
Line 130... | Line 134... | ||
130 | 134 | ||
Line 238... | Line 242... | ||
238 | } |
242 | } |
Line 239... | Line 243... | ||
239 | 243 | ||
240 | 244 | ||
241 | void new_game() |
245 | void new_game() |
242 | { |
- | |
243 | int i, j; |
- | |
Line 244... | Line 246... | ||
244 | 246 | { |
|
Line 245... | Line 247... | ||
245 | //randomize(); |
247 | int i; |
246 | - | ||
247 | CLICKS = 0; |
248 | |
248 | 249 | CLICKS = 0; |
|
Line 249... | Line 250... | ||
249 | for (i=0;i |
250 | |
250 | for (j=0;j |
251 | for (i=0;i |
251 | color_matrix[i*BLOCKS_NUM+j] = random(6); |
252 | color_matrix[i] = random(6); |
252 | } |
253 | } |
253 | 254 | ||
254 | 255 | ||
Line 255... | Line 256... | ||
255 | void fill_field(int new_color_id) |
256 | void fill_field(int new_color_id) |
Line 278... | Line 279... | ||
278 | 279 | ||
279 | IF (color_matrix[i*BLOCKS_NUM+j]==MARKED) restart=1; //åñëè ôèøêó îòìåòèëè, òî ïîòîì öèêë íóæíî áóäåò ïðîêðóòèòü ñíà÷àëà - ìîæ åù¸ ÷¸ îòìåòèì |
280 | IF (color_matrix[i*BLOCKS_NUM+j]==MARKED) restart=1; //åñëè ôèøêó îòìåòèëè, òî ïîòîì öèêë íóæíî áóäåò ïðîêðóòèòü ñíà÷àëà - ìîæ åù¸ ÷¸ îòìåòèì |
280 | } |
281 | } |
Line 281... | Line 282... | ||
281 | IF (restart) goto _RESTART_MARK; |
282 | IF (restart) goto _RESTART_MARK; |
282 | - | ||
283 | for (i=0;i |
283 | |
284 | for (j=0;j |
284 | for (i=0;i |
Line 285... | Line 285... | ||
285 | IF (color_matrix[i*BLOCKS_NUM+j]==MARKED) color_matrix[i*BLOCKS_NUM+j]=new_color_id; |
285 | IF (color_matrix[i]==MARKED) color_matrix[i]=new_color_id; |
286 | } |
286 | } |
Line 292... | Line 292... | ||
292 | 292 | ||
293 | if (CLICKS>=MAX_CLICKS) //åñëè ïðîèãðûø |
293 | if (CLICKS>=MAX_CLICKS) //åñëè ïðîèãðûø |
294 | { |
294 | { |
295 | IF (CLICKS==MAX_CLICKS) //âûèãðûøü íà ïîñëåäíåì õîäå |
295 | IF (CLICKS==MAX_CLICKS) //âûèãðûøü íà ïîñëåäíåì õîäå |
296 | { |
296 | { |
297 | for (i=0;i |
- | |
298 | for (j=0;j |
297 | for (i=0;i |
299 | IF (color_matrix[i*BLOCKS_NUM+j]<>color_matrix[0]) goto _LOOSE_MARK; |
298 | IF (color_matrix[i]<>color_matrix[0]) goto _LOOSE_MARK; |
300 | goto _WIN_MARK; |
299 | goto _WIN_MARK; |
Line 301... | Line 300... | ||
301 | } |
300 | } |
Line 324... | Line 323... | ||
324 | } |
323 | } |
Line 325... | Line 324... | ||
325 | 324 | ||
326 | return 1; |
325 | return 1; |
Line 327... | Line 326... | ||
327 | } |
326 | } |
328 | - | ||
329 | for (i=0;i |
327 | |
Line 330... | Line 328... | ||
330 | for (j=0;j |
328 | for (i=0;i |
Line 331... | Line 329... | ||
331 | IF (color_matrix[i*BLOCKS_NUM+j]<>color_matrix[0]) return 0; |
329 | IF (color_matrix[i]<>color_matrix[0]) return 0; |