Simulation de coffre jeux de role
Fermé
polskleforgeron
Messages postés
2
Date d'inscription
lundi 24 juin 2013
Statut
Membre
Dernière intervention
24 juin 2013
-
24 juin 2013 à 15:07
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 25 juin 2013 à 08:22
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 25 juin 2013 à 08:22
A voir également:
- Simulation de coffre jeux de role
- Jeux java itel football - Télécharger - Jeux vidéo
- Zuma jeux - Télécharger - Jeux vidéo
- Jeux de moto: jeu de course 3d - Télécharger - Course
- Jeux java itel 5360 ✓ - Forum Jeux vidéo
- Jeux comme amour sucré - Forum Jeux vidéo
3 réponses
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
24 juin 2013 à 15:42
24 juin 2013 à 15:42
Salut.
Sympa ton projet.
Tu demandes une réponse très concrete, mais tu donnes extremement peu d'élément concret, très peu de code source.
La première chose à savoir, c'est comment tu gère ta liste d'objet (ou on va dire trésor pour ne pas confondre avec objet C++) ? Il te faut une espèce de base de données des trésors.
J'avoue avoir un peu de mal à comprendre ce qu'il se passe exactement;
Sinon, pour le son, si c'est un programme console : oublie. Si tu utilises SDL ou Qt ça devrait être faisable facilement.
Sympa ton projet.
Tu demandes une réponse très concrete, mais tu donnes extremement peu d'élément concret, très peu de code source.
La première chose à savoir, c'est comment tu gère ta liste d'objet (ou on va dire trésor pour ne pas confondre avec objet C++) ? Il te faut une espèce de base de données des trésors.
J'avoue avoir un peu de mal à comprendre ce qu'il se passe exactement;
Sinon, pour le son, si c'est un programme console : oublie. Si tu utilises SDL ou Qt ça devrait être faisable facilement.
polskleforgeron
Messages postés
2
Date d'inscription
lundi 24 juin 2013
Statut
Membre
Dernière intervention
24 juin 2013
24 juin 2013 à 18:10
24 juin 2013 à 18:10
Le son c'est un bonus mais si c'est galère tant pis. Mes trésors ont différentes probabilités de sortir. Les potions et trucs de base en ayant une plus faible que les trésors plus utile ! Prenons un exemple :
Je veux que ça soit rare de trouver une épée magique. Par exemple 2% de chance. Je vais dire à l'ordinateur de tirer un nombre au hasard entre 1 et 100 et je lui dis que si ce nombre est compris entre 0 et 3 exclus il affiche à l'écran "épée magique". Si ce nombre est compris entre 2 et 21 exclus l'ordinateur affiche "rien" etc. Ça me permet donc de donner un certain nombre de chances sur 100 d'obtenir un objet ou rien dans un coffre. Pour représenter un plus gros coffre je tire plus de nombres aléatoires à la base. Pour l'instant je n'ai fait que les coffres de grade 1 (3 slots d'objet). Bien sur cette technique m'oblige à régler "manuellement" les chances de donner un objet pour chaque slot du coffre. J'avais penser à faire un tableau mais la complexité du code nécessaire m'a fait changé d'avis (plus tard peut être, j'ai beaucoup de petit programmes comme ça à faire pour ce jeu, histoire de faciliter le jeu en supprimant les jets de dés répétitifs et chiants).
Voici le code (oui il y a beaucoup de bibliothèque mais j'ai essayer des trucs ^^ et du coups j'ai peur qu'en les enlevant ça bug..) :
Je veux que ça soit rare de trouver une épée magique. Par exemple 2% de chance. Je vais dire à l'ordinateur de tirer un nombre au hasard entre 1 et 100 et je lui dis que si ce nombre est compris entre 0 et 3 exclus il affiche à l'écran "épée magique". Si ce nombre est compris entre 2 et 21 exclus l'ordinateur affiche "rien" etc. Ça me permet donc de donner un certain nombre de chances sur 100 d'obtenir un objet ou rien dans un coffre. Pour représenter un plus gros coffre je tire plus de nombres aléatoires à la base. Pour l'instant je n'ai fait que les coffres de grade 1 (3 slots d'objet). Bien sur cette technique m'oblige à régler "manuellement" les chances de donner un objet pour chaque slot du coffre. J'avais penser à faire un tableau mais la complexité du code nécessaire m'a fait changé d'avis (plus tard peut être, j'ai beaucoup de petit programmes comme ça à faire pour ce jeu, histoire de faciliter le jeu en supprimant les jets de dés répétitifs et chiants).
Voici le code (oui il y a beaucoup de bibliothèque mais j'ai essayer des trucs ^^ et du coups j'ai peur qu'en les enlevant ça bug..) :
#include <iostream> #include <cstdlib> #include <ctime> #include <cstdio> #include <unistd.h> #include <conio.h> #include <dos.h> #include <windows.h> #include <Mmsystem.h> using namespace std; int main() { int fin(3); do { cout << "Veuillez entrer le grade du coffre." << endl; int grade(0); cin >> grade; if (grade == 1) { srand(time(NULL)); int x=0; int A; int B; int C; A = (x + 1)*rand()%100; B = (x + 1)*rand()%100; C = (x + 1)*rand()%100; if (A<=20) { cout << "Rien " << endl; } if (A>20 && A<=40) { cout << "Potion " << endl; } if (A>40 && A<=80) { cout << "Charge toxine " << endl; } if (A>80 && A<=100) { cout << "Batterie " << endl; } if (B<=20) { cout << "Rien " << endl; } if (B>20 && B<=40) { cout << "Potion " << endl; } if (B>40 && B<=80) { cout << "Charge toxine " << endl; } if (B>80 && B<=90) { cout << "Panneau solaire " << endl; } if (B>90 && B<=100) { cout << "Arme de melee " << endl; } if (C<=20) { cout << "Rien " << endl; } if (C>20 && C<=40) { cout << "Habits " << endl; } if (C>40 && C<=80) { cout << "50 I$ "<< endl; } if (C>80 && C<=90) { cout << "Une lettre d'amour " << endl; } if (C>90 && C<=95) { cout << "100 I$ " << endl; } if (C>95 && C<=98) { cout << "500 I$ " << endl; } if (C>98 && C<=100) { cout << "x2 cartouche d'amelioration de competence de base. " << endl; } cout << "Tapes 1 pour sortir du programm, 0 pour ouvrir un autre coffre."<<endl; cin >> fin; } } while(fin!=1); return 0; }
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
25 juin 2013 à 08:22
25 juin 2013 à 08:22
Salut.
Tu ne souhaite rien d'autre qu'un affichage écran si je comprend bien.
D'une manière ou d'une autre il faudra que tu rentres les liens probabilités <-> trésor.
Si je comprend bien, pour un coffre de grade 1, tu as 3 tirages au sort parmis 3 lots de trésors. un coffre de grade2 plus de 3 tirage au sort, mais conserve ton les même lots ?
Ce que je ferai : je créerai une classe "Lot" qui contiendrai les objets et leur probabilité, ainsi qu'une méthode d'affichage. ça simplifierai nettement la lisibilité du code.
Tu ne souhaite rien d'autre qu'un affichage écran si je comprend bien.
D'une manière ou d'une autre il faudra que tu rentres les liens probabilités <-> trésor.
Si je comprend bien, pour un coffre de grade 1, tu as 3 tirages au sort parmis 3 lots de trésors. un coffre de grade2 plus de 3 tirage au sort, mais conserve ton les même lots ?
Ce que je ferai : je créerai une classe "Lot" qui contiendrai les objets et leur probabilité, ainsi qu'une méthode d'affichage. ça simplifierai nettement la lisibilité du code.
class Tresor { std::string def; int proba;// nombre entre 0 et 100 Tresor (std::string definition,int p):def(definition),proba(p){} } class Lot { std::vector<Tresor> tresors; void choix(int alea)// affiche le tresor selon le nombre alea fourni entre 0 et 100 { int sum=0; for(int n=0;n<tresors.size();++n) { if(alea <sum+tresors[n].proba) { cout<<tresors[n].def; break;//le bon tresor est trouvé : on sort } else sum+=tresors[n].proba; } } void ajout_tresor(Tresor&); bool verif_som_proba{ int sum=0; for(int n=0;n<tresors.size();++n) sum+=tresors[n].proba; return sum==100; } }