jaunes
This commit is contained in:
16
HolidayTrip/Fundamentals/reap_and_tear/Makefile
Normal file
16
HolidayTrip/Fundamentals/reap_and_tear/Makefile
Normal file
@@ -0,0 +1,16 @@
|
||||
CC=gcc
|
||||
SRC = villager.c demon.c weapons.c print.c main.c
|
||||
CFLAGS= -Wall -Wextra -Werror
|
||||
LDFLAGS= -fsanitize=address -g -lm
|
||||
|
||||
# Computes the basic main for tests
|
||||
main: ${SRC}
|
||||
gcc $(CFLAGS) $^ -o main -lm
|
||||
|
||||
#Check for memory errors/leaks and to use gdb
|
||||
debug: ${SRC}
|
||||
gcc $(CFLAGS) $^ -o debug $(LDFLAGS)
|
||||
|
||||
clean:
|
||||
$(RM) main debug
|
||||
|
||||
0
HolidayTrip/Fundamentals/reap_and_tear/demon.c
Normal file
0
HolidayTrip/Fundamentals/reap_and_tear/demon.c
Normal file
37
HolidayTrip/Fundamentals/reap_and_tear/demon.h
Normal file
37
HolidayTrip/Fundamentals/reap_and_tear/demon.h
Normal file
@@ -0,0 +1,37 @@
|
||||
#ifndef DEMON_H
|
||||
#define DEMON_H
|
||||
|
||||
#include "villager.h"
|
||||
|
||||
struct villager;
|
||||
|
||||
enum demon_category
|
||||
{
|
||||
PARASITE = 1,
|
||||
THREAT,
|
||||
NIGHTMARE,
|
||||
CALAMITY,
|
||||
TOM_NOOK
|
||||
};
|
||||
|
||||
struct demon {
|
||||
enum demon_category category;
|
||||
char name[50];
|
||||
int damage;
|
||||
enum distance range;
|
||||
int cur_HP;
|
||||
int HP_max;
|
||||
};
|
||||
|
||||
struct demon *init_demon(enum demon_category category, char name[50], int HP_max, int damage, enum distance range);
|
||||
void pp_demon(struct demon *demon);
|
||||
void destroy_demon(struct demon *demon);
|
||||
void basic_attack(struct demon *demon, struct villager *target);
|
||||
void draining_attack(struct demon *demon, struct villager *target);
|
||||
void heavy_attack(struct demon *demon, struct villager *target);
|
||||
void chase(struct demon *demon, struct villager *villager);
|
||||
void update_demon_hp(struct demon *demon, int amount);
|
||||
void demon_action(struct demon *demon, struct villager *villager);
|
||||
|
||||
|
||||
#endif
|
||||
BIN
HolidayTrip/Fundamentals/reap_and_tear/main
Executable file
BIN
HolidayTrip/Fundamentals/reap_and_tear/main
Executable file
Binary file not shown.
14
HolidayTrip/Fundamentals/reap_and_tear/main.c
Normal file
14
HolidayTrip/Fundamentals/reap_and_tear/main.c
Normal file
@@ -0,0 +1,14 @@
|
||||
#include <stdio.h>
|
||||
|
||||
#include "demon.h"
|
||||
#include "villager.h"
|
||||
#include "weapons.h"
|
||||
|
||||
int main()
|
||||
{
|
||||
char gun_name[50] = "BFG";
|
||||
struct gun *gun = init_gun(gun_name, 50, FAR, 16);
|
||||
|
||||
printf("Gun name: %s\nDamage: %d\nRange: %d\nMagazine: %d/%d\n", gun->name, gun->damage, gun->range, gun->current_magazine, gun->magazine_size);
|
||||
|
||||
}
|
||||
0
HolidayTrip/Fundamentals/reap_and_tear/print.c
Normal file
0
HolidayTrip/Fundamentals/reap_and_tear/print.c
Normal file
0
HolidayTrip/Fundamentals/reap_and_tear/villager.c
Normal file
0
HolidayTrip/Fundamentals/reap_and_tear/villager.c
Normal file
28
HolidayTrip/Fundamentals/reap_and_tear/villager.h
Normal file
28
HolidayTrip/Fundamentals/reap_and_tear/villager.h
Normal file
@@ -0,0 +1,28 @@
|
||||
#ifndef VILLAGER_H
|
||||
#define VILLAGER_H
|
||||
|
||||
#include "weapons.h"
|
||||
struct demon;
|
||||
|
||||
struct villager{
|
||||
char name[50];
|
||||
int cur_HP;
|
||||
int HP_max;
|
||||
// struct gun;
|
||||
int gun_mastery;
|
||||
int medicines;
|
||||
enum distance distance;
|
||||
};
|
||||
|
||||
struct villager *init_villager(char name[50], int HP_max, struct gun *gun, int gun_mastery);
|
||||
void pp_villager(struct villager *villager);
|
||||
void destroy_villager(struct villager *villager);
|
||||
void update_villager_hp(struct villager *villager, int amount);
|
||||
void shoot(struct villager *villager, struct demon *demon);
|
||||
void heal(struct villager *villager);
|
||||
enum distance walk(struct villager *villager, int direction);
|
||||
int prepare_medicine(struct villager *villager);
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
17
HolidayTrip/Fundamentals/reap_and_tear/weapons.c
Normal file
17
HolidayTrip/Fundamentals/reap_and_tear/weapons.c
Normal file
@@ -0,0 +1,17 @@
|
||||
#include "weapons.h"
|
||||
#include <stddef.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
struct gun *init_gun(char name[50], int damage, enum distance range, int magazine_size){
|
||||
|
||||
struct gun *rslt = malloc(sizeof( struct gun));
|
||||
//mettre protection
|
||||
|
||||
//init des var du struct
|
||||
strcpy(rslt->name, name);
|
||||
rslt->damage = damage;
|
||||
rslt->range = range;
|
||||
rslt->magazine_size = magazine_size;
|
||||
|
||||
return rslt;
|
||||
}
|
||||
24
HolidayTrip/Fundamentals/reap_and_tear/weapons.h
Normal file
24
HolidayTrip/Fundamentals/reap_and_tear/weapons.h
Normal file
@@ -0,0 +1,24 @@
|
||||
#ifndef WEAPONS_H
|
||||
#define WEAPONS_H
|
||||
|
||||
enum distance
|
||||
{
|
||||
CLOSE,
|
||||
NEAR,
|
||||
FAR,
|
||||
};
|
||||
|
||||
struct gun {
|
||||
char name[50];
|
||||
int damage;
|
||||
enum distance range;
|
||||
int magazine_size;
|
||||
int current_magazine;
|
||||
};
|
||||
|
||||
struct gun *init_gun(char name[50], int damage, enum distance range, int magazine_size);
|
||||
void reload(struct gun *gun);
|
||||
void destroy_gun(struct gun *gun);
|
||||
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user