#include #include #include #include "tamagotchi.h" #include "ui.h" int main() { // Open a log file for debugging FILE *log_file = fopen("streamii.log", "w"); if (!log_file) { perror("Failed to open log file"); return 1; } // Log start of the game fprintf(log_file, "Streamii game started\n"); fflush(log_file); // Initialize Tamagotchi Tamagotchi streamii; init_tamagotchi(&streamii); fprintf(log_file, "Streamii initialized\n"); fflush(log_file); // Initialize UI init_ui(); fprintf(log_file, "UI initialized\n"); fflush(log_file); // Game loop while (streamii.is_alive) { // Update Tamagotchi stats update_tamagotchi_stats(&streamii); fprintf(log_file, "Updated Streamii stats\n"); fflush(log_file); // Clear and redraw screen clear(); // Draw Tamagotchi draw_tamagotchi(&streamii); // Draw stats draw_stats(&streamii); // Display menu display_menu(); // Refresh screen refresh(); // Get user input int ch = get_user_input(); fprintf(log_file, "User input received: %d\n", ch); fflush(log_file); // Handle user input switch (ch) { case KEY_F(1): // F1 to feed feed_tamagotchi(&streamii); fprintf(log_file, "Fed Streamii\n"); break; case KEY_F(2): // F2 to sleep sleep_tamagotchi(&streamii); fprintf(log_file, "Made Streamii sleep\n"); break; case KEY_F(3): // F3 to play play_with_tamagotchi(&streamii); fprintf(log_file, "Played with Streamii\n"); break; case KEY_F(4): // F4 to clean clean_tamagotchi(&streamii); fprintf(log_file, "Cleaned Streamii\n"); break; case 'q': // Q to quit case 'Q': streamii.is_alive = 0; fprintf(log_file, "User quit the game\n"); break; } // Small delay to control game speed usleep(200000); // 200ms } // Show game over screen show_game_over(); fprintf(log_file, "Game over\n"); // Cleanup cleanup_ui(); fclose(log_file); return 0; }