begin process at 2012 05 28 09:06:44
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Linux

 > 

Autre

 > 

codage en C sous Linux


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

codage en C sous Linux

mardi 6 avril 2010 à 09:41:14 | codage en C sous Linux

fredbubu65

Membre Club



Frédéric.
Bonjour, je dois faire un programme sous Linux en C avec la bibliothèque Ncurses. Ca c'est pas trop le problème.
Le code est à priori correct, mais je n'arrive pas lors de l'exécution de programme à afficher le labyrinthe. La fenêtre qui s'affiche est vide. Dans le programme, il y a un lien qui pointe sur un fichier texte, avec un style de labyrinthe, mais à priori ca ne fonctionne pas. Je code avec Scite sous Linux!!! Pouriez vous m'aider, ou m'expliquer d'où vient le problème. Pouvez vous également m'aider pour le commenter. Merci beaucoup. Je suis assez pressé, dont si quelqu'un de compétant peut m'aider. Ne poster pas des messages bidons, cela n'aide personne, si vous savez pas, chut !!! Merci.

Le code est présenté ci-dessous:

#include <ncurses.h>
#include <stdlib.h>
#include <stdio.h>


void ncurses();
void mat();
void deplacer();

void ncurses(){

initscr();
noecho(); /*A commenter*/
start_color();
init_pair(1, COLOR_RED, COLOR_RED);/*A commenter */
init_pair(2, COLOR_RED, COLOR_BLUE);
init_pair(3, COLOR_RED, COLOR_WHITE);
init_pair(4, COLOR_RED, COLOR_GREEN);

}

void mat(){

int largeur=30,hauteur=30;
char lab[largeur][hauteur];
int nb_ligne,nb_col;



for(nb_ligne=0;nb_ligne<=hauteur;nb_ligne++)
{
for(nb_col=0;nb_col<=largeur;nb_col++)
{
lab[nb_ligne][nb_col]='0';
}
}
}

void deplacer(int nb_ligne, int nb_col){


move(nb_ligne,nb_col);/*A commenter*/
wattrset (stdscr, COLOR_PAIR(2));/*A commenter*/
addch('>');/*A commenter*/

}

int main (int argc, char **argv)/*A commenter. Pourquoi arg c et **argv?*/
{
int largeur=30,hauteur=30;
char lab[largeur][hauteur];
int nb_ligne,nb_col;

FILE *fichier;

char chaine;
int key=0;


fichier=fopen("stylelabyrinthe.txt","r" );
/****************init lab******************/
mat();
/****************initlab******************/

/***********ncureses*************/
ncurses(); /************ncursess*******/


while (!feof(fichier)) /*Qu'est ce que veut dire "feof"?*/
{
for(nb_ligne=0;nb_ligne<=hauteur;nb_ligne++)
{

for(nb_col=1;nb_col<=largeur;nb_col++)
{
fscanf(fichier,"%c",&lab[nb_ligne][nb_col]);
if(lab[nb_ligne][nb_col]=='0')
{

attron(COLOR_PAIR(1));/*A commenter*/
mvprintw(nb_ligne,nb_col," " );/*A commenter*/
attroff(COLOR_PAIR(1));/*A commenter*/

}

else if(lab[nb_ligne][nb_col]=='1')
{
attron(COLOR_PAIR(3));
mvprintw(nb_ligne,nb_col," " );
attroff(COLOR_PAIR(3));

}
else if(lab[nb_ligne][nb_col]=='M')
{
attron(COLOR_PAIR(2));
mvprintw(nb_ligne,nb_col," " );
attroff(COLOR_PAIR(2));

}
else if(lab[nb_ligne][nb_col]=='K')
{
attron(COLOR_PAIR(4));
mvprintw(nb_ligne,nb_col,"&" );
attroff(COLOR_PAIR(4));

}

refresh();

}
fscanf(fichier,"%c",&chaine);

}
}

keypad(stdscr,TRUE);/*A commenter*/

curs_set(0);/*A commenter*/


nb_ligne= 1 ;
nb_col= 5 ;
move(nb_ligne,nb_col);



while (key != KEY_F(12))
{
wattrset (stdscr, COLOR_PAIR(3));/*A commenter*/

switch (key)
{

case KEY_RIGHT:
if (largeur-1 > nb_col)
{

if (lab[nb_ligne][nb_col+1] != '0' && lab[nb_ligne+1][nb_col] != 'V')
{
addch (' ');
nb_col++;
deplacer(nb_ligne,nb_col);
}
}
break;

case KEY_LEFT:
if (0 < nb_col)
{
if (lab[nb_ligne][nb_col-1] != '0' && lab[nb_ligne+1][nb_col] != 'V')
{
addch (' ');
nb_col--;
deplacer(nb_ligne,nb_col);
}
}
break;

case KEY_DOWN:
if (hauteur-1 > nb_ligne)
{
if (lab[nb_ligne+1][nb_col] != '0' && lab[nb_ligne+1][nb_col] != 'V')
{
addch (' ');
nb_ligne++;
/******deplacer*********/
deplacer(nb_ligne,nb_col);
/*********deplacer***********/
}
}
break;




case KEY_UP:
if (0< nb_ligne)
{
if (lab[nb_ligne-1][nb_col] != '0' && lab[nb_ligne+1][nb_col] != 'm')
{
addch (' ');
nb_ligne--;
deplacer(nb_ligne,nb_col);
}
}
break;

}



key=getch();/*A commenter*/
move(nb_ligne,nb_col);
refresh();

}

echo();
endwin();
exit(0);

return 0;

}


