شطرنج
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include<BIOS.H >
void copy(int s1, int s2, int z1 ,int z2 ,int x,int y);
unsigned char read_point(int x,int y ) ;
unsigned char mempoint(int x,int y ,int color);
int main(void)
{
union k{
char c[2];
int i,j;
}key;
char p[2]={40,80},ch;
int array[9][9];
int i,j;
int a,b,x,y;
int gdriver = DETECT, gmode, errorcode;
int xmax, ymax;
initgraph(&gdriver, &gmode, "");
errorcode = graphresult();
setcolor(2);
settextstyle(1,0,2);
outtextxy(25,420," F1.. F2.. A.. B.. ");
setviewport(150,50,500,400,1);
setfillpattern(p,7);
setfillstyle(1,7);
for(i=0;i<10 ;i++)
for(j=0;j<10 ;j++)
array[i][j]=0;
floodfill(260,160,3);
for(i=0;i<325 ;i+=35)
for(j=0;j<325 ;j+=35)
rectangle(j,i,35+j,35+i);
setviewport(460,365,495,395,1);
for(i=0;i<200;i++)
for(j=0;j<200;j++)
putpixel(10+j,5+i ,1);
array[0][0]=-1;
setviewport(145,50,180,80,1);
for(i=0;i<200;i++)
for(j=0;j<200;j++)
putpixel(10+j,5+i ,4);
array[9][9]=-1;
a=0 ;b=0; x=0;y=0;
do{
ch=getch();
key.i=bioskey(0);
if(!key.c[0])
switch (key.c[1])
{
case 72:
if(ch=='a')
if(b<=280){
setviewport(460-a,365-b,495-a,395-b,1);
for(i=0;i<200;i++)
for(j=0;j<200;j++)
putpixel(10+j,5+i ,57);
if(getpixel(j+a,i+b)==7)
b-=35;
else b+=35;
setviewport(460-a,365-b,495-a,395-b,1);
for(i=0;i<200;i++)
for(j=0;j<200;j++)
putpixel(10+j,5+i ,1); //}
}
if(ch=='b')
if(y<= 280){
setviewport(145-x,50-y,180-x,80-y,1);
for(i=0;i<200;i++)
for(j=0;j<200;j++)
putpixel(10+j,5+i ,54);
y+=35;
setviewport(145-x,50-y,180-x,80-y,1);
for(i=0;i<200;i++)
for(j=0;j<200;j++)
putpixel(10+j,5+i ,4); }
break;
case 75:
if(ch=='a')
if(a<=280){
setviewport(460-a,365-b,495-a,395-b,1);
for(i=0;i<200;i++)
for(j=0;j<200;j++)
putpixel(10+j,5+i ,57);
if(getpixel(j+a,i+b)==7)
a-=35;
else a+=35;
setviewport(460-a,365-b,495-a,395-b,1);
for(i=0;i<200;i++)
for(j=0;j<200;j++)
putpixel(10+j,5+i ,1);
}
if(ch=='b')
if(x<= 280){
setviewport(145-x,50-y,180-x,80-y,1);
for(i=0;i<200;i++)
for(j=0;j<200;j++)
putpixel(10+j,5+i ,54);
x+=35;
setviewport(145-x,50-y,180-x,80-y,1);
for(i=0;i<200;i++)
for(j=0;j<200;j++)
putpixel(10+j,5+i ,4); }
break;
case 77:
if(ch=='a')
if(a>=35){
setviewport(460-a,365-b,495-a,395-b,1);
for(i=0;i<200;i++)
for(j=0;j<200;j++)
putpixel(10+j,5+i ,57);
if(getpixel(j+a,i+b)==7)
a+=35;
else a-=35;
setviewport(460-a,365-b,495-a,395-b,1);
for(i=0;i<200;i++)
for(j=0;j<200;j++)
putpixel(10+j,5+i ,1);
}
if(ch=='b')
if(x>= -280){
setviewport(145-x,50-y,180-x,80-y,1);
for(i=0;i<200;i++)
for(j=0;j<200;j++)
putpixel(10+j,5+i ,54);
x-=35;
setviewport(145-x,50-y,180-x,80-y,1);
for(i=0;i<200;i++)
for(j=0;j<200;j++)
putpixel(10+j,5+i ,4); }
break;
case 80:
if(ch=='a')
if(b>=35){
setviewport(460-a,365-b,495-a,395-b,1);
for(i=0;i<200;i++)
for(j=0;j<200;j++)
putpixel(10+j,5+i ,57);
if(getpixel(j+a,i+b)==7)
b+=35;
else b-=35;
setviewport(460-a,365-b,495-a,395-b,1);
for(i=0;i<200;i++)
for(j=0;j<200;j++)
putpixel(10+j,5+i ,1);
}
/*********************************/
if(ch=='b')
if(y>= -280){
setviewport(145-x,50-y,180-x,80-y,1);
for(i=0;i<200;i++)
for(j=0;j<200;j++)
putpixel(10+j,5+i ,54);
y-=35;
setviewport(145-x,50-y,180-x,80-y,1);
for(i=0;i<200;i++)
for(j=0;j<200;j++)
putpixel(10+j,5+i ,4); }
break;
}
} while(key.c[0]!='q');
closegraph();
return 0;
}