Deboguer Marble C++

Fermé
godiop - 31 déc. 2007 à 12:16
 godiop - 31 déc. 2007 à 12:18
Bonjour,
je suis entrain de construire un jeu Marble avec comme matrice.cpp et .h: les données suivantes:
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include "Matrice.h"
//**using namespace std;
//**static void afficherLigne(ostream& os);
//**static void afficherIndLettre(ostream& os);
/**initialisation aleatoire de la matrice**/
int main()
{
enum Matrice {N=6,M=6,K=5};
printf("N %d\n",6);
printf("M %d\n",6);
printf("K %d\n",6);
return 0;
}
Matrice::Matrice(){
for (x=0; x<M; x++)
{
for(y=0; y<N; y++)
{
mat_[x][y]=(rand()%K)+1;//**init aleatoire**//
matreset_[x][y]=(mat_[x][y];//**sauvegarde de la première matrice**//
}
}
}

unsigned int Matrice::LireBille(unsigned int x, unsigned int y)const{
assert(x<M && y<N);
return mat_[x][y];
}
void Matrice::effacerBille(const position& posc){
aasert(mat_[posc.mireAbscisse()][posc.lireOrdonnee()]!=0);
mat_[posc.lireAbscisse()][posc.lireOrdonnee()]=0;
}
void Matrice::gravV(){
for (k=0;k<M;k++)
{
for (i=N-1,j=N-1; i>=0&&j>=0; i--, j--)
{
while(mat_[k][j]==0 && j>0)
{
j--;
}
if(mat_[k][i]!=mat_[k][j])
{
mat_[k][i]=mat_[k][j];
mat_[k][j]=0;
}
}
}
}
void Matrice::gravH(){
for(i=0,j=0;i<M&&j<M;i++,j++){
while(estVideColonne(j)&&j<M-1)
{
j++;
}
if(mat_[i]!=mat_[j])
{
for(y=0; y<N; ++y)
{
mat_[i][y]=mat_[j][y];
mat_[j][y]=0;
}
}
}
}
void Matrice::resetMatrice(){
for (x=0; x<M; ++x)
{
for(y=0; y<N; ++y)
{
mat_[x][y]=matreset_[x][y];
}
}
}
void Matrice::afficherMatrice(ostream& os)const{
os<<" "<<endl;
for (unsigned int y=0; y<N; y++){
/*affichage des lignes*/
afficherLigne(os);
/*affichage des colonnes*/
os<<" "<<N-y;
/**Prise en compte des nombres à n chiffres**/
if (N-y<10)
os<<" ";
else
os<<" ";
/*Affichage des colonnes*/
for(int x=0; x<M;x++)
os<<"|"<<conversionEnLettre(lireBille(x,y))<<" ";
os<<"|"<<endl<<" ";
}
afficherLigne(os);/**affichage de la dernieère ligne**/
afficherIndLettre(os);/**affichage de l'indice horizontal*/
}
bool Matrice::estVideColonne(unsigned int x)const{
unsigned int y;
for(y=0;y<N&& mat_[x][y]==0;++y);
return(y==N);
}
static void afficherLigne(ostream& os){
for (unsigned int i=0;i<Matrice::M;++i)
os<<"+---";
os<< "+"<<endl;
}
static void afficherIndLettre(ostream& os){
os<<" ";
for (unsigned int i=1; i<=Matrice::M; ++i)
os<<conversionEnLettre(i)<<" ";
os<<endl<<endl;
}


le point. h

#ifndef _MATRICE_H_
#define _MATRICE_H_
class Matrice{
private:
unsigned int mat_[M][N];/**tableau de jeu**/
unsigned int matreset_[M][N];/**sauvegarde du tableau**/
bool estVideColonne(unsigned int x)const;
public:
enum Matrice {N=6,M=6,K=5};
Matrice();
unsigned int LireBille(unsigned int x, unsigned int y)const;
void effacerBille(const position& posc);
void gravV();
void gravH();
void resetMatrice();
void afficherMatrice(ostream& os)const;
};
#endif //_Matrice_H


quelqu'un peut il m'aider a le deboguer
A voir également:

1 réponse

Veuillez m'aider SVP à construire et afficher un jeu Marble
Je me suis inspirer de certains codes du net, mais ca marche pas.
0