Cette discussion est classée dans : ligne, col, lab, nb, color


Répondre à ce message

Sujets en rapport avec ce message

codage labyrinthe [ par fredbubu65 ] Frédéric.[^^happy13] Bonjour, quelqu'un pourrait-il me commenter ce programme(qui fonctionne)ci-dessous. Les commentaires à mettre y sont avec ce mod probleme modification fichier [ par gusdark ] salut , j'ai un probleme :j'ai fait un code pour modifier une ligne d'un fichier :-il copie les premieres lignes jusqu'a la ligne a modifier dans un a comment cacher les valeurs d'un tableau 2d [ par lil_adriano ] Salut j'ai un souci, j'ai crée un tableau 2d   #include #include <stdlib edit multilignes afficher le nb de ligne visibles [ par babyboo1107 ] Bonjour à tous,voilà j'aimerai pouvoir afficher le nb de lignes où il y à des caractère affiché  exemple1 kkkk2 34jjjil devrais m'afficher 2 pcq je n' [C] lignes d'un fichier dans un tableau : Segmentation fault [ par Michel76 ] Bonjour,Pardonnez-moi de cette question de débutant.Soit un fichier contenant :-----001002-----Je souhaiterais mettre chacune des lignes de ce fichier [QT] vider QGridLayout et rafraichir sont affichage [ par yepraoulette ] Salut a tous,Je cherche en faite a afficher une partie d'un tableau (stocké dans une QList de QList) dans un GridLayoutL'utilisateur peut choisir le n fichier ligne par ligne [ par blinix123 ] Yop!Bon voilou, je ne suis pas fortiche dans la manipulation de fichiers ^^J'ai un fichier qui contient des lignes de suite de nombre: 000112033011140 initialiser les vertex dans une boucle for [ par StrikerFred ] salut a tousj'avance a petits pas dans la création d'un jeu 3d.je voulais faire un grand sol de plein de petits carré. Pour ca, (même technique que po Ligne par ligne [ par Ziman ] Bonjour,d'habitude, j'utilise ReadFile pour lire dans un fichier, mais comment doit-je faire si je veux lire dans le fichier ligne par ligne ? Y a-t-i Enregistrer une ligne bien precise d'un texte [ par Slown ] Bonjour.  Je voudrais savoir, si il était possible de pouvoir enregistrer une ligne (ou un mot) bien precise d'un fichier. Je m'explique: J'ai obtenu


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,825 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales