Subversion Repositories Kolibri OS

Rev

Rev 6167 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6167 Rev 7984
Line 1... Line -...
1
//Leency 10.10.2011, JustClicks v2.0, GPL
-
 
Line 2... Line 1...
2
 
1
#include "lib\kolibri.h"
3
#include "lib\kolibri.h"
2
#include "lib\random.h"
-
 
3
 
4
#include "lib\random.h"
4
unsigned char block[] = FROM "lib\\boxes.raw";
-
 
5
 
5
#include "lib\boxes.txt"
6
system_colors sc;
Line 6... Line 7...
6
system_colors sc;
7
 
7
 
8
//óðîâíè ñëîæíîñòè
8
//óðîâíè ñëîæíîñòè
9
int DIFFICULTY_LEVEL=1; //ïî-óìîë÷àíèþ ñðåäíåå ïîëå
9
int DIFFICULTY_LEVEL=1; //ïî-óìîë÷àíèþ ñðåäíåå ïîëå
10
char *BOARD_SIZES[]={ "S", "M", "L", 0 };
Line 10... Line 11...
10
char *BOARD_SIZES[]={ "S\0", "M\0", "L\0", 0 };
11
int DIFFICULTY_LEV_PARAMS[]={ 9, 12, 16 };
11
int DIFFICULTY_LEV_PARAMS[]={ 9, 12, 16 };
12
 
12
 
13
int BLOCKS_NUM; //êîëè÷åñòâî êâàäðàòèêîâ ïî Õ è ïî Y
Line 23... Line 24...
23
#ifndef AUTOBUILD
24
#include "lang.h--"
24
#include "lang.h--"
25
#endif
25
#endif
26
 
Line 26... Line 27...
26
 
27
#ifdef LANG_RUS
27
#ifdef LANG_RUS
28
	#define NEW_GAME_TEXT "‡ ­®¢® [F2]"
28
	char NEW_GAME_TEXT[]="‡ ­®¢® [F2]";
29
	#define RESULT_TEXT   "¥§ã«ìâ â: "
29
	char REZULT_TEXT[]="¥§ã«ìâ â: ";
30
#elif LANG_EST
30
#elif LANG_EST
31
	#define NEW_GAME_TEXT "Uus mäng [F2]"
31
	char NEW_GAME_TEXT[]="Uus mäng [F2]";
32
	#define RESULT_TEXT   "Tulemus: "
32
	char REZULT_TEXT[]="Tulemus: ";
33
#else
33
#else
34
	#define NEW_GAME_TEXT "New Game [F2]"
34
	char NEW_GAME_TEXT[]="New Game [F2]";
35
	#define RESULT_TEXT   "Result: "
35
	char REZULT_TEXT[]="Result: ";
36
#endif
Line 36... Line 37...
36
#endif
37
 
37
 
38
 
38
 
