Cherche à tracer des lignes!!!graphics.h??? - C - Programmation
Marsh Posté le 03-01-2005 à 17:50:42
devcpp = programme windows en mode console != programme DOS
mode console = mode texte = pas de graphisme possible
soit tu bidouilles avec des tirets et des pipes pour dessiner un cadre, soit tu crées une fenêtre c.a.d tu recodes la moitié de ton prog.
Marsh Posté le 03-01-2005 à 17:54:59
.┌──────────────┐ |
Marsh Posté le 03-01-2005 à 18:45:41
Oki merci pour les réponses!!
Le coup des fenetres ca m'interresse pas mal. C'est genre une boucle qui affiche des "-" ou des "|" ou je me trompe completement??
Marsh Posté le 03-01-2005 à 18:50:32
ou c'est une fonction que l'on utilise pour définir une fenetre???
Marsh Posté le 03-01-2005 à 19:00:45
Je pense que tu devrais jeter un coup d'oeil au code ASCII Etendu (version OEM) par contre niveau portablite de ton code..
Ca te donne une tite idée ?
Apres tes programmes ms-dos sont tout beaux
Marsh Posté le 03-01-2005 à 20:49:42
Je vois le travail que cela peut représenter je crois que je vais m'en tenir la si par hazard je me lance ca seras ce soir je previendrais merci pour votre aide.
L'idée serait de doubler mon tableau à deux dimensions et d'insérer tous les deux cases le code ASCII corespondant à "|" ou "_". Un peu trop fastidieux non??
Marsh Posté le 03-01-2005 à 20:52:59
arrgh j'ai l'impression que je dis une connerie!Je me sens un peu décontenancé!Pourquoi il existe pas une fonction simple qui permet de tracer une ligne??
Marsh Posté le 03-01-2005 à 20:53:35
Citation : |
par exemple sans rentrer dans le détail,
Code :
|
Marsh Posté le 04-01-2005 à 01:19:18
oki c ce que je me disais mais le truc c que g deja défini une fonction qui affiche mon tableau:
void affiche_tablo()
{
/*Effece l'ecran*/
system("cls" );
/*Affichage de la grille*/
for(i=1;i<taille+3;i++)
{
textcolor(YELLOW);
printf("%c ", lettres[i]);
}
for(i=0;i<taille+2;i++)
{
for(j=0;j<taille+2;j++)
{
if(j==0 && i!=0 && i!=taille+1)
{
textcolor(YELLOW);
printf("%2d", num[i]);
}
textcolor(WHITE); //Affiche le tableau en blanc sauf
if(tablo[i][j]==88)
{
textcolor(LIGHTGREEN); //et Si on a 88(X) alors en vert
}
if(tablo[i][j]==48)
{
textcolor(LIGHTRED); //et Si on a 48 alors en rouge
}
if(i==0 || j ==0 || j==taille+1 || i==taille+1)
{
textcolor(BLACK); // et les deux premières lignes en jaun
}
printf("%c ", tablo[i][j]); //affichage tablo
if((i==1)&&(j==taille+1))
{
textcolor(LIGHTGREEN);
printf("\t Tour %ld-C'est au tour de Joueur %c", nb_tour, joueur); //affiche le nombre de tour
}
if((i==2)&&(j==taille+1))
{
textcolor(YELLOW);
printf("Score X: %d", score_x);
}
if((i==3) && (j==taille+1))
{
textcolor(YELLOW),
printf("Score O: %d", score_o);
}
if((i==taille-1)&&(j==taille+1))
{
textcolor(YELLOW);
printf("\t Backspace:" );
textcolor(WHITE);
printf("Aide" );
}
if((i==taille)&&(j==taille+1))
{
textcolor(YELLOW);
printf("\t Echap:" );
textcolor(WHITE);
printf("Quitter" );
}
if((i==taille+1)&&(j==taille+1))
{
textcolor(YELLOW);
printf("\t Barre d'espace:" );
textcolor(WHITE);
printf("Placer un pion\n\n" );
}
}
printf("\n\n" );
}
}
et faudrais donc que je la reprenne en plus de l'initialisation de mon premier tablo pour afficher fprint( stdout, "_" ); ou différents petits messages marrant!!
Marsh Posté le 04-01-2005 à 09:06:50
Il me semble qu'il existe une librairie pour faire des trucs en mode console sous windows (équivalent de ncurses)
Marsh Posté le 04-01-2005 à 09:24:41
Oui c'est pdcurses. Tu peux faire de la couleur etc... Y'a pas de fonction de dessin de ligne parce que le C standard ne permet de faire que du texte, pas du graphisme. Si tu utilises une lib spéciale (en fonction de ton système) tu auras ce qu'il faut pour dessiner, dans une fenêtre.
Marsh Posté le 04-01-2005 à 19:18:34
Salut tout le monde merci de votre aide je suis parti dans une solution avec le code ASCII étendu!!C pas encore fini mais pour l'instant g créer une fonctiopn de type void se nommant tablo
ds le quel pour l'instant g écris ca
int hauteur; //X et Y
int largeur;
int cases_hau;
int cases_lar;
gotoxy(M,N);
printf("\xDA" ); //Caractere en haut à gauche de la case!
//création premiere ligne du tablo
for (largeur=1 ; largeur<taille+1 ; largeur++)
{
for (cases_lar=1 ; cases_lar<=A ; cases_lar++)
{
printf("\xC4" ); //trait en haut de la case!!
}
printf("\xC2" ); //affiche caractere en haut a droite de la case si il ya une case apres!!
}
printf("\b\xBF" ); //affiche caractere en haut a droite de la case si il n'ya pas de case apres!!
//Fin création premiere ligne du tablo
//crétion autre lignes
for (hauteur=0 ; hauteur<taille+1 ; hauteur++)
{
for (cases_hau=1 ; cases_hau<=B ; cases_hau++)
{
if (cases_hau==B) //A chaque fois que l'on arrive à la fin de la ligne on trace un trait a droite!
{
gotoxy(M,N+cases_hau+(hauteur*(B+1))+1);
printf("\xB3" ); //trait à droite
for (largeur=1 ; largeur<=X ; largeur++)
{
for (cases_lar=1 ; cases_lar<=A ; cases_lar++)
{
printf("\xC4" );
}
printf("\xC5" );
}
printf("\xB4" );
}
gotoxy(M,N+cases_hau+(hauteur*(B+1)));
printf("\xB3" ); //Affiche le caractere xB3 à gauche!
for (largeur=1 ; largeur<=X ; largeur++)
{
for (cases_lar=1 ; cases_lar<=A ; cases_lar++) printf(" " );
{
printf("\xB3" );
}
}
}
}
//Fin crétion autre lignes
gotoxy(M,N+(Y*(B+1)));
printf("\xC0" );
for (largeur=1 ; largeur<=X ; largeur++)
{
for (cases_lar=1 ; cases_lar<=A ; cases_lar++) printf("\xC4" );
printf("\xC1" );
}
printf("\b\xD9" );
Ca a pas l'air de trop mal marché me reste pas mal de truc à fairre pour l'adapter!!!La fonction a encore 2-3 ptit bugs je suis dessus actuellement je renverrais plus tard la fonction fini si ca interesse quelqu'un!!
Merci encore de votre aide!!
Marsh Posté le 04-01-2005 à 19:20:20
Je croyais que pour faire de la couleur ect.. On incluait la librairie conio.h de borland!! Comme je compile sous dev pour l'instant j'ai recup un conio.c que je recompile evec mon prog à chaque fois
Marsh Posté le 04-01-2005 à 23:24:51
Anormal13 a écrit : Je croyais que pour faire de la couleur ect.. On incluait la librairie conio.h de borland!! |
on peut faire ça... sous windows...
Marsh Posté le 05-01-2005 à 00:34:09
ah oki je suis encore qu'un tout jeune débutant en Linux je prefere encore pour l'instant developpé sous Windows mais je compte bien à therme à me devenir mebre à vie de la communauté LINUX
Marsh Posté le 05-01-2005 à 08:24:48
Anormal13 a écrit : ah oki je suis encore qu'un tout jeune débutant en Linux je prefere encore pour l'instant developpé sous Windows mais je compte bien à therme à me devenir mebre à vie de la communauté LINUX |
Si ils font passer un test d'orthographe, t'es mal...
Marsh Posté le 05-01-2005 à 13:24:15
Anormal13 a écrit : ah oki je suis encore qu'un tout jeune débutant en Linux je prefere encore pour l'instant developpé sous Windows mais je compte bien à therme à me devenir mebre à vie de la communauté LINUX |
moi je suis mage programmeur de combat niveau 16 de la communauté LINUX
Marsh Posté le 03-01-2005 à 17:34:08
Bonjour à tous,
Comment allez-vous?Moi ca va!Bref, j'ai quand meme un p'tit souci je cherche depuis deux jours à tracer des traits dans une fenetre DOS! En fait je programe un REVERSI(en mode texte) et j'aurais aimé pouvoir encadrer mon plateau de jeu(représenter par un tableau en 2dimensions de type entier).
J'ai fait beaucoup de recherche sur la librairie graphics.h(non standard sous devc++, mon compilateur!) mais je n'ai pas réussi à la faire fonctionner! Quelqu'un pourait-il avoir la gentillesse de me donner une piste sur la librairie à utiliser? Ou tout simplement m'indiquer commment puis-je utilisé graphics.h sous devc++!
Merci d'avance et bonne année à tous!