void play_game(char game_grid[16][16]) { memset(&game_grid[0][0], ' ', 16*16); int r = 8, c = 6; memcpy(&game_grid[r][c], player_name, strlen(player_name)); while(!should_exit) { draw(game_grid); keyboard_move(&r, &c); memset(&game_grid[0][0], ' ', 16*16); memcpy(&game_grid[r][c], player_name, strlen(player_name)); } }
gboolean keyboard_cb (GtkWidget * widget, GdkEventKey * event, gpointer data) { /* FIXME: Diagonal keys. */ switch (event->keyval) { case GDK_Up: case GDK_KP_Up: case GDK_KP_8: keyboard_move (0, -1); break; case GDK_Down: case GDK_KP_Down: case GDK_KP_2: keyboard_move (0, +1); break; case GDK_Right: case GDK_KP_Right: case GDK_KP_6: keyboard_move (+1, 0); break; case GDK_Left: case GDK_KP_Left: case GDK_KP_4: keyboard_move (-1, 0); break; case GDK_space: case GDK_Return: case GDK_KP_Enter: case GDK_KP_0: case GDK_KP_Insert: destroy_balls (); break; } return FALSE; }