Introduction
Introduction Statistics Contact Development Disclaimer Help
Add tamagotchi content. - brcon2024-hackathons - Bitreichcon 2024 Hackathons
git clone git://bitreich.org/brcon2024-hackathons git://enlrupgkhuxnvlhsf6lc3fz…
Log
Files
Refs
Tags
Submodules
---
commit f0deab294f953d30f76cb86f38521a7ebdcdc6b0
parent 0b190cea54fbc97803635f2bf771a2edd6b262e5
Author: Christoph Lohmann <[email protected]>
Date: Thu, 8 Aug 2024 23:08:50 +0200
Add tamagotchi content.
Diffstat:
D mqtt/tamagotchi | 1 -
A mqtt/tamagotchi/LICENSE | 21 +++++++++++++++++++++
A mqtt/tamagotchi/README.md | 31 +++++++++++++++++++++++++++++…
A mqtt/tamagotchi/Tamagotchi.png | 0
A mqtt/tamagotchi/tamagotchi.c | 84 +++++++++++++++++++++++++++++…
A mqtt/tamagotchi/tamagotchi.h | 138 ++++++++++++++++++++++++++++++
6 files changed, 274 insertions(+), 1 deletion(-)
---
diff --git a/mqtt/tamagotchi b/mqtt/tamagotchi
@@ -1 +0,0 @@
-Subproject commit 61808fed51f116f4c1b5ab622a9e3e76738b303b
diff --git a/mqtt/tamagotchi/LICENSE b/mqtt/tamagotchi/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2023 Rui Catarino
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/mqtt/tamagotchi/README.md b/mqtt/tamagotchi/README.md
@@ -0,0 +1,31 @@
+# Tamagotchi
+[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://s…
+
+<p align="center">
+ <img src="https://github.com/ruitcatarino/tamagotchi/blob/master/Tamagotchi.…
+</p>
+
+## Overview
+Tamagotchi is a simple virtual pet program developed in C. It enables users to…
+
+## Installation
+
+### Clone the repository
+```bash
+git clone https://github.com/ruitcatarino/tamagotchi
+cd tamagotchi
+```
+
+### Build from source code and run it
+``` bash
+gcc tamagotchi.c -o tamagotchi -pthread
+./tamagotchi
+```
+
+## Contributing
+
+Feel free to submit a [pull request](https://github.com/ruitcatarino/tamagotch…
+
+## License
+
+This project is open-source and available under the [MIT License](LICENSE). Yo…
diff --git a/mqtt/tamagotchi/Tamagotchi.png b/mqtt/tamagotchi/Tamagotchi.png
Binary files differ.
diff --git a/mqtt/tamagotchi/tamagotchi.c b/mqtt/tamagotchi/tamagotchi.c
@@ -0,0 +1,84 @@
+#include "tamagotchi.h"
+#include <pthread.h>
+#include <unistd.h>
+
+#define SIMULATION_SPEED 5
+
+void *time_thread(void *arg){
+ struct Tamagotchi *tamagotchi = (struct Tamagotchi *)arg;
+
+ while (tamagotchi->alive){
+ sleep(SIMULATION_SPEED);
+
+ tamagotchi->hunger += 3;
+ tamagotchi->happiness -= 3;
+ tamagotchi->age++;
+
+ check_status(tamagotchi);
+ }
+
+ pthread_exit(NULL);
+}
+
+void create(struct Tamagotchi* tamagotchi){
+
+ //tamagotchi_name(tamagotchi);
+
+ strcpy(tamagotchi->name, "pazz0");
+ tamagotchi->age=0;
+ tamagotchi->age_of_death=rand() % 61 + 50;
+ tamagotchi->hunger=0;
+ tamagotchi->happiness=100;
+ tamagotchi->alive=true;
+}
+
+void life(struct Tamagotchi* tamagotchi){
+
+ int choice;
+
+ srand(time(NULL));
+
+ while(tamagotchi->alive){
+
+ scanf("%d", &choice);
+
+ if(tamagotchi->alive == false){
+ break;
+ }
+
+ if (choice == 1){
+ feed(tamagotchi);
+ } else if (choice == 2){
+ play(tamagotchi);
+ } else if (choice == 3){
+ break;
+ } else{
+ printf("I miss you :/ \n");
+ }
+
+ check_status(tamagotchi);
+
+ }
+
+}
+
+int main() {
+
+ struct Tamagotchi tamagotchi;
+
+ create(&tamagotchi);
+
+ tamagotchi_status_and_menu(&tamagotchi);
+
+ pthread_t tid;
+ if (pthread_create(&tid, NULL, time_thread, (void *)&tamagotchi) != 0){
+ perror("Error creating thread");
+ return 1;
+ }
+
+ life(&tamagotchi);
+
+ pthread_join(tid, NULL);
+
+ return 0;
+}
diff --git a/mqtt/tamagotchi/tamagotchi.h b/mqtt/tamagotchi/tamagotchi.h
@@ -0,0 +1,138 @@
+#ifndef TAMAGOTCHI_TAMAGOTCHI_H
+#define TAMAGOTCHI_TAMAGOTCHI_H
+
+#include <stdio.h>
+#include <string.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <time.h>
+
+struct Tamagotchi{
+
+ char name[50];
+ int age;
+ int age_of_death;
+ int hunger;
+ int happiness;
+ bool alive;
+
+};
+
+void tamagotchi_sad(){
+ printf(" .^._.^.\n"
+ " | ; ; |\n"
+ " ( --- )\n"
+ " .' '.\n"
+ " |/ \\|\n"
+ " \\ /-\\ /\n"
+ " V V\n");
+}
+
+void tamagotchi_happy(){
+ printf(" .^._.^.\n"
+ " | . . |\n"
+ " ( \\_/ )\n"
+ " .' '.\n"
+ " |/ \\|\n"
+ " \\ /-\\ /\n"
+ " V V\n");
+}
+
+void clearScreen(){
+ #ifdef _WIN32
+ system("cls");
+ #else
+ system("clear");
+ #endif
+}
+
+void print_menu(){
+ printf("What would you like to do?\n");
+ printf("1. Feed\n");
+ printf("2. Play\n");
+ printf("3. Quit\n");
+ printf("(Any onther number) Do nothing\n");
+}
+
+void tamagotchi_status_and_menu(struct Tamagotchi* tamagotchi){
+
+ if(tamagotchi->hunger > 60 || tamagotchi->happiness <= 25){
+ tamagotchi_sad();
+ }else {
+ tamagotchi_happy();
+ }
+ printf("My name is %s, and I'm %d years old!\n",tamagotchi->name,tamagotch…
+
+ if (tamagotchi->hunger > 60){
+ printf("Hunger: (%d%%)\n\tI am starving :( \n",tamagotchi->hunger);
+ } else if (tamagotchi->hunger > 25){
+ printf("Hunger: (%d%%)\n\tI am hungry \n",tamagotchi->hunger);
+ } else{
+ printf("Hunger: (%d%%)\n\tI am not hungry :)\n",tamagotchi->hunger);
+ }
+
+ if (tamagotchi->happiness > 50){
+ printf("Happiness: (%d%%)\n\tI am happy :) \n",tamagotchi->happiness);
+ } else if (tamagotchi->happiness > 25){
+ printf("Happiness: (%d%%)\n\tI am a okay \n",tamagotchi->happiness);
+ } else{
+ printf("Happiness: (%d%%)\n\tI am sad :( \n",tamagotchi->happiness);
+ }
+
+ print_menu();
+}
+
+void tamagotchi_name(struct Tamagotchi* tamagotchi){
+ char name_var[11];
+
+ printf("Hello, my name is ...\n");
+
+ scanf(" %[^\n]s",name_var);
+
+ while (strlen(name_var)>10 || strlen(name_var)<0){
+ printf("Please choose another name I wont remember that\nMy name must …
+
+ scanf(" %[^\n]s",name_var);
+ }
+
+ strcpy(tamagotchi->name,name_var);
+}
+
+void feed(struct Tamagotchi *tamagotchi){
+ if (tamagotchi->hunger < 5){
+ tamagotchi->hunger=0;
+ } else{
+ tamagotchi->hunger-=5;
+ }
+
+}
+
+void play(struct Tamagotchi *tamagotchi){
+ if (tamagotchi->happiness > 96){
+ tamagotchi->happiness=100;
+ } else{
+ tamagotchi->happiness+=5;
+ }
+}
+
+void check_status(struct Tamagotchi *tamagotchi){
+ clearScreen();
+
+ if (tamagotchi->happiness <= 0){
+ tamagotchi_sad();
+ printf("I died from being unhappy!\n");
+ tamagotchi->alive = false;
+ } else if (tamagotchi->hunger >= 100){
+ tamagotchi_sad();
+ printf("I died from being too hungry!\n");
+ tamagotchi->alive = false;
+ } else if (tamagotchi->age >= tamagotchi->age_of_death){
+ tamagotchi_sad();
+ printf("I died from old age!\n");
+ tamagotchi->alive = false;
+ } else {
+ tamagotchi_status_and_menu(tamagotchi);
+ }
+}
+
+#endif //TAMAGOTCHI_TAMAGOTCHI_H
You are viewing proxied material from bitreich.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.