Salut
Je continue mes questions sur le même topic.
Bon pour mon petit pacman j'ai biensur été confronté au problème du kbhit() et j'ai donc utilisé la méthode de Taz qui fonctionne très bien .
Le problème c'est qu'avec la boucle while le programme bouffe méchament les ressources CPU, donc je me suis dis : tu va mettre un ptit sleep()! enfin la j'utilise un napms(), c'est mieux mais pas encore ca... puis en fonction du temps que je met ca ralentit l'affichage (logique).
Avez vous une idée/astuce pour améliorer le schmilblick ?
voila ma boucle while qui chope les entrées clavier :
Code :
- while(key!='p')
- {
- key = getcarac();
- switch(key)
- {
- case 'z' :
- move_UP(tab, MAX, &x_P, &y_P);
- afficher_tab(tab, MAX);
- break;
- case 's' :
- move_DOWN(tab, MAX, &x_P, &y_P);
- afficher_tab(tab, MAX);
- break;
- case 'd' :
- move_RIGHT(tab, MAX, &x_P, &y_P);
- afficher_tab(tab, MAX);
- break;
- case 'q' :
- move_LEFT(tab, MAX, &x_P, &y_P);
- afficher_tab(tab, MAX);
- break;
- default :
- break;
- }
- napms(5);
- }
|
Je précise : linux/gcc/pacman sous shell
/*------------------------ [RESOLU] ------------------------*/
J'ai commencé un genre de ptit pacman pour apprendre à bien maitriser les tableaux 2D mais voila lors de l'allocation de mon tableau j'ai une erreur de segmentation (je suis sous linux) alors que le même code fonctionne très bien sous win
vla l'code de mon allocation :
Code :
- int** allouer_tab(int taille)
- {
- int** tab;
- int i;
- tab = (int**) malloc (taille*sizeof(int*));
- if(tab == NULL) {printw("erreur1\n" );return NULL;}
- for(i=0;i<taille;i++)
- tab[i] = (int*) malloc (taille*sizeof(int));
- if(tab[i] == NULL) {printw("erreur2\n" );return NULL;}
- return tab;
- }
|
et je l'apelle comme ca :
Code :
- int** tab;
- tab = allouer_tab(MAX);
|
Il compile bien mais lorsque j'execute il me dit "erreur2" et je vois pas ou est mon erreur sachant que ca fonctionnait bien sous win
Merci d'avance
/*------------------------ [/RESOLU] ------------------------*/