aide sur un puissance 4 en C

aide sur un puissance 4 en C - C++ - Programmation

Marsh Posté le 03-05-2002 à 14:16:23    

G un petit probleme avec mon programme, il semble que les conditons des 2 derniers IF ne soient pas bien testée, pouvez vous m'aider? merci d'avance
 
 
#include <stdio.h>
#include <conio.c>
#include <winbgim.h>
 
void tableaubase(void);
void souris(int a, int b);
void graphisme();
int tableau [7][7];
void main()
{
tableaubase();
graphisme();
}
/*************************************************
******************************/
void graphisme()
{
     int abs,ord=0;
     initwindow (400,450);
     setcolor (9);
//    rectangle(25,50,375,350);
 
 
     // utilisation de la souris
     registermousehandler(WM_LBUTTONDOWN, souris);
 
     // ligne horizontale du tableau
     for (ord=50;ord<400;ord=ord+50)
     {
      line (25,ord,375,ord);
      }
     // ligne verticale du tableau
     for (abs=25;abs<=375;abs=abs+50)
     {
      line (abs,50,abs,350);
     }
 
     settextstyle(DEFAULT_FONT, HORIZ_DIR, 2);
     setcolor(5);
     outtextxy(110,10, "PUISSANCE 4" );
     setcolor(14);
     outtextxy(250,410, "QUITTER" );
 
     while(!kbhit());
     closegraph();
  }
 
/*************************** remplissage du tableau ***************************/
void tableaubase(void)
{
  int i;
  int j;
 
  for (i=1; i<=7;i++)
  {
     for (j=1; j<7;j++)
       tableau[i][j]=0;
     tableau[i][7]=1;//on remplit la derniere ligne du tableau de 1 pour pouvoir effectuer des tests ensuite
  }
 
}
 
/******************************************************************************/
// position de la souris
 
void souris(int a, int b)
    {
    static int n = 0;
    while (!ismouseclick(WM_LBUTTONDOWN)) delay(50);
    getmouseclick(WM_LBUTTONDOWN,a,b);
 
/********************* permet de quitter l'application ************************/
 
     if ((b>=410) && (b<=450))
       {
         if  ((a>=250) && (a<=400))
          {
           closegraph();
           exit(0);
          }
       }
 /*****************************************************************************/
    else if((a>=50) && (a<=350))
        {
         if ((b>=50) && (b<=350))
          {
           if ((a%50)>25)
             a = a - (a%50) + 50;
           else
             a = a - (a%50);
             b -= (b % 50) - 25;
 
             if ((n == 0) && (tableau[(a/50)+1][(b/50)+1] == 0)&& ((tableau[(a/50)+1][b/50] == 1)||(tableau[(a/50)+1][(b/50)] == 2)))
             {
              n = 1;
              setcolor(2);
              setfillstyle (1,7);
              fillellipse(a,b,25,25);
              tableau[(a/50)+1][(b/50)+1]=1;
             }
             else if ((n == 1) && (tableau[(a/50)+1][(b/50)+1] == 0) && ((tableau[(a/50)+1][b/50] == 1)||(tableau[(a/50)+1][(b/50)] == 2)))
             {
              n = 0;
              setcolor(4);
              setfillstyle (1,12);
              fillellipse(a,b,25,25);
              tableau[(a/50)+1][(b/50)+1]=2;
             }
 
           }
        }
/******************************************************************************/
   }

Reply

Marsh Posté le 03-05-2002 à 14:16:23   

Reply

Sujets relatifs:

Leave a Replay

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