Ceci est un programme écrit en C qui mime le comportement du personnage de Fabula dans le film les Histoires de Par-Delà les Étoiles.
#include <iostream>
#include <vector>
#include <string>
#include <ctime>
#include <cstdlib>
using namespace std;
// Classe représentant Fabula
class Fabula {
private:
string name;
int inspirationPoints;
int wisdomLevel;
vector<string> chronicle;
public:
// Constructeur
Fabula(string characterName) : name(characterName), inspirationPoints(100), wisdomLevel(1) {}
// Fonction pour écrire une chronique
void writeChronicle(const string& storySegment) {
if (inspirationPoints > 0) {
inspirationPoints -= 10;
chronicle.push_back(storySegment);
cout << name << " a écrit une nouvelle chronique : " << storySegment << endl;
} else {
cout << name << " manque d'inspiration pour écrire une chronique." << endl;
}
}
// Fonction pour méditer et regagner de l'inspiration
void meditate() {
cout << name << " médite pour regagner de l'inspiration..." << endl;
inspirationPoints += 20;
wisdomLevel += 1;
cout << name << " a maintenant " << inspirationPoints << " points d'inspiration et un niveau de sagesse de " << wisdomLevel << "." << endl;
}
// Fonction pour invoquer les Wills et obtenir une prophétie
void invokeWills() {
srand(time(0));
vector<string> prophecies = {
"Le chemin vers le Centre est semé d'embûches.",
"Les Scribes doivent écouter au-delà des étoiles.",
"La plume révèle la vérité cachée."
};
int randomIndex = rand() % prophecies.size();
cout << name << " invoque les Wills : \"" << prophecies[randomIndex] << "\"" << endl;
}
// Fonction pour afficher les chroniques écrites
void displayChronicles() const {
cout << "Chroniques écrites par " << name << ":" << endl;
for (const auto& entry : chronicle) {
cout << "- " << entry << endl;
}
}
// Accesseur pour obtenir le nom de Fabula
string getName() const {
return name;
}
};
// Classe représentant un univers narratif
class NarrativeWorld {
private:
string name;
vector<string> events;
public:
NarrativeWorld(string worldName) : name(worldName) {}
void addEvent(const string& event) {
events.push_back(event);
}
void showEvents() const {
cout << "Événements dans l'univers " << name << ":" << endl;
for (const auto& event : events) {
cout << "- " << event << endl;
}
}
void interactWithFabula(Fabula& fabula) {
cout << "Interaction entre Fabula et l'univers narratif..." << endl;
fabula.writeChronicle("Fabula a découvert un événement mystérieux.");
}
};
// Fonction principale
int main() {
Fabula fabula("Fabula, Scribe des Étoiles");
NarrativeWorld cosmos("Cosmopedia");
// Interactions
fabula.writeChronicle("L'ombre des Wills a traversé le ciel.");
fabula.meditate();
fabula.invokeWills();
cosmos.addEvent("Une étoile inconnue a été découverte.");
cosmos.showEvents();
cosmos.interactWithFabula(fabula);
fabula.displayChronicles();
return 0;
}
Le code est composé de deux classe principales servant à émuler le monde et le Scribe. Le programme en C simule les interactions entre Fabula et les Wills
NarrativeWorld: Un univers narratif qui peut contenir des événements et interagir avec Fabula
L’exécution du code donne l’output suivant:
Fabula: Un scribe des étoiles qui peut écrire des chroniques, méditer pour regagner de l’inspiration, et invoquer les « Wills » pour obtenir des prophéties
=== EXÉCUTION DU PROGRAMME FABULA ===
Fabula, Scribe des Étoiles a écrit une nouvelle chronique : L'ombre des Wills a traversé le ciel.
Fabula, Scribe des Étoiles médite pour regagner de l'inspiration...
Fabula, Scribe des Étoiles a maintenant 110 points d'inspiration et un niveau de sagesse de 2.
Fabula, Scribe des Étoiles invoque les Wills : "La plume révèle la vérité cachée."
Événements dans l'univers Cosmopedia:
- Une étoile inconnue a été découverte.
Interaction entre Fabula et l'univers narratif...
Fabula, Scribe des Étoiles a écrit une nouvelle chronique : Fabula a découvert un événement mystérieux.
Chroniques écrites par Fabula, Scribe des Étoiles:
- L'ombre des Wills a traversé le ciel.
- Fabula a découvert un événement mystérieux.
=== PROGRAMME TERMINÉ ===
Laisser un commentaire