Subversion Repositories Kolibri OS

Rev

Rev 6363 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6363 Rev 6368
1
//(C) Artemonische, 2010
1
//(C) Artemonische, 2010
2
 
2
 
3
#pragma option meos
3
#pragma option meos
4
//#include "..\lib\kolibri.h--" //¯®¤ª«îç ¥¬ ¡¨¡«¨®â¥ªã á KolibriOS API
4
//#include "..\lib\kolibri.h--" //¯®¤ª«îç ¥¬ ¡¨¡«¨®â¥ªã á KolibriOS API
5
#include "kolibri.h--"
5
#include "kolibri.h--"
-
 
6
 
-
 
7
#ifndef AUTOBUILD
-
 
8
#include "lang.h--"
-
 
9
#endif
-
 
10
 
-
 
11
#ifdef LANG_RUS		
-
 
12
	?define TOP_TEXT_COL 4
-
 
13
	?define TOP_TEXT "‘®¡¥à¨â¥ ¢á¥ ç¨á«  ®â 10 ¤® 90 ¯® ¯®à浪ã..."
-
 
14
	?define BOT_LEFT_TEXT_COL 4
-
 
15
	?define BOT_LEFT_TEXT "ˆé¥¬ ç¨á«®: "
-
 
16
	?define BOT_RIGHT_TEXT_COL 162
-
 
17
	?define BOT_RIGHT_TEXT "Žáâ «®áì ­ ©â¨: "
-
 
18
	?define BOT_LEFT_NUMBER_COL 70
-
 
19
	?define BOT_RIGHT_NUMBER_COL 252
-
 
20
	?define F2_TEXT "‡ ­®¢® (F2)"
-
 
21
	?define WIN_TEXT "‚ë ­ è«¨ ¢á¥ ç¨á« ! :)"		
-
 
22
#else
-
 
23
	?define TOP_TEXT_COL 2
-
 
24
	?define TOP_TEXT "Collect all numbers from 10 to 90 in order..."
-
 
25
	?define BOT_LEFT_TEXT_COL 2
-
 
26
	?define BOT_LEFT_TEXT "Looking for number: "
-
 
27
	?define BOT_RIGHT_TEXT_COL 156
-
 
28
	?define BOT_RIGHT_TEXT "Remains to find: "
-
 
29
	?define BOT_LEFT_NUMBER_COL 116
-
 
30
	?define BOT_RIGHT_NUMBER_COL 252
-
 
31
	?define F2_TEXT "Anew (F2)"
-
 
32
	?define WIN_TEXT "You have found all numbers! :)"
-
 
33
#endif
6
 
34
 
7
int find=10;
35
int find=10;
8
struct
36
struct
9
	{
37
	{
10
	int x;
38
	int x;
11
	int y;
39
	int y;
12
	int button_id;
40
	int button_id;
13
	int mark;
41
	int mark;
14
	int text;
42
	int text;
15
	}box[81];
43
	}box[81];
16
 
44
 
17
void main()
45
void main()
18
{	
46
{	
19
	int button,tempi,tempj;
47
	int button,tempi,tempj;
20
	randomize();
48
	randomize();
21
	initialization();
49
	initialization();
22
	draw_window();
50
	draw_window();
23
	draw_buttons();
51
	draw_buttons();
24
	loop()
52
	loop()
25
	{
53
	{
26
		switch(WaitEvent())
54
		switch(WaitEvent())
27
		{
55
		{
28
			case evButton:
56
			case evButton:
29
				button=GetButtonID();
57
				button=GetButtonID();
30
				IF (button==1)
58
				IF (button==1)
31
					{
59
					{
32
					ExitProcess();
60
					ExitProcess();
33
					}
61
					}
34
				IF (button==582)
62
				IF (button==582)
35
					{
63
					{
36
					find=10;
64
					find=10;
37
					initialization();
65
					initialization();
38
					draw_window();
66
					draw_window();
39
					draw_buttons();
67
					draw_buttons();
40
					}
68
					}
41
				if (button>500) && (button<582) && (box[button-500].text == find)
69
				if (button>500) && (button<582) && (box[button-500].text == find)
42
					{
70
					{
43
					box[button-500].mark=2;
71
					box[button-500].mark=2;
44
					find++;
72
					find++;
45
					IF (find==91)
73
					IF (find==91)
46
						{
74
						{
47
						draw_window();
75
						draw_window();
48
						}
76
						}
49
					else
77
					else
50
						{
78
						{
51
						DeleteButton(button);
79
						DeleteButton(button);
52
						tempi=box[button-500].y*30-30;
80
						tempi=box[button-500].y*30-30;
53
						tempj=30*box[button-500].x-16;
81
						tempj=30*box[button-500].x-16;
54
						DrawBar(tempi,tempj,30,30,0xDCFFDC);
82
						DrawBar(tempi,tempj,30,30,0xDCFFDC);
55
						DrawBar(70,289,16,8,0xDCFFDC);
83
						DrawBar(70,289,16,8,0xDCFFDC);
56
						DrawBar(252,289,16,8,0xDCFFDC);
84
						DrawBar(252,289,16,8,0xDCFFDC);
57
						WriteNumber(70,289,0x80,0,find);
85
						WriteNumber(70,289,0x80,0,find);
58
						WriteNumber(252,289,0x80,0,90-find+1);
86
						WriteNumber(252,289,0x80,0,90-find+1);
59
						}
87
						}
60
					}
88
					}
61
				BREAK;
89
				BREAK;
62
			case evKey: //¥á«¨ ¯à®¨§®è«® ­ ¦ â¨¥ ª« ¢¨è¨ ­  ª« ¢¨ âãà¥
90
			case evKey: //¥á«¨ ¯à®¨§®è«® ­ ¦ â¨¥ ª« ¢¨è¨ ­  ª« ¢¨ âãà¥
63
				IF (GetKey()==051)
91
				IF (GetKey()==051)
64
					{
92
					{
65
					find=10;
93
					find=10;
66
					initialization();
94
					initialization();
67
					draw_window();
95
					draw_window();
68
					draw_buttons();
96
					draw_buttons();
69
					}
97
					}
70
				BREAK;
98
				BREAK;
71
			case evReDraw:
99
			case evReDraw:
72
				draw_window();
100
				draw_window();
73
				draw_buttons();
101
				draw_buttons();
74
				break;
102
				break;
75
		}
103
		}
76
	}
104
	}
77
	ExitProcess();
105
	ExitProcess();
78
}
106
}
79
 
107
 
80
void draw_window()
108
void draw_window()
81
{
109
{
82
	WindowRedrawStatus(1); //­ ç «® ¯¥à¥à¨á®¢ª¨ ®ª­ 
110
	WindowRedrawStatus(1); //­ ç «® ¯¥à¥à¨á®¢ª¨ ®ª­ 
83
	DefineAndDrawWindow(300,176,280,340,0x34,0xDCFFDC,0,0,"FindNumbers v1.1"); //à¨á㥬 ®ª­®
111
	DefineAndDrawWindow(300,176,280,340,0x34,0xDCFFDC,0,0,"FindNumbers v1.1"); //à¨á㥬 ®ª­®
84
	DrawBar(0,13,271,1,0x0CFF0C); //«¨­¨ï ᢥàåã
112
	DrawBar(0,13,271,1,0x0CFF0C); //«¨­¨ï ᢥàåã
85
	DrawBar(0,285,271,1,0x0CFF0C);
113
	DrawBar(0,285,271,1,0x0CFF0C);
86
	DrawBar(0,299,271,1,0x0CFF0C); //«¨­¨ï á­¨§ã
114
	DrawBar(0,299,271,1,0x0CFF0C); //«¨­¨ï á­¨§ã
87
	if (find<=90)
115
	if (find<=90)
88
		{
116
		{
89
		WriteText(4,4,0x80,0x000000,"‘®¡¥à¨â¥ ¢á¥ ç¨á«  ®â 10 ¤® 90 ¯® ¯®à浪ã...");
117
		WriteText(TOP_TEXT_COL,4,0x80,0x000000,TOP_TEXT);
90
		WriteText(4,289,0x80,0x000000,"ˆé¥¬ ç¨á«®: ");
118
		WriteText(BOT_LEFT_TEXT_COL,289,0x80,0x000000,BOT_LEFT_TEXT);
91
		WriteText(162,289,0x80,0x000000,"Žáâ «®áì ­ ©â¨: ");
119
		WriteText(BOT_RIGHT_TEXT_COL,289,0x80,0x000000,BOT_RIGHT_TEXT);
92
		WriteNumber(70,289,0x80,0,find);
120
		WriteNumber(BOT_LEFT_NUMBER_COL,289,0x80,0,find);
93
		WriteNumber(252,289,0x80,0,90-find+1);
121
		WriteNumber(BOT_RIGHT_NUMBER_COL,289,0x80,0,90-find+1);
94
		DrawFlatButton(155,300,115,14,582,0xAFFFAF,"‡ ­®¢® (F2)");
122
		DrawFlatButton(155,300,115,14,582,0xAFFFAF,F2_TEXT);
95
		WriteText(4,304,0x80,0x000000,"Made by Artemonische,2010");
123
		WriteText(2,304,0x80,0x000000,"Made by Artemonische,2010");
96
		}
124
		}
97
	IF (find==91)
125
	IF (find==91)
98
		{
126
		{
99
		WriteText(70,100,0x80,0x000000,"‚ë ­ è«¨ ¢á¥ ç¨á« ! :)");
127
		WriteText(70,100,0x80,0x000000,WIN_TEXT);
100
		DrawFlatButton(100,110,70,20,582,0xE4DFE1,"‡ ­®¢® (F2)");
128
		DrawFlatButton(100,110,70,20,582,0xE4DFE1,F2_TEXT);
101
		}
129
		}
102
	WindowRedrawStatus(2); //ª®­¥æ ¯¥à¥à¨á®¢ª¨ ®ª­ 
130
	WindowRedrawStatus(2); //ª®­¥æ ¯¥à¥à¨á®¢ª¨ ®ª­ 
103
}
131
}
104
 
