le c++ pour les nul
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
le c++ pour les nul

forum d'entraide pour les débutant en c++
 
AccueilAccueil  PortailPortail  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  ConnexionConnexion  
Le Deal du moment : -40%
-40% sur le Pack Gaming Mario PDP Manette filaire + ...
Voir le deal
29.99 €

 

 Problème d'execution

Aller en bas 
AuteurMessage
velapz




Nombre de messages : 1
Date d'inscription : 06/12/2007

Problème d'execution Empty
MessageSujet: Problème d'execution   Problème d'execution EmptyJeu 6 Déc à 10:48

Bonjour.

Voilà, je suis en réseaux et telecom et j'ai un projet du style "pacman à réaliser".
Le programme que j'ai fais pour le moment compile. Mais il plante quand je l'execute. Si quelqu'un avait une solution.

Voici mon programme:


//Jeu basique !

#include <iostream>
#include <iomanip>
#include <myconio.h>


#define UP 72
#define DOWN 80
#define LEFT 75
#define RIGHT 77
#define ESC 27

#define NBLIGNES 20
#define NBCOLONNES 20
#define NBL NBLIGNES
#define NBC NBCOLONNES

#define NORD 'n'
#define SUD 's'
#define EST 'e'
#define OUEST 'o'

#define MUR 3
#define VIDE 0
#define ETOILE 2
#define PIPIL 1

#define CMUR '#'
#define CVIDE '1'
#define CETOILE '*'
#define CPIPIL 'O'




using namespace std;
//--------------------------------------------------------------------------------------------------------------------------------
//PROTOTYPES
//--------------------------------------------------------------------------------------------------------------------------------


void effaceTerrain(int TabTerrain[NBL][NBC]);
void genereEtoile(int TabTerrain[NBL][NBC]);
void generePion(int TabTerrain[NBL][NBC],int & Pl,int & Pc);
void afficheTerrain(int TabTerrain[NBL][NBC]);
void affichePion(int & Pc,int & Pl);
int lectureTouche(int & touche);
int avancePion(int TabTerrain[NBL][NBC],int touche,int & Pc,int & Pl);
int casePointee(int touche,int TabTerrain[NBL][NBC],int Pl,int Pc,int & CasePL,int & CasePC);
void videCase(int TabTerrain[NBL][NBC],int CasePL,int CasePC);





//--------------------------------------------------------------------------------------------------------------------------------
//PROGRAMME PRINCIPAL
//--------------------------------------------------------------------------------------------------------------------------------



int main (void)
{
int TabTerrain[NBL][NBC];
int Pc,Pl;
int Reconnu;
int touche;
int MiamEtoile;
int NBEtoile;
int CasePC,CasePL;



effaceTerrain(TabTerrain); //initialise le tableau a VIDE

genereEtoile(TabTerrain); //Genere coordonnées d'une etoile (aleatoire)

generePion(TabTerrain,Pc,Pl); //Genere les coordonnées du PIPILMAN
getch();
do
{

afficheTerrain(TabTerrain); //Affiche a l'écran le terrain
getch();
do
{

affichePion(Pc,Pl); //Affiche le Pion

getch();
do
{
Reconnu=lectureTouche(touche); //Lecture touche
}
while ( Reconnu!=1);

if(touche !=ESC)
{
MiamEtoile=avancePion(TabTerrain,touche,Pc,Pl); //Avancement du PILPILMAN sous condition
}

}while ( (MiamEtoile!=1 ) && (touche !=ESC) );

NBEtoile=NBEtoile+1;

if ((NBEtoile != 10) && (touche !=ESC))
{
videCase(TabTerrain,CasePC,CasePL);

genereEtoile(TabTerrain);
}

}while ((NBEtoile!=10) && (touche !=ESC));

if (touche !=ESC)
{

cout<<"OKI!";
//fin();
//menuPrincipal();
}








getch ();
return 0;


}


//---------------------------------------------------------------------------------------------------------------------------------
// FONCTIONS
//---------------------------------------------------------------------------------------------------------------------------------





void effaceTerrain(int TabTerrain[NBL][NBC])
{
int c,l;

for (l=0;l<NBL;l++)
{
for (c=0;c<NBC;c++)
{
TabTerrain[l][c]=VIDE;
}
}
}

