triso1007
Messages postés2Date d'inscriptionsamedi 23 octobre 2004StatutMembreDernière intervention23 novembre 2004
-
23 nov. 2004 à 14:26
Gendal67
Messages postés627Date d'inscriptionmercredi 16 juin 2004StatutMembreDernière intervention24 juillet 2011
-
23 nov. 2004 à 18:39
Salut, j'essaie de programmer un serpent, c'est que le début et je ne comprends pas, si j'appuie sur la touche s ou d, le serpent se déplace normalement par contre quand j'appuie sur q ou z, le serpent ne bouge pas!!! Quelqu'un comprends t'il pourquoi??
Merci
PS: Je développe sous devcpp 4.9.9.0
void creapom()
{
int a,b;
srand((int)time(NULL)); //Pour initialiser le random sur l'heure de la machine pour éviter qu'a chaque éxecution les graines soient au meme endroit
a=1+rand()%((T/2)-2);
b=1+rand()%(T-2);
if(terrain[a][b]!='X')
{
terrain[a][b]='@';
}
else creapom();
}
void affiche_terrain()
{
system("CLS");
for(int i=0;i<T/2;i++)
{
for(int j=0;j<T;j++)cout<<terrain[i][j];
cout<<endl;
}
}
class serpent
{
public:
maillon *tete;
char nom[32];
int score;
//Fonction pour ajouter un élément à la tête de la liste chainée
void ajouterdeb(int abs,int ord){
maillon*aux=new maillon;
aux->x=abs;
aux->y=ord;
aux->suiv=tete;
tete=aux;
}
//Fonction pour supprimer le dernier maillon de la liste chainée
void supprfin(){
maillon *aux,*aux2;
aux=tete;
while(aux->suiv!=NULL){
aux2=aux;
//Fonction pour déplacer le serpent
void deplacer_serpent()
{
int x,y,ord,abs;
int c;
c=getch();
recuppos(&ord,&abs); //Fonction qui récupère la position de la tête du serpent dans la liste chainée
x=ord;
y=abs;
switch(c){
case 'z' : x=x-1;
case 's' : x=x+1;
case 'q' : y=y-1;
case 'd' : y=y+1;
}
ajouterdeb(x,y);
touche(x,y);
if(terrain[x][y]!='@')
{
supprfin();
}
else {
creapom();
score++;
}
preaff(); //Supprimer les X, A et B du terrain, mettre les éléments de la liste chainée dans la matrice
affiche_terrain();
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 20047 23 nov. 2004 à 14:50
break; pour quitter le switch et pas descendre dedans
switch(c){
case 'z' : x=x-1;break;
case 's' : x=x+1;break;
case 'q' : y=y-1;break;
case 'd' : y=y+1;break;
default:;
}
mais serieux tu veux pas commencer par apprendre un peu ?
la poo faut quand meme un minimun de reflexion, et utilise la stl au lieu de faire des classes qui fuient
Gendal67
Messages postés627Date d'inscriptionmercredi 16 juin 2004StatutMembreDernière intervention24 juillet 20112 23 nov. 2004 à 18:39
Et oui, comme quoi parfois la programmation apparait ici comme de la magie ^^ nan, lol, sans déconner, ça m'arrive aussi ce genre de trucs! mdr, et apres tu cherches pendant un bon moment si tu penses pas à ces choses simples ^^
Allez, bon courage pour ton prog'....j'espère le voir prochainement sur cppfrance :-)