Simulation course c++
dr971
Messages postés
27
Date d'inscription
Statut
Membre
Dernière intervention
-
yoyo -
yoyo -
Bonjour,
Je souhaite programmer une simulation de course automobile en c++ avec 2 classes (voitures et obstacle).
*De la classe voiture doivent dériver les voitures suivantes :
la F2007 avec : score de vitesse=10, maniabilité=4, accélération=2 et résistance=10
la R27 avec : vitesse_initiale=15, maniabilité=4,accélération=2, résistance=14
la MP4/21 avec: vitesse_initiale=12, maniabilité=3,accélération=3, résistance=9
*De la classe obstacle doivent dériver :
flaque d'huile : la voiture perd 2 point de maniabilité
virage sérré : la voiture perd 3 points de vitesse
pneu crevé: la voiture perd 3 points de résistance et 3 de vitesse
*Le programme doit etre lancé simul doit etre lancé de la facon suivante :
$simul nom_voiture1 nom_voiture2 taille_de_la_piste
(ex: $simul R27 F2007 15)
*Deroulement de la simulation:
1- Chaque voiture à son tour doit recevoir un obstacle tiré aléatoirement
2- L'effet de l'obstacle est déterminé et appliquer à la voiture
3- La vitesse de la voiture augmente de son score d'accélération
4- Une fois que la voiture a accéléré, on ajoute son score de vitesse actuelle à son score de position
pour déterminer sa position dans la course.
5- On réitère les mêmes opérations pour la seconde voiture avec un obstacle tiré aléatoirement. Quand
les 2 voitures ont reçu leur obstacle, on décrémente le score taille_de_la_piste, et on recommence
sauf si l'une des voitures n'est plus capable de continuer (score de résistance inférieur ou égal
0). Si le score taille_de_la_piste devient nul, la course s'arrête et la voiture qui a le plus
grand score de position a gagné la course. Si une voiture est détruite, l'autre voiture gagne. Si
les 2 voitures sont détruites en même temps ou si elles ont le meme score de position, il y a
égalité.
J'aurais également souhaité écrire à chaque tour dans un fichier RESULTS.TXT l'état de la voiture,
l'obstacle qu'elle a reçu et son effet, enfin le nom de la voiture victorieuse.
Pourriez vous m'aider svp? merci d'avance
Je souhaite programmer une simulation de course automobile en c++ avec 2 classes (voitures et obstacle).
*De la classe voiture doivent dériver les voitures suivantes :
la F2007 avec : score de vitesse=10, maniabilité=4, accélération=2 et résistance=10
la R27 avec : vitesse_initiale=15, maniabilité=4,accélération=2, résistance=14
la MP4/21 avec: vitesse_initiale=12, maniabilité=3,accélération=3, résistance=9
*De la classe obstacle doivent dériver :
flaque d'huile : la voiture perd 2 point de maniabilité
virage sérré : la voiture perd 3 points de vitesse
pneu crevé: la voiture perd 3 points de résistance et 3 de vitesse
*Le programme doit etre lancé simul doit etre lancé de la facon suivante :
$simul nom_voiture1 nom_voiture2 taille_de_la_piste
(ex: $simul R27 F2007 15)
*Deroulement de la simulation:
1- Chaque voiture à son tour doit recevoir un obstacle tiré aléatoirement
2- L'effet de l'obstacle est déterminé et appliquer à la voiture
3- La vitesse de la voiture augmente de son score d'accélération
4- Une fois que la voiture a accéléré, on ajoute son score de vitesse actuelle à son score de position
pour déterminer sa position dans la course.
5- On réitère les mêmes opérations pour la seconde voiture avec un obstacle tiré aléatoirement. Quand
les 2 voitures ont reçu leur obstacle, on décrémente le score taille_de_la_piste, et on recommence
sauf si l'une des voitures n'est plus capable de continuer (score de résistance inférieur ou égal
0). Si le score taille_de_la_piste devient nul, la course s'arrête et la voiture qui a le plus
grand score de position a gagné la course. Si une voiture est détruite, l'autre voiture gagne. Si
les 2 voitures sont détruites en même temps ou si elles ont le meme score de position, il y a
égalité.
J'aurais également souhaité écrire à chaque tour dans un fichier RESULTS.TXT l'état de la voiture,
l'obstacle qu'elle a reçu et son effet, enfin le nom de la voiture victorieuse.
Pourriez vous m'aider svp? merci d'avance
A voir également:
- Simulation covering moto
- Course moto - jeux de moto - Télécharger - Course
- Logiciel garage moto - Télécharger - Organisation
- Simulation place accor hotel arena - Forum Loisirs / Divertissements
- Simulateur covering voiture gratuit - Forum Illustrator
- Waptrick java moto - Télécharger - Jeux vidéo
8 réponses
bonsoir
je pense deja que tu devrai creer un objet (et donc une class )voiture (avec 3 constructeurs : 1 pour chaque type de voitures)et des variable pour la maniabilite etc... pas de constante si tu veu pouvoir les modifer ensuite)
tu creer une methode EffetObstacle où selon l'obstacle que tu lui fait passer en parametre , cela modifie les variable maniabilite ( avec "this->" devant chaque varaible creer dans ton constructeur etc (tu peu utiliser un SELON (switch)
tu creer aussi une methode Obstacle qui gera la probabilité de l'obstacle et qui appellera la methode EffetObstacle...
apres tu cree une metode Acceleration avec en parametre le type de la voiture
cette methode ajoutera à la vitesse l'accelaration definie par le type de la voiture et qui te retournera la nouvelle vitesse de la voiture
une methode Position a qui tu passera en parametree la position actuelle et la nouvelle vitesse que ta fournie la methode precedente et cette methode te retourne la nouvelle position
et une pour finir une methode d'ecriture dans le fichier (si tu sais pas faire di le moi je t'expliquerai) qui te retournera vrai ou faux : si le fichier à ete cree ou pas
apres le reste ( appel des fonction creation des objets decrementation tu temps a courir.....)est geré dans la methode principale de ta class
donc voila une bonne partie de ce que tu as à faire
donc je nepaense pas que tu ai besoin de cree une class voiture et une class obstacle
si t'as des qurstion n'hesite pas
je pense deja que tu devrai creer un objet (et donc une class )voiture (avec 3 constructeurs : 1 pour chaque type de voitures)et des variable pour la maniabilite etc... pas de constante si tu veu pouvoir les modifer ensuite)
tu creer une methode EffetObstacle où selon l'obstacle que tu lui fait passer en parametre , cela modifie les variable maniabilite ( avec "this->" devant chaque varaible creer dans ton constructeur etc (tu peu utiliser un SELON (switch)
tu creer aussi une methode Obstacle qui gera la probabilité de l'obstacle et qui appellera la methode EffetObstacle...
apres tu cree une metode Acceleration avec en parametre le type de la voiture
cette methode ajoutera à la vitesse l'accelaration definie par le type de la voiture et qui te retournera la nouvelle vitesse de la voiture
une methode Position a qui tu passera en parametree la position actuelle et la nouvelle vitesse que ta fournie la methode precedente et cette methode te retourne la nouvelle position
et une pour finir une methode d'ecriture dans le fichier (si tu sais pas faire di le moi je t'expliquerai) qui te retournera vrai ou faux : si le fichier à ete cree ou pas
apres le reste ( appel des fonction creation des objets decrementation tu temps a courir.....)est geré dans la methode principale de ta class
donc voila une bonne partie de ce que tu as à faire
donc je nepaense pas que tu ai besoin de cree une class voiture et une class obstacle
si t'as des qurstion n'hesite pas
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
En fait il faut faire
1) Les classes qui te sont demandées (véhicules et obstacles)
2) Une fonction main dans laquelle tu crées les voitures concurrentes, et dans laquelle tu vas faire une boucle permettant d'effectuer chaque tour de la simulation. Cette fonction appelera donc l'ensemble des classes et méthodes que tu auras implémentées.
Bon moi je trouve un peu débile de faire un héritage alors que tes différentes voitures sont en fait des instances particulières de vehicule. Si elle comportaient des attributs de classes supplémentaires pourquoi pas, mais là ce n'est pas le cas.
Sur le même principe tu fais les pièges. Puis ensuite tu fais ta fonction main :
Libre à toi d'intégrer position, vitesse, et accélération dans vehicule mais ça n'a conceptuellement pas vraiment de sens...
Bonne chance
1) Les classes qui te sont demandées (véhicules et obstacles)
2) Une fonction main dans laquelle tu crées les voitures concurrentes, et dans laquelle tu vas faire une boucle permettant d'effectuer chaque tour de la simulation. Cette fonction appelera donc l'ensemble des classes et méthodes que tu auras implémentées.
Bon moi je trouve un peu débile de faire un héritage alors que tes différentes voitures sont en fait des instances particulières de vehicule. Si elle comportaient des attributs de classes supplémentaires pourquoi pas, mais là ce n'est pas le cas.
class vehicule{ protected: unsigned vitesse_initiale; unsigned maniabilite; unsigned acceleration; unsigned resistance; // Le constructeur vehicule_t(unsigned v,unsigned m,unsigned a,unsigned r): vitesse_initiale(v),maniabilite(m),acceleration(a),resistance(r) {} public: vehicule(){} static inline vehicule_t F2007(){ return vehicule_t(10,4,2,10); } // idem pour les autres voitures };
Sur le même principe tu fais les pièges. Puis ensuite tu fais ta fonction main :
#include <vector> int main(){ // Preparer les vehicules const unsigned n = 5; // nb de vehicule std::vector<vehicule_t> vehicules(n); vehicules[1] = vehicule_t::F2007(); //... // Preparer les vitesses position std::vector<unsigned> positionss(0,n); std::vector<unsigned> vitesses(0,n); std::vector<unsigned> accelerations(0,n); for(unsigned tour = 0 ; tour < 100 ; ++ tour){ //choisir un piège // appliquer les modifs sur vitesses et accelerations } return 0; }
Libre à toi d'intégrer position, vitesse, et accélération dans vehicule mais ça n'a conceptuellement pas vraiment de sens...
Bonne chance
En fait dans un élan de fatigue je viens de voir qu'en fait les pièges intervenait directement sur les attributs de vehicule_t. Donc en fait pas besoin de vecteur vitesse, acceleration etc.. il ssont déjà dans les vehicules. Par contre il faut pouvoir les modifier donc il faut créer des accesseurs ou mettre les attributs en public.
Bonne chance
Bonne chance
bon voila ce que je e propose, bon c'est pas parfait y'a surement des erreurs mais ca devrait t'aider un peu (ici je ne marque pas si c'est du oublic prive ou protected...)
voila une premiere approche...
class Voiture { Voiture(string sType) //Constructeur { int nVitesse (0) ; int nAcceleration (0) ; int nManiabilite (0) ; int nResistance (0) ; if(sType == "F2007") { nVitesse =10 ; nAcceleration = 2 ; // etc } if(sType == "R27") { nVitesse =15 ; nAcceleration = 2 ; // etc } //etc pour les autres types de vehicule... ici j'ai utilisé le SI mais tu peux aussi utiliser le SELON } // pour la probabilite des obstacle ca je prefere ne pas de dire plutot que dire des betises (je ne me souvien plu comment on fait) void EffetObstacle( string sObstacle) // ici j'utilise un string mais tu peu utiliser un int et attribuer a chaque obstacle un nombre... { if ( sObstacle == "flaque_d_huile") { this->nManiabilite = this->nManiabilite - 2 ; // etc } // ici c'est comme pour le constructeur tu peu utiliser le SI ou le SELON } };
voila une premiere approche...