井字游戏(Tic-tac-toe)
#define UNIT 150
#define NUMBER 3
#include "graphics.h"
#include "stdio.h"
#include "stdlib.h"
main()
{
int driver=VGA,model=VGAHI;
int i=0,j=0,x=0,y=0,count=0,sum=0,product=0;
char str[25];
int array[NUMBER][NUMBER];
initgraph(&driver,&model,"");
ege::initgraph(UNIT*NUMBER ,UNIT*NUMBER);
setbkcolor(RED);
setcolor(BLACK);
for(i=0; i<NUMBER; i++)
for(j=0; j<NUMBER; j++)
array[i][j]=0;
for(i=0; i<NUMBER; i++)
for(j=0; j<NUMBER; j++)
{
if(i%2==0)
{
bar(i*UNIT,j*UNIT,(i+1)*UNIT,(j+1)*UNIT);
j++;
}
if(i%2==1)
{
j++;
bar(i*UNIT,j*UNIT,(i+1)*UNIT,(j+1)*UNIT);
}
}
for ( ; is_run(); delay_fps(120))
{
while (mousemsg())
{
mouse_msg m = getmouse();
if (m.msg == mouse_msg_down)
{
x=m.x/UNIT;
y=m.y/UNIT;
if(array[x][y]==0)
{
count++;
if(count%2==1)
{
array[x][y]=1;
setcolor(WHITE);
setfillstyle(SOLID_FILL,WHITE);
sector(x*UNIT+UNIT/2,y*UNIT+UNIT/2,0,360,50,50);
}
else
{
array[x][y]=2;
setcolor(YELLOW);
setfillstyle(SOLID_FILL,YELLOW);
sector(x*UNIT+UNIT/2,y*UNIT+UNIT/2,0,360,50,50);
}
for(i=0; i<NUMBER; i++)
{
sum=0;
product=1;
for(j=0; j<NUMBER; j++)
{
sum=sum+array[j][i];
product=product*array[j][i];
}
if(product!=0 && sum%NUMBER==0)
{
Sleep(1);
MessageBox(NULL, itoa(sum/NUMBER, str, 10), "结果",MB_OK);
}
}
for(i=0; i<NUMBER; i++)
{
sum=0;
product=1;
for(j=0; j<NUMBER; j++)
{
sum=sum+array[i][j];
product=product*array[i][j];
}
if(product!=0 && sum%NUMBER==0)
{
Sleep(1);
MessageBox(NULL, itoa(sum/NUMBER, str, 10), "结果",MB_OK);
}
}
sum=0;
product=1;
for(i=0; i<NUMBER; i++)
{
sum=sum+array[i][i];
product=product*array[i][i];
}
if(product!=0 && sum%NUMBER==0)
{
Sleep(1);
MessageBox(NULL, itoa(sum/NUMBER, str, 10), "结果",MB_OK);
}
sum=0;
product=1;
for(i=0; i<NUMBER; i++)
{
sum=sum+array[NUMBER-1-i][i];
product=product*array[NUMBER-1-i][i];
}
if(product!=0 && sum%NUMBER==0)
{
Sleep(1);
MessageBox(NULL, itoa(sum/NUMBER, str, 10), "结果",MB_OK);
}
}
}
}
}
}
函数版本:
#define UNIT 150
#define NUMBER 3
#include "graphics.h"
#include "stdio.h"
#include "stdlib.h"
int array[NUMBER][NUMBER];
void init();
void drawGrid();
void play();
main()
{
init();
drawGrid();
play();
}
void init()
{
int i=0,j=0;
int driver=VGA,model=VGAHI;
initgraph(&driver,&model,"");
ege::initgraph(UNIT*NUMBER ,UNIT*NUMBER);
setbkcolor(RED);
setcolor(BLACK);
for(i=0; i<NUMBER; i++)
for(j=0; j<NUMBER; j++)
array[i][j]=0;
}
void drawGrid()
{
int i=0,j=0;
for(i=0; i<NUMBER; i++)
for(j=0; j<NUMBER; j++)
{
if(i%2==0)
{
bar(i*UNIT,j*UNIT,(i+1)*UNIT,(j+1)*UNIT);
j++;
}
if(i%2==1)
{
j++;
bar(i*UNIT,j*UNIT,(i+1)*UNIT,(j+1)*UNIT);
}
}
}
void play()
{
int i=0,j=0,x=0,y=0,count=0,sum=0,product=0;
char str[25];
for ( ; is_run(); delay_fps(120))
{
if (mousemsg())
{
mouse_msg m = getmouse();
if (m.msg == mouse_msg_down)
{
x=m.x/UNIT;
y=m.y/UNIT;
if(array[x][y]==0)
{
count++;
if(count%2==1)
{
array[x][y]=1;
setcolor(WHITE);
setfillstyle(SOLID_FILL,WHITE);
sector(x*UNIT+UNIT/2,y*UNIT+UNIT/2,0,360,50,50);
}
else
{
array[x][y]=2;
setcolor(YELLOW);
setfillstyle(SOLID_FILL,YELLOW);
sector(x*UNIT+UNIT/2,y*UNIT+UNIT/2,0,360,50,50);
}
for(i=0; i<NUMBER; i++)
{
sum=0;
product=1;
for(j=0; j<NUMBER; j++)
{
sum=sum+array[j][i];
product=product*array[j][i];
}
if(product!=0 && sum%NUMBER==0)
{
Sleep(1);
MessageBox(NULL, itoa(sum/NUMBER, str, 10), "结果",MB_OK);
}
}
for(i=0; i<NUMBER; i++)
{
sum=0;
product=1;
for(j=0; j<NUMBER; j++)
{
sum=sum+array[i][j];
product=product*array[i][j];
}
if(product!=0 && sum%NUMBER==0)
{
Sleep(1);
MessageBox(NULL, itoa(sum/NUMBER, str, 10), "结果",MB_OK);
}
}
sum=0;
product=1;
for(i=0; i<NUMBER; i++)
{
sum=sum+array[i][i];
product=product*array[i][i];
}
if(product!=0 && sum%NUMBER==0)
{
Sleep(1);
MessageBox(NULL, itoa(sum/NUMBER, str, 10), "结果",MB_OK);
}
sum=0;
product=1;
for(i=0; i<NUMBER; i++)
{
sum=sum+array[NUMBER-1-i][i];
product=product*array[NUMBER-1-i][i];
}
if(product!=0 && sum%NUMBER==0)
{
Sleep(1);
MessageBox(NULL, itoa(sum/NUMBER, str, 10), "结果",MB_OK);
}
}
}
}
}
}