kolibrios/programs/games/FindNumbers/trunk/FindNumbers.c--

158 lines
3.0 KiB
Plaintext
Raw Normal View History

//(C) Artemonische, 2010
#pragma option meos
//#include "..\lib\kolibri.h--" //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> KolibriOS API
#include "kolibri.h--"
int find=10;
struct
{
int x;
int y;
int button_id;
int mark;
int text;
}box[81];
void main()
{
int button,tempi,tempj;
randomize();
initialization();
draw_window();
draw_buttons();
loop()
{
switch(WaitEvent())
{
case evButton:
button=GetButtonID();
IF (button==1)
{
ExitProcess();
}
IF (button==582)
{
find=10;
initialization();
draw_window();
draw_buttons();
}
if (button>500) && (button<582) && (box[button-500].text == find)
{
box[button-500].mark=2;
find++;
IF (find==91)
{
draw_window();
}
else
{
DeleteButton(button);
tempi=box[button-500].y*30-30;
tempj=30*box[button-500].x-16;
DrawBar(tempi,tempj,30,30,0xDCFFDC);
DrawBar(70,289,16,8,0xDCFFDC);
DrawBar(252,289,16,8,0xDCFFDC);
WriteNumber(70,289,0x80,0,find);
WriteNumber(252,289,0x80,0,90-find+1);
}
}
BREAK;
case evKey: //<2F><20><EFBFBD><E0AEA8><20><><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
IF (GetKey()==051)
{
find=10;
initialization();
draw_window();
draw_buttons();
}
BREAK;
case evReDraw:
draw_window();
draw_buttons();
break;
}
}
ExitProcess();
}
void draw_window()
{
WindowRedrawStatus(1); //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1AEA2> <20><><EFBFBD><EFBFBD>
DefineAndDrawWindow(300,176,280,340,0x34,0xDCFFDC,0,0,"FindNumbers v1.1"); //<2F><><EFBFBD><20><><EFBFBD><EFBFBD>
DrawBar(0,13,271,1,0x0CFF0C); //<2F><><EFBFBD><EFBFBD><EFBFBD><><E1A2A5><EFBFBD>
DrawBar(0,285,271,1,0x0CFF0C);
DrawBar(0,299,271,1,0x0CFF0C); //<2F><><EFBFBD><EFBFBD><EFBFBD><><E1ADA8>
if (find<=90)
{
WriteText(4,4,0x80,0x000000,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><20><> 10 <20><> 90 <20><> <20><><EFBFBD><EFBFBD>...");
WriteText(4,289,0x80,0x000000,"<22><20><>᫮: ");
WriteText(162,289,0x80,0x000000,"<22><><EFBFBD><E2A0AB><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>: ");
WriteNumber(70,289,0x80,0,find);
WriteNumber(252,289,0x80,0,90-find+1);
DrawFlatButton(155,300,115,14,582,0xAFFFAF,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (F2)");
WriteText(4,304,0x80,0x000000,"Made by Artemonische,2010");
}
IF (find==91)
{
WriteText(70,100,0x80,0x000000,"<22><> <20><><20><><EFBFBD> <20><>᫠! :)");
DrawFlatButton(100,110,70,20,582,0xE4DFE1,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (F2)");
}
WindowRedrawStatus(2); //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1AEA2> <20><><EFBFBD><EFBFBD>
}
void draw_buttons()
{
int i,tempi,tempj;
FOR (i=1;i<=81;i++)
{
if (box[i].mark==1)
{
tempi=box[i].y*30-30;
tempj=30*box[i].x-16;
DefineButton(tempi,tempj,29,29,box[i].button_id,0xAFFFAF);
WriteNumber(tempi+11,tempj+11,0x80,0,box[i].text);
}
}
}
void initialization()
{
int i,j,t;
t=0;
FOR (i=1;i<=9;i++)
{
FOR (j=1;j<=9;j++)
{
t++;
box[t].x=j;
box[t].y=i;
box[t].mark=1;
box[t].button_id=500+t;
box[t].text=Generate(t);
}
}
}
int Generate(int xx)
{
int temp,k,p;
p=2;
WHILE (p==2)
{
temp=random(81)+10;
p=1;
FOR (k=1; k<xx; k++)
{
IF (box[k].text==temp)
{
p=2;
BREAK;
}
}
}
return temp;
}
stop: