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); }
/*************************** 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;
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;
}
}
}
/******************************************************************************/
}