aide code c++ jeux pacman - C++ - Programmation
Marsh Posté le 26-05-2013 à 09:03:34
srand(time(NULL));
tu n'as besoin de le faire qu'une seul fois par programme, pas a chaque appel de fonction.
int rand (void);
NON. c'est #include<stdlib.h> qu'il faut mettre en debut de fichier
Marsh Posté le 26-05-2013 à 09:11:09
Joel F a écrit : srand(time(NULL)); |
C'est même potentiellement contre-productif : si la fonction est appelée plusieurs durant la même seconde, les tirages seront identiques.
Marsh Posté le 26-05-2013 à 17:15:00
Joel F a écrit : srand(time(NULL)); |
C'est pas plutôt cstdlib en C++ ? (Enfin, autant il le fait en C, là c'est même carrément du C, mais il a posté dans la cat C++ )
Marsh Posté le 26-05-2013 à 19:21:57
en c++, soit cstdlib pour rand spoit on utilis eun vrai PRNG via boost ou std::
Marsh Posté le 02-06-2013 à 23:09:11
Bonsoir,
merci pour vos réponses et dsl de ne pas avoir pu répondre plus tôt
étant débutant en C et C++, mon programme ayant été commencé en C++ ressemble effectivement plus à du C
j'ai déjà mis en début de programme #include<cstdlib> donc ce n'est pas le soucis
et il n'y a pas répétition de la fonction et donc du même tirage car le fantôme change de direction à chaque noeud (sauf quand c'est un mur)
Marsh Posté le 25-05-2013 à 23:55:20
Bonsoir,
j'ai quelques petits soucis sur mon pacman, et un peu d'aide sera la bienvenue^^
J'ai un niveau basique, j'ai donc quelques pb à construire le code source de ce programme qui est assez complexe:
1)mon 1er pb est la direction du fantôme: il part dans toutes les directions, mais dès que le chiffre tiré au hasard indique la direction d'un mur, il reste bloqué et refuse de tirer au hasard un autre chiffre afin de changer de direction. De plus, j'aimerais qu'il ne reparte pas dans la direction d'où il vient, afin de ne pas rester dans les mêmes zones.
code:
/******************************************************************************************************************
choix d'une direction aleatoire
******************************************************************************************************************/
void direction_choisi()
{
int poursuivre=1;
int nombre_aleatoire;
{
int rand (void);
int nombre_aleatoire = 0;
srand(time(NULL)); // initialisation de rand //S
}
while (poursuivre==1)
{
nombre_aleatoire=rand()%4;
if (tab_carrefour[FANTOME_R_etat.noeud_origine].tab_directions[nombre_aleatoire]!=0);
{
poursuivre=0;
FANTOME_R_etat.direction= nombre_aleatoire;
}
//while (poursuivre==0);
{
nombre_aleatoire=rand()%4;
//FANTOME_R_etat.direction= nombre_aleatoire;
}
}
}
2) le pb n°2 est le déplacement à travers le tunnel de gauche à droite: je n'ai actuellement aucune idée de comment faire pour que pacman et le fantôme passe par le tunnel instantanément car pour le moment ils traversent toute la carte jusqu'au point d'arrivée en traversant tous les murs. Les déplacements se passent entre noeud, un noeud représentant un croisement (ils sont numérotés). Il faut qu'ils puissent passer d'un noeud x à un noeud y instantanément sans qu'il y est de trace de leurs passages (disparitions de murs...)
J'avais pensé à ne pas utiliser l'image du fantôme et du pacman lors du passage afin que la carte reste intacte, mais je ne sais pas comment le coder.
3)Le dernier pb est la fin de partie: je ne sais pas comment coder la mort du pacman lors du contact entre le pacman et le fantôme.
Merci d'avance, toute trace de solution me sera utile.
Bonne soirée