Cherche à tracer des lignes!!!graphics.h???

Cherche à tracer des lignes!!!graphics.h??? - C - Programmation

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!

Reply

Marsh Posté le 03-01-2005 à 17:34:08   

Reply

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. [:spamafote]


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 03-01-2005 à 17:54:59    

.┌──────────────┐
 │              │
 │              │
 │              │
 │              │
 │              │
 │              │
 └──────────────┘


 
[:spamafote]


Message édité par kaloskagatos le 03-01-2005 à 17:55:53
Reply

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??

Reply

Marsh Posté le 03-01-2005 à 18:50:32    

ou c'est une fonction que l'on utilise pour définir une fenetre???

Reply

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..
 
http://adms01.free.fr/HFR/Untitled-1.gif
 
Ca te donne une tite idée ?  
 
 
Apres tes programmes ms-dos sont tout beaux   :p


Message édité par ouned-coding le 03-01-2005 à 19:04:03
Reply

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??

Reply

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??

Reply

Marsh Posté le 03-01-2005 à 20:53:35    

Citation :


Pourquoi il existe pas une fonction simple qui permet de tracer une ligne??  


 
 
par exemple sans rentrer dans le détail,
 

Code :
  1. int position = 0, taille_consol = 256;
  2. while( positon < taille_consol ) {
  3.      fprint( stdout, "_" );
  4.      position++;
  5. }


Message édité par ouned-coding le 03-01-2005 à 21:00:39
Reply

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!!

Reply

Marsh Posté le 04-01-2005 à 01:19:18   

Reply

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)

Reply

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.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

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!!

Reply

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

Reply

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...
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

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

Reply

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...


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

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 [:deiphine]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed