Advertisement
Guest User

Untitled

a guest
Nov 27th, 2015
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.23 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<windows.h>
  3. #include<graphics.h>
  4. #include<time.h>
  5. #include<stdlib.h>
  6. int p[4][4];
  7. void zapoln(void);
  8. void drawpole(void);
  9. void selectc(void);
  10. int pobeda(void);
  11. void zapoln(void)
  12. {
  13. srand(time(0));
  14. int i, j ,k=1;
  15. for(i=0;i<4;i++)
  16. for(j=0;j<4;j++) p[i][j]=0;
  17. while(k<=15)
  18. {
  19. do
  20. {
  21. i=rand()%4;
  22. j=rand()%4;
  23. }
  24. while (p[i][j]!=0);
  25. {
  26. p[i][j]=k;
  27. }
  28. k++;
  29. }
  30. }
  31. void drawpole(void)
  32. {
  33. int x0=100,y0=100;
  34. int dx=100,dy=100;
  35. char s[3];
  36. int i,j;
  37. settextstyle(GOTHIC_FONT,HORIZ_DIR,5);
  38. for(i=0;i<5;i++) line(x0,y0+i*dy,x0+4*dy,y0+i*dy);
  39. for(j=0;j<5;j++) line(x0+j*dx,y0,x0+j*dx,y0+4*dx);
  40. for(i=0;i<4;i++)
  41. for(j=0;j<4;j++)
  42. {
  43. if (p[i][j]!=0)
  44. {
  45. sprintf(s,"%d",p[i][j]);
  46. outtextxy(x0+j*dx+5, y0+i*dy+5,s);
  47. }
  48. }
  49. }
  50. void selectc(void)
  51. {
  52. int tmp;
  53. int x0=100,y0=100;
  54. int dx=100,dy=100;
  55. int i,j;
  56. if (mousebuttons())
  57. {
  58. int i=(mousey()-y0)/dy;
  59. int j=(mousex()-x0)/dx;
  60. 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))
  61. {
  62. if (p[i][j-1]==0 && j>0)
  63. {
  64. tmp=p[i][j-1];
  65. p[i][j-1]=p[i][j];
  66. p[i][j]=tmp;
  67. }
  68. else if(p[i-1][j]==0 && i>0)
  69. {
  70. tmp=p[i-1][j];
  71. p[i-1][j]=p[i][j];
  72. p[i][j]=tmp;
  73. }
  74. else if(p[i][j+1]==0 && j<3)
  75. {
  76. tmp=p[i][j+1];
  77. p[i][j+1]=p[i][j];
  78. p[i][j]=tmp;
  79. }
  80. else if(p[i+1][j]==0 && i<3)
  81. {
  82. tmp=p[i+1][j];
  83. p[i+1][j]=p[i][j];
  84. p[i][j]=tmp;
  85. }
  86. cleardevice();
  87. }
  88. }
  89. }
  90. int pobeda(void)
  91. {
  92. int i,j,k=1;
  93. for(i=0;i<4;i++)
  94. {
  95. for(j=0;j<4;j++)
  96. if(p[i][j]!=4*i+j+1 && (i!=4 || j!=4)) k=0;
  97. }
  98. return k;
  99. }
  100. int main()
  101. {
  102. initwindow(800,800);
  103. zapoln();
  104. do
  105. {
  106. drawpole();
  107. selectc();
  108. }while(pobeda()==0);
  109. closegraph();
  110. return 0;
  111. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement