This commit is contained in:
Daniel Hládek 2021-04-21 15:03:19 +02:00
parent 5cb51ec0e2
commit 1943250c40
2 changed files with 18 additions and 4 deletions

11
main.c
View File

@ -31,6 +31,9 @@ void init_snake(struct event* world, struct state* st){
st->foodx[i] = rand() % w; st->foodx[i] = rand() % w;
st->foody[i] = rand() % h; st->foody[i] = rand() % h;
} }
// Initial game vector
st->sx = 1;
st->sy = 0;
} }
// Step is called in a loop once in interval. // Step is called in a loop once in interval.
@ -70,11 +73,15 @@ int world_event(struct event* w,void* game){
} }
// Called on interval timeout // Called on interval timeout
else if (w->type == EVENT_TIMEOUT){ else if (w->type == EVENT_TIMEOUT){
clear_screen();
// Copy screen size // Copy screen size
st->width = w->width; st->width = w->width;
st->height = w->height; st->height = w->height;
// Change game state // Change game state
int r = step_state(st); int r = step_state(st);
char ms[200];
sprintf(ms,"r %d\n",r);
set_message(ms,9,9);
// Draw snake // Draw snake
struct snake* sn = st->snake; struct snake* sn = st->snake;
while (sn != NULL){ while (sn != NULL){
@ -90,9 +97,7 @@ int world_event(struct event* w,void* game){
// Stop the game // Stop the game
if (r){ if (r){
char message[] = "Koniec"; char message[] = "Koniec";
for (int i = 0; i < 6; i++){ set_message(message,10,10);
set_cell(message[i],10+i,10);
}
} }
} }
return 0; return 0;

11
world.h
View File

@ -104,10 +104,19 @@ void set_color_cell(int character,int x,int y,short front_color,short back_color
*/ */
int start_world(void* (*init_game)(),int (*world_event)(struct event* event,void* game),void (*destroy_game)(void* game)); int start_world(void* (*init_game)(),int (*world_event)(struct event* event,void* game),void (*destroy_game)(void* game));
/**
* Set timeout interval in miliseconds
*/
void game_speed(int value); void game_speed(int value);
/*
* Prints a message in screen on a position x,y
*/
void set_message(const char* message,int x,int y); void set_message(const char* message,int x,int y);
/*
* Clears screen
*/
void clear_screen(); void clear_screen();
#endif #endif