Un systรจme de combat RPG complet dรฉveloppรฉ en C avec interface en ligne de commande, featuring un systรจme d'initiative avancรฉ, un systรจme d'armure rรฉaliste et une architecture modulaire.
- โจ Fonctionnalitรฉs
- ๐ ๏ธ Installation
- ๐ฏ Utilisation
- โ๏ธ Systรจme de combat
- ๐ Systรจme de stats
- ๐ฎ Commandes disponibles
- ๐๏ธ Architecture
- ๐งช Mode debug
- ๐ Structure du projet
- ๐ค Contribution
- Initiative basรฉe sur les niveaux : Diffรฉrence de ยฑ5 niveaux = avantage automatique
- Tirage pondรฉrรฉ par l'รฉnergie : Plus d'รฉnergie = plus de chances de jouer en premier
- Ordre d'affichage intelligent : Les PV sont affichรฉs au bon moment selon l'initiative
- Systรจme d'armure rรฉaliste : Rรฉduction directe des dรฉgรขts avec minimum de 1 dรฉgรขt
- Pรฉnรฉtration d'armure : Support pour contourner les dรฉfenses
- Dรฉgรขts physiques et magiques : Systรจmes sรฉparรฉs avec leurs propres armures
- Vampirisme et rรฉgรฉnรฉration : Mรฉcaniques de survie avancรฉes
- Scaling par niveau : Progression รฉquilibrรฉe des statistiques
- Barres de vie dynamiques : Unicode blocks avec couleurs progressives
- Headers ASCII professionnels : Affichage de combat immersif
- Systรจme de prompts adaptatif : Diffรฉrents styles selon le contexte
- Messages dรฉtaillรฉs : Calculs de dรฉgรขts transparents
- Systรจme de commandes modulaire : Pointeurs de fonction pour extensibilitรฉ
- Gestion mรฉmoire sรฉcurisรฉe : Protection contre les buffer overflows
- Parser robuste : Chargement d'ennemis depuis fichiers avec validation
- Code optimisรฉ : Performance et maintenabilitรฉ
# Ubuntu/Debian
sudo apt-get install build-essential libreadline-dev
# Fedora/CentOS
sudo dnf install gcc readline-devel
# Arch Linux
sudo pacman -S gcc readlinegit clone https://github.com/xHemera/stat-system.git
cd stat-system
makemake clean # Supprime les fichiers objets
make fclean # Nettoyage complet
make re # Recompilation complรจte./stat-system- Entrez votre nom (lettres uniquement, max 19 caractรจres)
- Explorez les commandes avec
help - Activez le debug avec
/debugpour plus d'options - Commencez ร combattre avec
fight
Entrez un nom de joueur :
> Aragorn
Bienvenue Aragorn!
Simple RPG combat management
> help
> /debug
[DEBUG] Mode debug activรฉ.
> stats
> enemies
> fight goblin
Le systรจme d'initiative dรฉtermine qui attaque en premier :
Diffรฉrence de niveau = Niveau joueur - Niveau ennemi
Si diffรฉrence โค -5 โ Ennemi a l'initiative automatiquement
Si diffรฉrence โฅ +5 โ Joueur a l'initiative automatiquement
Sinon โ Tirage alรฉatoire pondรฉrรฉ par l'รฉnergie
Dรฉgรขts physiques = max(1, Attaque physique - Armure)
Dรฉgรขts magiques = max(1, Attaque magique - Armure magique)
Avec pรฉnรฉtration :
Armure effective = max(0, Armure - Pรฉnรฉtration)
๐ฒ Test d'initiative:
Aragorn (Niveau 5) vs Orc (Niveau 3)
Diffรฉrence de niveau: +2
Calcul d'initiative basรฉ sur l'รฉnergie...
Aragorn รฉnergie: 20
Orc รฉnergie: 20
Aragorn gagne l'initiative! (tirage: 15/40)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ COMBAT - Tour 1 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Aragorn (Niveau 5)
โค๏ธ 500/500 [โโโโโโโโโโโโโโโโโโโโ] 100%
Orc (Niveau 3)
โค๏ธ 360/360 [โโโโโโโโโโโโโโโโโโโโ] 100%
๐ฏ Tour de Aragorn:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Actions disponibles โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ก๏ธ attack - Attaquer l'ennemi
๐ run - Fuir le combat
| Stat | Description | Scaling |
|---|---|---|
| Health | Points de vie | ร Niveau |
| Physical Dmg | Dรฉgรขts physiques | ร Niveau |
| Armor | Rรฉduction dรฉgรขts physiques | ร Niveau |
| Magical Dmg | Dรฉgรขts magiques | ร Niveau |
| Magic Armor | Rรฉduction dรฉgรขts magiques | ร Niveau |
| Energy | Ressource pour actions spรฉciales | + Base |
| Vampirism | Vol de vie en % | ร Niveau |
Stat totale = (Stat de base ร Niveau) + Bonus d'รฉquipement
รnergie = Stat de base + Bonus d'รฉquipement| Commande | Description |
|---|---|
help |
Affiche l'aide complรจte |
stats |
Affiche vos statistiques |
fight [cible] |
Combat contre un ennemi |
enemies |
Liste tous les ennemis |
exit / quit |
Quitte le jeu |
fight # Menu interactif
fight goblin # Combat par nom
fight 1 # Combat par index
fight random # Ennemi alรฉatoire| Commande | Description |
|---|---|
levelup / lvl |
Monte d'un niveau |
add_max_hp |
+20 PV max (en combat) |
| Commande | Description |
|---|---|
/debug |
Active/dรฉsactive le mode debug |
src/
โโโ core/ # Logique principale
โ โโโ commands.c # Systรจme de commandes
โ โโโ loop.c # Boucle principale
โโโ entities/ # Gestion des entitรฉs
โ โโโ player.c # Joueur et stats
โ โโโ enemy.c # Ennemis et chargement
โโโ fight/ # Systรจme de combat
โ โโโ fight.c # Logique de combat
โ โโโ fight_utils.c # Utilitaires combat
โโโ utils/ # Fonctions utilitaires
โโโ utils.c # Fonctions gรฉnรฉrales
โโโ debug.c # Mode debug
โโโ print_stats.c # Affichage stats
typedef struct s_stats {
float health, physical_dmg, armor;
float magical_dmg, magic_armor;
float vampirism, heal_shield_power;
int energy, energy_regen;
} t_stats;
typedef struct s_player {
char name[MAX_NAME_LENGTH];
int level;
t_stats base, bonus, total;
} t_player;
typedef struct s_command {
char *name;
int (*handler)(t_player*, t_enemy*, int, char*);
int admin_only;
char *description;
} t_command;Activez le mode debug avec /debug pour accรฉder ร :
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ SUPER STATS de Aragorn (Niveau 5) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Health โ Total: 500.0 โ Base: 500.0 โ Bonus: 0.0 โ
โ Physical Dmg โ Total: 50.0 โ Base: 50.0 โ Bonus: 0.0 โ
โ Armor โ Total: 50.0 โ Base: 50.0 โ Bonus: 0.0 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
- levelup : Montรฉe de niveau instantanรฉe
- add_max_hp : Boost de PV en plein combat
- Dรฉtails combat : Calculs d'initiative dรฉtaillรฉs
stat-system/
โโโ README.md
โโโ Makefile
โโโ .gitignore
โโโ include/
โ โโโ hemera.h # Header principal
โโโ src/
โ โโโ core/ # Cลur du systรจme
โ โโโ entities/ # Gestion joueur/ennemis
โ โโโ fight/ # Systรจme de combat
โ โโโ utils/ # Utilitaires
โโโ data/
โ โโโ enemies # Base de donnรฉes ennemis
โโโ obj/ # Fichiers objets (gรฉnรฉrรฉ)
Le fichier data/enemies utilise le format pipe-separated :
# Nom|Niveau|HP|HealPwr|Vamp|MagDmg|MagArmor|MagPen|PhysDmg|Armor|ArmorPen|Energy|EnergyRegen|XP|Gold
Goblin|1|50|1|0|0|5|0|8|4|0|10|1|10|5
Orc|3|120|1|0|5|15|0|15|8|0|20|2|50|25
float calculate_physical_damage(float attack, float armor, float armor_pen) {
float effective_armor = armor - armor_pen;
if (effective_armor < 0) effective_armor = 0;
float damage = attack - effective_armor;
return damage > 1.0f ? damage : 1.0f; // Minimum 1 dรฉgรขt
}- Ctrl+C : Affiche un message mais ne quitte pas
- Ctrl+D : Sortie propre avec nettoyage mรฉmoire
- Gestion mรฉmoire : Protection buffer overflow avec
strncpy - Performance : Boucles optimisรฉes et structures efficaces
- Validation : Parsing robuste avec nettoyage des donnรฉes
- Extensibilitรฉ : Architecture modulaire pour ajouts futurs
- Fork le repository
- Crรฉez une branche feature (
git checkout -b feature/amazing-feature) - Committez vos changements (
git commit -m 'Add amazing feature') - Push vers la branche (
git push origin feature/amazing-feature) - Ouvrez une Pull Request
- Style : Code en anglais, commentaires en franรงais
- Naming :
snake_casepour fonctions,t_pour types - Sรฉcuritรฉ : Toujours valider les entrรฉes utilisateur
- Memory : Libรฉrer toute mรฉmoire allouรฉe
- Systรจme d'expรฉrience et de progression
- รquipements et inventaire
- Sauvegarde/chargement de parties
- Plus de types d'attaques spรฉciales
- Interface graphique simple
Dรฉveloppรฉ avec โค๏ธ en C
Un projet รฉducatif dรฉmontrant les concepts avancรฉs de programmation systรจme, la gestion mรฉmoire et l'architecture logicielle.