diff --git a/programs/games/fridge/fridge.c b/programs/games/fridge/fridge.c new file mode 100644 index 0000000000..7dd82699f2 --- /dev/null +++ b/programs/games/fridge/fridge.c @@ -0,0 +1,82 @@ +#include +#include +#include + +/* + 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; + } + } +} diff --git a/programs/games/fridge/fridge.kex b/programs/games/fridge/fridge.kex new file mode 100644 index 0000000000..45277ba9f4 Binary files /dev/null and b/programs/games/fridge/fridge.kex differ