void genereEtoile(int TabTerrain[NBL][NBC])
{

int n1,n2;


srand (time (NULL) ) ;

do
{

n1=rand();
n1=(n1%NBL);

n2=rand();
n2=(n2%NBC);

if (TabTerrain[n1][n2]==VIDE)
{
TabTerrain[n1][n2]=ETOILE;
}

}while(TabTerrain[n1][n2]!=ETOILE);

}

void generePion(int TabTerrain[NBL][NBC],int & Pl,int & Pc)
{


int n1,n2;



srand (time (NULL) ) ;

do
{

n1=rand();
n1=(n1%NBL);

n2=rand();
n2=(n2%NBC);

if (TabTerrain[n1][n2]==VIDE)
{
TabTerrain[n1][n2]=PIPIL;
}

}while(TabTerrain[n1][n2]!=PIPIL);
Pl=n1;
Pc=n2;
}

void afficheTerrain(int TabTerrain[NBL][NBC])
{
int c,l;
int CASE;

for (l=0;l<NBL;l++)
{
for (c=0;c<NBC;c++)
{
CASE=TabTerrain[l][c];

switch(CASE)
{
case VIDE : cout<<CVIDE;
break;
case ETOILE : cout<<CETOILE;
break;
default: cout<<"?";
}


}
cout<<endl;
}
}

void affichePion(int & Pc,int & Pl)
{

gotoxy(Pc,Pl);
cout<<PIPIL;
}


int lectureTouche(int & touche)
{

int reconnu;
int caractere_etendu=-1;

touche=getch();
if(touche==224 || touche==0)

{
caractere_etendu=touche;
touche=getch();
}

if(caractere_etendu==-1)
{

switch(touche)
{
case UP : reconnu=1;
break;
case DOWN : reconnu=1;
break;
case LEFT : reconnu=1;;
break;
case RIGHT : reconnu=1;
break;
case ESC : reconnu=1;
break;
default : reconnu=0;
}

}

return reconnu;

}

int avancePion(int TabTerrain[NBC][NBL],int touche,int & Pc,int & Pl)
{
int valcase;
int MiamEtoile;
int CasePL,CasePC;

valcase=casePointee(touche,TabTerrain,Pc,Pl,CasePL,CasePC);

switch (valcase)
{
case VIDE: MiamEtoile=0;Pl=CasePL;Pc=CasePC;
break;
case ETOILE: MiamEtoile=1;Pl=CasePL;Pc=CasePC;
break;
default :;

}
return MiamEtoile;
}

int casePointee(int touche,int TabTerrain[NBL][NBC],int Pc,int Pl,int & CasePL,int & CasePC)
{
int valcase;



switch(touche)
{
case UP :

if ((Pl-1)<0)
{
valcase=TabTerrain[NBL][Pc];
CasePL=NBL;
CasePC=Pc;
}
else
{
valcase=TabTerrain[Pl-1][Pc];CasePL=Pl-1;CasePC=Pc;
}

break;

case DOWN :
if ((Pl+1)>NBL)
{
valcase=TabTerrain[0][Pc];
CasePL=0;
CasePC=Pc;
}

else
{
valcase=TabTerrain[Pl+1][Pc];CasePL=Pl+1;CasePC=Pc;
}
break;

case LEFT :
if ((Pc-1)<0)
{
valcase=TabTerrain[Pl][NBC];
CasePL=Pl;
CasePC=NBC;
}
else
{
valcase=TabTerrain[Pl][Pc-1];CasePL=Pl;CasePC=Pc-1;
}


break;

case RIGHT :
if ((Pc+1)>NBC)
{
valcase=TabTerrain[Pl][0];
CasePL=Pl;
CasePC=0;
}

else
{
valcase=TabTerrain[Pl][Pc+1];CasePL=Pl;CasePC=Pc+1;
}
break;

default : ;
}
return valcase;
}

void videCase(int TabTerrain[NBL][NBC],int CasePL,int CasePC)
{

TabTerrain[CasePL][CasePC]=VIDE;
}






Merci d'avance.
Revenir en haut Aller en bas
 
Problème d'execution
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» petit probleme
» probleme de compilation

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
le c++ pour les nul :: programmations :: questions et réponses-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser