Subversion Repositories Kolibri OS

Rev

Rev 1810 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
950 leency 1
 
2
#include "stdio.h"
3
#include "stdlib.h"
4
#include "string.h"
5
6
 
7
#include "az3.h"
8
#include "az4.h"
9
10
 
11
12
 
13
#define scrh (16+8*32)
14
15
 
16
17
 
18
{
19
char x;
20
char y;
21
} p_point;
22
23
 
24
25
 
26
27
 
28
char score[10];
29
30
 
31
GB_BMP screen, az, azr;
32
33
 
34
p_point z[32*32];
35
p_point v;
36
p_point r;
37
int len;
38
39
 
40
41
 
42
 
43
44
 
45
{
46
if (c > 191)
47
	gb_image_set_t(&screen, x, y, &azr, (c-192)*8, 1, 8, 14, 0);
48
else
49
	gb_image_set_t(&screen, x, y, &az, (c-' ')*8, 1, 8, 14, 0);
50
}
51
52
 
53
54
 
55
{
56
unsigned i;
57
i = 0;
58
while (*(s+i))
59
	{
60
	az_putc(*(s+i), x+i*9, y);
61
	i++;
62
	}
63
64
 
65
66
 
67
68
 
69
{
70
char c;
71
int i = 0;
72
do
73
	{
74
	c = n % 10 + '0';
75
	az_putc(c, x-9*i, y);
76
	i++;
77
	}
78
	while ((n /= 10) > 0);
79
}
80
81
 
82
83
 
84
{
85
86
 
87
88
 
89
	for (x = 0; x < 32; x++)
90
		M[x][y] = 0;
91
92
 
93
	{
94
	M[0][y] = 1;
95
	M[31][y] = 1;
96
	M[y][0] = 1;
97
	M[y][31] = 1;
98
	}
99
}
100
101
 
102
103
 
104
{
105
int i;
106
107
 
108
	M[z[i].x][z[i].y] = 2;
109
110
 
111
112
 
113
114
 
115
{
116
M[r.x][r.y] = 3;
117
}
118
119
 
120
121
 
122
{
123
124
 
125
	{
126
	r.x = rand()%29+1;
127
	r.y = rand()%29+1;
128
129
 
130
		return;
131
	}
132
}
133
//=====================================
134
135
 
136
{
137
138
 
139
140
 
141
v.y = 0;
142
143
 
144
145
 
146
z[0].y = 16;
147
148
 
149
z[1].y = 16;
150
151
 
152
put_r();
153
put_z();
154
155
 
156
}
157
158
 
159
160
 
161
{
162
az_puts("нажмите Пробел", 10, 180);
163
az_puts("чтобы продолжить", 10, 195);
164
}
165
166
 
167
168
 
169
{
170
171
 
172
173
 
174
	{
175
	case 0:
176
		gb_bar(&screen, 0, 0, scrw, scrh, 0xbb);
177
		az_puts("П И Т О Н   0.3", 10, 60);
178
		az_puts("ремейк для ОС Колибри", 10, 120);
179
		az_puts("автор: А. Богомаз", 10, 135);
180
		press_space();
181
		break;
182
183
 
184
 
185
		gb_bar(&screen, 0, 0, scrw, 16, 0xbb);
186
		az_puts("ОЧКИ:", 10, 0);
187
		az_puti(len-2, 120, 0);
188
		for (y = 0; y < 32; y++)
189
			for (x = 0; x < 32; x++)
190
				gb_bar(&screen, x*8, y*8+16, 8, 8, color[ M[x][y] ]);
191
192
 
193
194
 
195
		gb_bar(&screen, 0, 0, scrw, scrh, 0xbb0000);
196
		az_puts("П А У З А", 10, 60);
197
		press_space();
198
		break;
199
200
 
201
		gb_bar(&screen, 0, 0, scrw, scrh, 0xee0000);
202
		az_puts("К О Н Е Ц    И Г Р Ы", 10, 60);
203
		kol_screen_wait_rr();
204
		kol_paint_image(0, 0, scrw, scrh, screen.bmp);
205
		kol_sleep(120);
206
		mode = 0;
207
		return;
208
	};
209
210
 
211
kol_paint_image(0, 0, scrw, scrh, screen.bmp);
212
213
 
214
215
 
216
217
 
218
{
219
kol_paint_start();
220
kol_wnd_define(280, 30, scrw+8, scrh+kol_skin_height()+4, 0x34888888);
221
kol_wnd_caption(STR_TITLE);
222
screen_draw();
223
kol_paint_end();
224
}
225
226
 
227
228
 
229
{
230
int i;
231
232
 
233
	{
234
	z[i].x = z[i-1].x;
235
	z[i].y = z[i-1].y;
236
	}
237
238
 
239
z[0].y += v.y;
240
241
 
242
	return -1;
243
244
 
245
	{
246
	rabbit_new();
247
	return 1;
248
	}
249
250
 
251
 
252
put_r();
253
put_z();
254
255
 
256
}
257
258
 
259
260
 
261
{
262
263
 
264
int res;
265
266
 
267
268
 
269
screen.w = scrw;
270
screen.h = scrh;
271
272
 
273
az.w = 744;
274
az.h = 15;
275
276
 
277
azr.w = 512;
278
azr.h = 15;
279
280
 
281
282
 
283
	{
284
	kol_sleep(9);
285
286
 
287
		{
288
		res = piton_move();
289
290
 
291
			len++;
292
293
 
294
			mode = 3;
295
296
 
297
298
 
299
	event = kol_event_check();
300
301
 
302
		{
303
		case 1:
304
			wnd_draw();
305
			break;
306
307
 
308
			key = (kol_key_get() & 0xff00)>>8;
309
310
 
311
				{
312
313
 
314
					if (32 == key)
315
						{
316
						mode = 1;
317
						game_start();
318
						}
319
					break;
320
321
 
322
					switch (key)
323
						{
324
						case 27:
325
							mode = 0;
326
							break;
327
						case 32:
328
							mode = 2;
329
							break;
330
						case 178:
331
							if (0 == v.y)
332
								{
333
								v.x = 0;
334
								v.y = -1;
335
								}
336
							break;
337
						case 177:
338
							if (0 == v.y)
339
								{
340
								v.x = 0;
341
								v.y = 1;
342
								}
343
							break;
344
						case 176:
345
							if (0 == v.x)
346
								{
347
								v.x = -1;
348
								v.y = 0;
349
								}
350
							break;
351
						case 179:
352
							if (0 == v.x)
353
								{
354
								v.x = 1;
355
								v.y = 0;
356
								}
357
							break;
358
						};
359
					break;
360
361
 
362
					if (32 == key)
363
						mode = 1;
364
					break;
365
366
 
367
368
 
369
370
 
371
			if ( 1 == (kol_btn_get() & 0xff00)>>8 )
372
				kol_exit();
373
			break;
374
375
 
376
	}
377
378
 
379
380
 
381