39
void main()
Line 39... Line 40...
39
void main()
40
{
Line 40... Line 41...
40
{
41
	int id;
Line 41... Line 42...
41
	int key_scancode, id;
42
 
42
 
43
	BLOCKS_NUM=DIFFICULTY_LEV_PARAMS[DIFFICULTY_LEVEL];
43
	BLOCKS_NUM=DIFFICULTY_LEV_PARAMS[DIFFICULTY_LEVEL];
44
 
44
 
45
	new_game();
45
	new_game();
46
 
46
 
47
	loop()
47
	loop()
48
		switch(WaitEvent())
48
		switch(WaitEvent())
49
		{
49
		{
50
			case evButton:
50
			case evButton:
51
				id = @GetButtonID();
Line 68... Line 69...
68
 
69
					BLOCKS_NUM = DIFFICULTY_LEV_PARAMS[DIFFICULTY_LEVEL]; //êîëè÷åñòâî êâàäðàòèêîâ ïî Õ è ïî Y
Line 69... Line 70...
69
					BLOCKS_NUM = DIFFICULTY_LEV_PARAMS[DIFFICULTY_LEVEL]; //êîëè÷åñòâî êâàäðàòèêîâ ïî Õ è ïî Y
70
 
Line 70... Line 71...
70
 
71
					new_game();
71
					new_game();
72
 
72
 
73
					MoveSize(-1, -1, BLOCK_SIZE*BLOCKS_NUM +9, BLOCK_SIZE*BLOCKS_NUM +GetSkinHeight()+4+USER_PANEL_HEIGHT);
73
					MoveSize(-1, -1, BLOCK_SIZE*BLOCKS_NUM +9, BLOCK_SIZE*BLOCKS_NUM +GetSkinWidth()+4+USER_PANEL_HEIGHT);
74
					break;
74
					break;
75
				}
75
				}
76
				break;
76
				break;
77
			case evKey:
77
			case evKey:
78
				@GetKeyScancode();
78
				key_scancode = GetKeyScancode();
79
				if (AL==001) //Escape
79
				if (key_scancode==001) //Escape
80
					 ExitProcess();
80
					 ExitProcess();
81
				if (AL==060) //F2
81
				if (key_scancode==060) //F2
82
				{
82
				{
83
					_NEW_GAME_MARK:
83
					_NEW_GAME_MARK:
84
						new_game();
Line 167... Line 168...
167
{
168
	int PANEL_Y;
168
	int PANEL_Y;
169
	proc_info Form;
169
	proc_info Form;
170
 
Line 170... Line 171...
170
 
171
	sc.get();
171
	sc.get();
172
	DefineAndDrawWindow(300,176, BLOCK_SIZE*BLOCKS_NUM +9, BLOCK_SIZE*BLOCKS_NUM +GetSkinHeight()+4+USER_PANEL_HEIGHT,
172
	DefineAndDrawWindow(300,176, BLOCK_SIZE*BLOCKS_NUM +9, BLOCK_SIZE*BLOCKS_NUM +GetSkinWidth()+4+USER_PANEL_HEIGHT,
173
		0x74,sc.work,0,0,HEADER);
Line 173... Line 174...
173
		0x74,sc.work,0,0,HEADER);
174
 
174
 
175
	//ïðîâåðÿåì íå ñõëîïíóòî ëè îêíî â çàãîëîâîê
175
	//ïðîâåðÿåì íå ñõëîïíóòî ëè îêíî â çàãîëîâîê
176
	GetProcessInfo(#Form, SelfInfo);
Line 179... Line 180...
179
 
180
	PANEL_Y=BLOCK_SIZE*BLOCKS_NUM;
Line 180... Line 181...
180
	PANEL_Y=BLOCK_SIZE*BLOCKS_NUM;
181
 
Line 181... Line 182...
181
 
182
	DrawBar(0,PANEL_Y, PANEL_Y, USER_PANEL_HEIGHT, sc.work); //ïàíåëü ñíèçó
182
	DrawBar(0,PANEL_Y, PANEL_Y, USER_PANEL_HEIGHT, sc.work); //ïàíåëü ñíèçó
183
 
Line 183... Line 184...
183
 
184
	DrawCaptButton(10, PANEL_Y+7, 90, 20, 2, sc.work_button, sc.work_button_text,NEW_GAME_TEXT);
Line 184... Line 185...
184
	DrawCaptButton(10, PANEL_Y+7, 90, 20, 2, sc.work_button, sc.work_button_text,#NEW_GAME_TEXT);
185
	DrawCaptButton(105,PANEL_Y+7, 20, 20, 10,sc.work_button, sc.work_button_text,BOARD_SIZES[DIFFICULTY_LEVEL]);
Line 227... Line 228...
227
	DrawBar(TEXT_X, TEXT_Y, 18,9, sc.work);
228
	WriteText(TEXT_X,TEXT_Y,0x80,sc.work_text,IntToStr(BLOCKS_LEFT),0);
228
	WriteText(TEXT_X,TEXT_Y,0x80,sc.work_text,IntToStr(BLOCKS_LEFT),0);
229
 
Line 229... Line 230...
229
 
230
	if (check_for_end())
230
	if (check_for_end())
231
	{
231
	{
232
		copystr(RESULT_TEXT, #rezult);
232
		copystr(#REZULT_TEXT, #rezult);
233
		copystr(IntToStr(BLOCKS_LEFT), #rezult+strlen(#rezult));
233
		copystr(IntToStr(BLOCKS_LEFT), #rezult+strlen(#rezult));
234
		if (check_for_end()==1) copystr("Epic WIN!!1", #rezult);
234
		if (check_for_end()==1) copystr("Epic WIN!!1", #rezult);
235
		DrawFlatButton(BLOCK_SIZE*BLOCKS_NUM/2-70, BLOCK_SIZE*BLOCKS_NUM/2-20, 140, 40, 3, #rezult);
235
		DrawFlatButton(BLOCK_SIZE*BLOCKS_NUM/2-70, BLOCK_SIZE*BLOCKS_NUM/2-20, 140, 40, 3, #rezult);
236
	}
236
	}
237
}
Line 241... Line 242...
241
{
242
	int i;
242
	int i;
243
 
Line 243... Line 244...
243
 
244
	//ïÿòü öâåòîâ èñïîëüçóåòñÿ â èãðå äëÿ êâàäðàòèêîâ, MARKED äëÿ òîãî,
244
	//ïÿòü öâåòîâ èñïîëüçóåòñÿ â èãðå äëÿ êâàäðàòèêîâ, MARKED äëÿ òîãî,
245
	//÷òîáû îòìåòèòü êâàäðàòèêè â ïðîöåññå çàëèâêè è DELETED_BLOCK  äëÿ èõ óäàëåíèÿ
245
	//÷òîáû îòìåòèòü êâàäðàòèêè â ïðîöåññå çàëèâêè è DELETED_BLOCK  äëÿ èõ óäàëåíèÿ
246
	for (i=0;i
246
	for (i=0;i
247
		blocks_matrix[i] = random(5);
-
 
248
	}
247
		blocks_matrix[i] = random(5);
249
	DeleteButton(3);
248
	DeleteButton(3);
250
}
Line 249... Line 251...
249
}
251