System call sys_getchar () was improved; stdin is correspond with 0. fd and stdout...
[ZeXOS.git] / apps / invaders / main.c
blobfa1d35d855270b241805992ff01807420a887e18
1 /*
2 * ZeX/OS
3 * Copyright (C) 2007 Tomas 'ZeXx86' Jedrzejek (zexx86@gmail.com)
4 * Copyright (C) 2008 Tomas 'ZeXx86' Jedrzejek (zexx86@gmail.com)
6 * This program is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
21 #include <stdio.h>
22 #include <string.h>
23 #include <stdlib.h>
25 #define ESC 1
26 #define ARROWLEFT 75
27 #define ARROWRIGHT 77
28 #define ARROWUP 72
29 #define ARROWDOWN 80
31 typedef struct {
32 unsigned char x, y;
33 unsigned char znak;
34 unsigned char live;
35 unsigned char zmena;
36 } CLOVEK;
38 CLOVEK mujhrac;
40 #define PLOCHA_X 80
41 #define PLOCHA_Y 25
43 unsigned key_pressed (int keycode)
45 int scancode = getkey ();
47 if (scancode == keycode)
48 return 1;
50 if (scancode == keycode+128)
51 return 2;
52 else
53 return 0;
56 int main (int argc, char **argv)
58 cls ();
60 printf ("This program is marked as pre-alpha !\n");
62 mujhrac.x = 0;
63 mujhrac.y = 1;
64 mujhrac.znak = '#';
65 mujhrac.zmena = 1;
67 while (1) {
68 int scancode = getkey ();
70 if (scancode == ESC)
71 break;
73 if (scancode == ARROWLEFT && mujhrac.x > 0) {
74 gotoxy (mujhrac.x, mujhrac.y);
75 putch (' ');
76 mujhrac.x --;
77 mujhrac.zmena = 1;
79 if (scancode == ARROWRIGHT && mujhrac.x < PLOCHA_X-1) {
80 gotoxy (mujhrac.x, mujhrac.y);
81 putch (' ');
82 mujhrac.x ++;
83 mujhrac.zmena = 1;
85 if (scancode == ARROWUP && mujhrac.y > 0) {
86 gotoxy (mujhrac.x, mujhrac.y);
87 putch (' ');
88 mujhrac.y --;
89 mujhrac.zmena = 1;
91 if (scancode == ARROWDOWN && mujhrac.y < PLOCHA_Y) {
92 gotoxy (mujhrac.x, mujhrac.y);
93 putch (' ');
94 mujhrac.y ++;
95 mujhrac.zmena = 1;
98 if (mujhrac.zmena) {
99 gotoxy (mujhrac.x, mujhrac.y);
100 putch (mujhrac.znak);
101 mujhrac.zmena = 0;
105 printf ("\nInvaders are coming !\n");
107 return 0;