forked from KolibriOS/kolibrios
Add "Pilot's fridge" game
git-svn-id: svn://kolibrios.org@8071 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
a168dd5ea9
commit
7e922d6561
82
programs/games/fridge/fridge.c
Normal file
82
programs/games/fridge/fridge.c
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
#include <kos32sys.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
EVENTS LOOK LIKE IN C--
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define evReDraw 1
|
||||||
|
#define evKey 2
|
||||||
|
#define evButton 3
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define _size 4
|
||||||
|
|
||||||
|
#define bs 44
|
||||||
|
|
||||||
|
#define FIRSTC 0x137F00
|
||||||
|
#define SECONDC 0x0013FF
|
||||||
|
|
||||||
|
int field[_size][_size] = {
|
||||||
|
{0, 0, 0, 1},
|
||||||
|
{0, 0, 1, 0},
|
||||||
|
{0, 0, 0, 1},
|
||||||
|
{0, 1, 0, 0}
|
||||||
|
};
|
||||||
|
|
||||||
|
char* title = "Fridge v0.1";
|
||||||
|
|
||||||
|
void draw_window(){
|
||||||
|
BeginDraw();
|
||||||
|
DrawWindow(215,100,225, 225,title,0xEEEeee,0x34);
|
||||||
|
for (int j = 10, yy = 0; yy<_size; j+=bs, yy++)
|
||||||
|
for (int i = 10, xx = 0; xx<_size; i+=bs, xx++)
|
||||||
|
{
|
||||||
|
if (field[yy][xx]) define_button(65536 * i + bs, 65536 * j + bs, ((xx+1)*10)+yy+1, FIRSTC);
|
||||||
|
else define_button(65536 * i + bs, 65536 * j + bs, ((xx+1)*10)+yy+1, SECONDC);
|
||||||
|
}
|
||||||
|
EndDraw();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Button() {
|
||||||
|
int id = get_os_button();
|
||||||
|
if (id == 1) exit(0); else
|
||||||
|
{
|
||||||
|
int x = (id/10)-1;
|
||||||
|
int y = (id%10)-1;
|
||||||
|
|
||||||
|
for (int i = 0; i<_size; i++)
|
||||||
|
if (field[i][x]) field[i][x] = 0; else field[i][x] = 1;
|
||||||
|
|
||||||
|
for (int i = 0; i<_size; i++)
|
||||||
|
if (field[y][i]) field[y][i] = 0; else field[y][i] = 1;
|
||||||
|
|
||||||
|
if (field[y][x]) field[y][x] = 0; else field[y][x] = 1;
|
||||||
|
|
||||||
|
draw_window();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
draw_window();
|
||||||
|
while(1)
|
||||||
|
{
|
||||||
|
switch(get_os_event())
|
||||||
|
{
|
||||||
|
case evButton:
|
||||||
|
Button();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case evKey:
|
||||||
|
get_key();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case evReDraw:
|
||||||
|
draw_window();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
BIN
programs/games/fridge/fridge.kex
Normal file
BIN
programs/games/fridge/fridge.kex
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user