Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<windows.h>
- #include<graphics.h>
- #include<time.h>
- #include<stdlib.h>
- int p[4][4];
- void zapoln(void);
- void drawpole(void);
- void selectc(void);
- int pobeda(void);
- void zapoln(void)
- {
- srand(time(0));
- int i, j ,k=1;
- for(i=0;i<4;i++)
- for(j=0;j<4;j++) p[i][j]=0;
- while(k<=15)
- {
- do
- {
- i=rand()%4;
- j=rand()%4;
- }
- while (p[i][j]!=0);
- {
- p[i][j]=k;
- }
- k++;
- }
- }
- void drawpole(void)
- {
- int x0=100,y0=100;
- int dx=100,dy=100;
- char s[3];
- int i,j;
- settextstyle(GOTHIC_FONT,HORIZ_DIR,5);
- for(i=0;i<5;i++) line(x0,y0+i*dy,x0+4*dy,y0+i*dy);
- for(j=0;j<5;j++) line(x0+j*dx,y0,x0+j*dx,y0+4*dx);
- for(i=0;i<4;i++)
- for(j=0;j<4;j++)
- {
- if (p[i][j]!=0)
- {
- sprintf(s,"%d",p[i][j]);
- outtextxy(x0+j*dx+5, y0+i*dy+5,s);
- }
- }
- }
- void selectc(void)
- {
- int tmp;
- int x0=100,y0=100;
- int dx=100,dy=100;
- int i,j;
- if (mousebuttons())
- {
- int i=(mousey()-y0)/dy;
- int j=(mousex()-x0)/dx;
- if((p[i][j-1]==0 && j>0) || (p[i-1][j]==0 && i>0) || (p[i][j+1]==0 && j<3) || (p[i+1][j]==0 && i<3))
- {
- if (p[i][j-1]==0 && j>0)
- {
- tmp=p[i][j-1];
- p[i][j-1]=p[i][j];
- p[i][j]=tmp;
- }
- else if(p[i-1][j]==0 && i>0)
- {
- tmp=p[i-1][j];
- p[i-1][j]=p[i][j];
- p[i][j]=tmp;
- }
- else if(p[i][j+1]==0 && j<3)
- {
- tmp=p[i][j+1];
- p[i][j+1]=p[i][j];
- p[i][j]=tmp;
- }
- else if(p[i+1][j]==0 && i<3)
- {
- tmp=p[i+1][j];
- p[i+1][j]=p[i][j];
- p[i][j]=tmp;
- }
- cleardevice();
- }
- }
- }
- int pobeda(void)
- {
- int i,j,k=1;
- for(i=0;i<4;i++)
- {
- for(j=0;j<4;j++)
- if(p[i][j]!=4*i+j+1 && (i!=4 || j!=4)) k=0;
- }
- return k;
- }
- int main()
- {
- initwindow(800,800);
- zapoln();
- do
- {
- drawpole();
- selectc();
- }while(pobeda()==0);
- closegraph();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement