Rev 6368 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1805 | yogev_ezra | 1 | //(C) Artemonische, 2010 |
2 | |||
3 | #pragma option meos |
||
8287 | leency | 4 | #include "kolibri.h--" //подключаем библиотеку с KolibriOS API |
1805 | yogev_ezra | 5 | |
6368 | cheptil | 6 | #ifndef AUTOBUILD |
7 | #include "lang.h--" |
||
8 | #endif |
||
9 | |||
10 | #ifdef LANG_RUS |
||
11 | ?define TOP_TEXT_COL 4 |
||
12 | ?define TOP_TEXT "Соберите все числа от 10 до 90 по порядку..." |
||
13 | ?define BOT_LEFT_TEXT_COL 4 |
||
14 | ?define BOT_LEFT_TEXT "Ищем число: " |
||
15 | ?define BOT_RIGHT_TEXT_COL 162 |
||
16 | ?define BOT_RIGHT_TEXT "Осталось найти: " |
||
17 | ?define BOT_LEFT_NUMBER_COL 70 |
||
18 | ?define BOT_RIGHT_NUMBER_COL 252 |
||
19 | ?define F2_TEXT "Заново (F2)" |
||
20 | ?define WIN_TEXT "Вы нашли все числа! :)" |
||
21 | #else |
||
22 | ?define TOP_TEXT_COL 2 |
||
23 | ?define TOP_TEXT "Collect all numbers from 10 to 90 in order..." |
||
24 | ?define BOT_LEFT_TEXT_COL 2 |
||
25 | ?define BOT_LEFT_TEXT "Looking for number: " |
||
26 | ?define BOT_RIGHT_TEXT_COL 156 |
||
27 | ?define BOT_RIGHT_TEXT "Remains to find: " |
||
28 | ?define BOT_LEFT_NUMBER_COL 116 |
||
29 | ?define BOT_RIGHT_NUMBER_COL 252 |
||
8287 | leency | 30 | ?define F2_TEXT " Anew (F2) " |
6368 | cheptil | 31 | ?define WIN_TEXT "You have found all numbers! :)" |
32 | #endif |
||
33 | |||
8287 | leency | 34 | int find; |
35 | struct { |
||
1805 | yogev_ezra | 36 | int x; |
37 | int y; |
||
38 | int button_id; |
||
39 | int mark; |
||
40 | int text; |
||
8287 | leency | 41 | }box[81]; |
1805 | yogev_ezra | 42 | |
8287 | leency | 43 | #define BUTTON_NEW_GAME 582 |
44 | |||
1805 | yogev_ezra | 45 | void main() |
46 | { |
||
47 | int button,tempi,tempj; |
||
48 | randomize(); |
||
8287 | leency | 49 | new_game(); |
50 | loop() switch(@WaitEvent()) |
||
1805 | yogev_ezra | 51 | { |
8287 | leency | 52 | case evButton: |
53 | button=@GetButtonID(); |
||
54 | IF (button==1) |
||
55 | { |
||
56 | ExitProcess(); |
||
57 | } |
||
58 | IF (button==BUTTON_NEW_GAME) |
||
59 | { |
||
60 | new_game(); |
||
61 | } |
||
62 | if (button>500) && (button |
||
63 | { |
||
64 | box[button-500].mark=2; |
||
65 | find++; |
||
66 | IF (find==91) |
||
1805 | yogev_ezra | 67 | { |
68 | draw_window(); |
||
69 | } |
||
8287 | leency | 70 | else |
1805 | yogev_ezra | 71 | { |
8287 | leency | 72 | DeleteButton(button); |
73 | tempi=box[button-500].y*30-30; |
||
74 | tempj=30*box[button-500].x-16; |
||
75 | DrawBar(tempi,tempj,30,30,0xDCFFDC); |
||
76 | DrawBar(70,289,16,8,0xDCFFDC); |
||
77 | DrawBar(252,289,16,8,0xDCFFDC); |
||
78 | WriteNumber(70,289,0x80,0,find); |
||
79 | WriteNumber(252,289,0x80,0,90-find+1); |
||
1805 | yogev_ezra | 80 | } |
8287 | leency | 81 | } |
82 | BREAK; |
||
83 | case evKey: //если произошло нажатие клавиши на клавиатуре |
||
84 | IF (@GetKey()==051) new_game(); //F2 |
||
85 | BREAK; |
||
86 | case evReDraw: |
||
87 | draw_window(); |
||
88 | draw_buttons(); |
||
1805 | yogev_ezra | 89 | } |
90 | } |
||
91 | |||
92 | void draw_window() |
||
93 | { |
||
8287 | leency | 94 | DefineAndDrawWindow(300,176,280,343,0x34,0xDCFFDC,"FindNumbers"); |
1805 | yogev_ezra | 95 | DrawBar(0,13,271,1,0x0CFF0C); //линия сверху |
96 | DrawBar(0,285,271,1,0x0CFF0C); |
||
97 | DrawBar(0,299,271,1,0x0CFF0C); //линия снизу |
||
98 | if (find<=90) |
||
99 | { |
||
6368 | cheptil | 100 | WriteText(TOP_TEXT_COL,4,0x80,0x000000,TOP_TEXT); |
101 | WriteText(BOT_LEFT_TEXT_COL,289,0x80,0x000000,BOT_LEFT_TEXT); |
||
102 | WriteText(BOT_RIGHT_TEXT_COL,289,0x80,0x000000,BOT_RIGHT_TEXT); |
||
103 | WriteNumber(BOT_LEFT_NUMBER_COL,289,0x80,0,find); |
||
104 | WriteNumber(BOT_RIGHT_NUMBER_COL,289,0x80,0,90-find+1); |
||
8287 | leency | 105 | DrawNewGameButton(155,300,115,14,0xAFFFAF); |
6368 | cheptil | 106 | WriteText(2,304,0x80,0x000000,"Made by Artemonische,2010"); |
1805 | yogev_ezra | 107 | } |
1827 | yogev_ezra | 108 | IF (find==91) |
1805 | yogev_ezra | 109 | { |
6368 | cheptil | 110 | WriteText(70,100,0x80,0x000000,WIN_TEXT); |
8287 | leency | 111 | DrawNewGameButton(100,110,70,20,0xE4DFE1); |
1805 | yogev_ezra | 112 | } |
113 | } |
||
114 | |||
8287 | leency | 115 | void DrawNewGameButton(dword x,y,width,height,color) |
116 | { |
||
117 | DefineButton(x,y,width,height,BUTTON_NEW_GAME,color); |
||
118 | WriteText(-11*6+width/2+x+1,height/2-3+y,0x80,0,F2_TEXT,0); |
||
119 | } |
||
120 | |||
121 | void new_game() |
||
122 | { |
||
123 | find=10; |
||
124 | initialization(); |
||
125 | draw_window(); |
||
126 | draw_buttons(); |
||
127 | } |
||
128 | |||
1805 | yogev_ezra | 129 | void draw_buttons() |
130 | { |
||
131 | int i,tempi,tempj; |
||
1827 | yogev_ezra | 132 | FOR (i=1;i<=81;i++) |
1805 | yogev_ezra | 133 | { |
1828 | yogev_ezra | 134 | IF (box[i].mark==1) |
1805 | yogev_ezra | 135 | { |
136 | tempi=box[i].y*30-30; |
||
137 | tempj=30*box[i].x-16; |
||
138 | DefineButton(tempi,tempj,29,29,box[i].button_id,0xAFFFAF); |
||
139 | WriteNumber(tempi+11,tempj+11,0x80,0,box[i].text); |
||
140 | } |
||
141 | } |
||
142 | } |
||
143 | |||
144 | void initialization() |
||
145 | { |
||
146 | int i,j,t; |
||
147 | t=0; |
||
1827 | yogev_ezra | 148 | FOR (i=1;i<=9;i++) |
1805 | yogev_ezra | 149 | { |
1827 | yogev_ezra | 150 | FOR (j=1;j<=9;j++) |
1805 | yogev_ezra | 151 | { |
152 | t++; |
||
153 | box[t].x=j; |
||
154 | box[t].y=i; |
||
155 | box[t].mark=1; |
||
156 | box[t].button_id=500+t; |
||
157 | box[t].text=Generate(t); |
||
158 | } |
||
159 | } |
||
160 | } |
||
161 | |||
162 | int Generate(int xx) |
||
163 | { |
||
164 | int temp,k,p; |
||
165 | p=2; |
||
1827 | yogev_ezra | 166 | WHILE (p==2) |
1805 | yogev_ezra | 167 | { |
168 | temp=random(81)+10; |
||
169 | p=1; |
||
1827 | yogev_ezra | 170 | FOR (k=1; k |
1805 | yogev_ezra | 171 | { |
1827 | yogev_ezra | 172 | IF (box[k].text==temp) |
1805 | yogev_ezra | 173 | { |
174 | p=2; |
||
1827 | yogev_ezra | 175 | BREAK; |
1805 | yogev_ezra | 176 | } |
177 | } |
||
178 | } |
||
179 | return temp; |
||
180 | } |
||
181 | stop:=9;j++) |