kolibrios-gitea/programs/games/FindNumbers/trunk/FindNumbers.c--
cheptil b51837d38b Add English localization and configs for RUS or ENG build
git-svn-id: svn://kolibrios.org@6361 a494cfbc-eb01-0410-851d-a64ba20cac60
2016-03-22 12:29:16 +00:00

186 lines
3.9 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//(C) Artemonische, 2010
#pragma option meos
//#include "..\lib\kolibri.h--" //¯®¤ª«îç ¥¬ ¡¨¡«¨®â¥ªã á KolibriOS API
#include "kolibri.h--"
#ifndef AUTOBUILD
#include "lang.h--"
#endif
#ifdef LANG_RUS
?define TOP_TEXT_COL 4
?define TOP_TEXT "‘®¡¥à¨â¥ ¢á¥ ç¨á«  ®â 10 ¤® 90 ¯® ¯®à浪ã..."
?define BOT_LEFT_TEXT_COL 4
?define BOT_LEFT_TEXT "ˆé¥¬ ç¨á«®: "
?define BOT_RIGHT_TEXT_COL 162
?define BOT_RIGHT_TEXT "Žáâ «®áì ­ ©â¨: "
?define BOT_LEFT_NUMBER_COL 70
?define BOT_RIGHT_NUMBER_COL 252
?define F2_TEXT "‡ ­®¢® (F2)"
?define WIN_TEXT "‚ë ­ è«¨ ¢á¥ ç¨á« ! :)"
#else
?define TOP_TEXT_COL 2
?define TOP_TEXT "Collect all numbers from 10 to 90 in order..."
?define BOT_LEFT_TEXT_COL 2
?define BOT_LEFT_TEXT "Looking for number: "
?define BOT_RIGHT_TEXT_COL 156
?define BOT_RIGHT_TEXT "Remains to find: "
?define BOT_LEFT_NUMBER_COL 116
?define BOT_RIGHT_NUMBER_COL 252
?define F2_TEXT "Anew (F2)"
?define WIN_TEXT "You have found all numbers! :)"
#endif
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: //¥á«¨ ¯à®¨§®è«® ­ ¦ â¨¥ ª« ¢¨è¨ ­  ª« ¢¨ âãà¥
IF (GetKey()==051)
{
find=10;
initialization();
draw_window();
draw_buttons();
}
BREAK;
case evReDraw:
draw_window();
draw_buttons();
break;
}
}
ExitProcess();
}
void draw_window()
{
WindowRedrawStatus(1); //­ ç «® ¯¥à¥à¨á®¢ª¨ ®ª­ 
DefineAndDrawWindow(300,176,280,340,0x34,0xDCFFDC,0,0,"FindNumbers v1.1"); //à¨á㥬 ®ª­®
DrawBar(0,13,271,1,0x0CFF0C); //«¨­¨ï ᢥàåã
DrawBar(0,285,271,1,0x0CFF0C);
DrawBar(0,299,271,1,0x0CFF0C); //«¨­¨ï á­¨§ã
if (find<=90)
{
WriteText(TOP_TEXT_COL,4,0x80,0x000000,TOP_TEXT);
WriteText(BOT_LEFT_TEXT_COL,289,0x80,0x000000,BOT_LEFT_TEXT);
WriteText(BOT_RIGHT_TEXT_COL,289,0x80,0x000000,BOT_RIGHT_TEXT);
WriteNumber(BOT_LEFT_NUMBER_COL,289,0x80,0,find);
WriteNumber(BOT_RIGHT_NUMBER_COL,289,0x80,0,90-find+1);
DrawFlatButton(155,300,115,14,582,0xAFFFAF,F2_TEXT);
WriteText(2,304,0x80,0x000000,"Made by Artemonische,2010");
}
IF (find==91)
{
WriteText(70,100,0x80,0x000000,WIN_TEXT);
DrawFlatButton(100,110,70,20,582,0xE4DFE1,F2_TEXT);
}
WindowRedrawStatus(2); //ª®­¥æ ¯¥à¥à¨á®¢ª¨ ®ª­ 
}
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: