tamagotchi.c - brcon2024-hackathons - Bitreichcon 2024 Hackathons
 (HTM) git clone git://bitreich.org/brcon2024-hackathons git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/brcon2024-hackathons
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) Tags
 (DIR) Submodules
       ---
       tamagotchi.c (1550B)
       ---
            1 #include "tamagotchi.h"
            2 #include <pthread.h>
            3 #include <unistd.h>
            4 
            5 #define SIMULATION_SPEED 5
            6 
            7 void *time_thread(void *arg){
            8     struct Tamagotchi *tamagotchi = (struct Tamagotchi *)arg;
            9 
           10     while (tamagotchi->alive){
           11         sleep(SIMULATION_SPEED);
           12 
           13         tamagotchi->hunger += 3;
           14         tamagotchi->happiness -= 3;
           15         tamagotchi->age++;
           16 
           17         check_status(tamagotchi);
           18     }
           19 
           20     pthread_exit(NULL);
           21 }
           22 
           23 void create(struct Tamagotchi* tamagotchi){
           24 
           25     //tamagotchi_name(tamagotchi);
           26 
           27     strcpy(tamagotchi->name, "pazz0");
           28     tamagotchi->age=0;
           29     tamagotchi->age_of_death=rand() % 61 + 50;
           30     tamagotchi->hunger=0;
           31     tamagotchi->happiness=100;
           32     tamagotchi->alive=true;
           33 }
           34 
           35 void life(struct Tamagotchi* tamagotchi){
           36 
           37     int choice;
           38     
           39     srand(time(NULL));
           40 
           41     while(tamagotchi->alive){
           42 
           43         scanf("%d", &choice);
           44 
           45         if(tamagotchi->alive == false){
           46             break;
           47         }
           48 
           49         if (choice == 1){
           50             feed(tamagotchi);
           51         } else if (choice == 2){
           52             play(tamagotchi);
           53         } else if (choice == 3){
           54             break;
           55         } else{
           56             printf("I miss you :/ \n");
           57         }
           58 
           59         check_status(tamagotchi);
           60 
           61     }
           62 
           63 }
           64 
           65 int main() {
           66 
           67     struct Tamagotchi tamagotchi;
           68 
           69     create(&tamagotchi);
           70 
           71     tamagotchi_status_and_menu(&tamagotchi);
           72 
           73     pthread_t tid;
           74     if (pthread_create(&tid, NULL, time_thread, (void *)&tamagotchi) != 0){
           75         perror("Error creating thread");
           76         return 1;
           77     }
           78 
           79     life(&tamagotchi);
           80 
           81     pthread_join(tid, NULL);
           82 
           83     return 0;
           84 }