#include <ncurses.h>
#include <unistd.h>
#include <stdio.h>
#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;
}