132
 
105
void draw_buttons()
133
void draw_buttons()
106
{
134
{
107
int i,tempi,tempj;
135
int i,tempi,tempj;
108
	FOR (i=1;i<=81;i++)
136
	FOR (i=1;i<=81;i++)
109
		{
137
		{
110
		IF (box[i].mark==1)
138
		IF (box[i].mark==1)
111
			{
139
			{
112
			tempi=box[i].y*30-30;
140
			tempi=box[i].y*30-30;
113
			tempj=30*box[i].x-16;
141
			tempj=30*box[i].x-16;
114
			DefineButton(tempi,tempj,29,29,box[i].button_id,0xAFFFAF);
142
			DefineButton(tempi,tempj,29,29,box[i].button_id,0xAFFFAF);
115
			WriteNumber(tempi+11,tempj+11,0x80,0,box[i].text);
143
			WriteNumber(tempi+11,tempj+11,0x80,0,box[i].text);
116
			}
144
			}
117
		}
145
		}
118
}
146
}
119
 
147
 
120
void initialization()
148
void initialization()
121
{
149
{
122
int i,j,t;
150
int i,j,t;
123
t=0;
151
t=0;
124
	FOR (i=1;i<=9;i++)
152
	FOR (i=1;i<=9;i++)
125
		{
153
		{
126
		FOR (j=1;j<=9;j++)
154
		FOR (j=1;j<=9;j++)
127
			{
155
			{
128
			t++;
156
			t++;
129
			box[t].x=j;
157
			box[t].x=j;
130
			box[t].y=i;
158
			box[t].y=i;
131
			box[t].mark=1;
159
			box[t].mark=1;
132
			box[t].button_id=500+t;
160
			box[t].button_id=500+t;
133
			box[t].text=Generate(t);
161
			box[t].text=Generate(t);
134
			}
162
			}
135
		}
163
		}
136
}
164
}
137
 
165
 
138
int Generate(int xx)
166
int Generate(int xx)
139
{
167
{
140
	int temp,k,p;
168
	int temp,k,p;
141
	p=2;
169
	p=2;
142
	WHILE (p==2)
170
	WHILE (p==2)
143
		{
171
		{
144
		temp=random(81)+10;
172
		temp=random(81)+10;
145
		p=1;
173
		p=1;
146
		FOR (k=1; k
174
		FOR (k=1; k
147
			{
175
			{
148
			IF (box[k].text==temp)
176
			IF (box[k].text==temp)
149
				{
177
				{
150
				p=2;
178
				p=2;
151
				BREAK;
179
				BREAK;
152
				}
180
				}
153
			}
181
			}
154
		}
182
		}
155
	return temp;
183
	return temp;
156
}
184
}
157
stop:
185
stop:
158
>
186
>
159
>
187
>
160
>
188
>
161
>
189
>