当前位置:   article > 正文

easyx的安装与基于easyx的C语言扫雷小游戏_csh %2d

csh %2d

easyx的下载:EasyX Graphics Library for C++

点击连接,然后点击下载easyx

然后根据安装指示一路下载就行:

 

点击下一步,会出现你安装的visual studio code 的信息

 

点击安装即可。

显示安装成功就可以开始用easyx的图形库了呢。 

使用easyx只能在cpp环境哦,还要添加几个头文件

  1. #include<easyx.h>
  2. #include<graphics.h>

还有其他的头文件这里就不一一列举了。

下面是用easyx写的一个扫雷小游戏,大家可以复制试玩一下。

记得在项目,属性页里面,把字符集改成多字节字符集。

 

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<time.h>
  4. #include<easyx.h>
  5. #include<graphics.h>
  6. #include <mmsystem.h>
  7. #define row 10
  8. #define col 10
  9. #define lei 10
  10. IMAGE pt[12];
  11. void tpjz()
  12. {
  13. int i;
  14. for (i = 0; i < 12; i++)
  15. {
  16. char sz[1000];
  17. sprintf_s(sz,"./image/%d.jpg",i);
  18. loadimage(&pt[i],sz,35,35);
  19. putimage(i*35,0,&pt[i]);
  20. }
  21. }
  22. void show(int sz[][col]);
  23. void csh(int map[][col]);
  24. void draw(int map[][col]);
  25. void sbcz(ExMessage*, int[][col]);
  26. void boom(int [][col], int , int );
  27. int pd(int [][col],int ,int );
  28. int main(void)
  29. {
  30. //数组扫雷地图 10*10
  31. initgraph(350,350);
  32. tpjz();
  33. srand((unsigned)time(NULL));
  34. int map[row][col] = { 0 };
  35. csh(map);
  36. show(map);
  37. while (1)
  38. {
  39. //消息处理
  40. ExMessage msg;
  41. int zhi = 0;
  42. while (peekmessage(&msg, EM_MOUSE))
  43. {
  44. switch (msg.message)
  45. {
  46. case WM_LBUTTONDOWN:
  47. case WM_RBUTTONDOWN:
  48. sbcz(&msg, map);
  49. //pd(map,msg.y/35,msg.x/35);
  50. if (pd(map, msg.y / 35, msg.x / 35) == -1)
  51. {
  52. zhi =MessageBox(GetHWnd(),"输了吧,不要灰心","我是大帅比",MB_OKCANCEL);
  53. if (zhi)
  54. {
  55. }
  56. }
  57. else if(pd(map, msg.y / 35, msg.x / 35)==1)
  58. {
  59. int zhi = MessageBox(GetHWnd(), "大佬,太强了", "我是大帅比", MB_OKCANCEL);
  60. if (zhi)
  61. {
  62. }
  63. }
  64. break;
  65. }
  66. }
  67. draw(map);
  68. if (zhi)
  69. {
  70. return 0;
  71. }
  72. //Sleep(16);
  73. }
  74. //getchar();
  75. return 0;
  76. }
  77. void show(int sz[][col])
  78. {
  79. int i, j;
  80. for (i=0;i<row;i++)
  81. {
  82. for (j=0;j<col;j++)
  83. {
  84. printf("%2d ",sz[i][j]);
  85. }
  86. putchar('\n');
  87. }
  88. }
  89. void csh(int map[][col])
  90. {
  91. tpjz();
  92. int i,j;
  93. for (i=0;i<lei;)
  94. {
  95. int r = rand() % 10;
  96. int t = rand() % 10;
  97. if (map[r][t] == 0)
  98. {
  99. map[r][t] = -1;
  100. i++;
  101. }
  102. }
  103. for (i = 0; i < row; i++)
  104. {
  105. for (j = 0; j < col; j++)
  106. {
  107. if (map[i][j] == -1)
  108. {
  109. for (int r = i - 1; r <= i + 1; r++)
  110. {
  111. for (int t = j - 1; t <= j + 1; t++)
  112. {
  113. if ((r>=0&&r<row&&t>=0&&t<col)&&map[r][t] != -1)
  114. {
  115. map[r][t]++;
  116. }
  117. }
  118. }
  119. }
  120. }
  121. }
  122. //加密
  123. for (int i = 0 ;i<row;i++)
  124. {
  125. for (int j = 0;j<col;j++)
  126. {
  127. map[i][j] += 20;
  128. }
  129. }
  130. }
  131. void draw(int map[][col])
  132. {
  133. int i, k;
  134. for (i=0; i < row; i++)
  135. {
  136. for (k=0; k < col; k++)
  137. {
  138. if (map[i][k] >= 0 && map[i][k] <= 8)
  139. {
  140. putimage(k*35,i*35,&pt[map[i][k]]);
  141. }
  142. else if(map[i][k]==-1)
  143. {
  144. putimage(k * 35, i * 35, &pt[9]);
  145. }
  146. else if(map[i][k] >= 19 && map[i][k] <= 28)
  147. {
  148. putimage(k * 35, i * 35, &pt[10]);
  149. }
  150. else if (map[i][k]>=39)
  151. {
  152. putimage(k * 35, i * 35, &pt[11]);
  153. }
  154. }
  155. }
  156. }
  157. void sbcz(ExMessage *msg,int map[row][col])
  158. {
  159. int c = msg->x/35;
  160. int r = msg->y/35;
  161. if (msg->message == WM_LBUTTONDOWN)
  162. {
  163. if (map[r][c]>=19&&map[r][c]<=28)
  164. {
  165. map[r][c] -= 20;
  166. boom(map,r,c);
  167. }
  168. }
  169. if (msg->message == WM_RBUTTONDOWN)
  170. {
  171. //能否标记
  172. if (map[r][c] >= 19 && map[r][c] <= 28)
  173. {
  174. map[r][c] += 20;
  175. }
  176. else
  177. {
  178. map[r][c] -= 20;
  179. }
  180. }
  181. }
  182. void boom(int map[row][col],int xbx,int xby)
  183. {
  184. if (map[xbx][xby] == 0)
  185. {
  186. for (int i = xbx-1; i <= xbx+1; i++)
  187. {
  188. for (int j = xby-1; j <= xby+1; j++)
  189. {
  190. if (i>=0&&i<row&&j>=0&&j<col&&map[i][j] >= 19&&map[i][j]<=28)
  191. {
  192. map[i][j] -= 20;
  193. boom(map,i,j);
  194. }
  195. }
  196. }
  197. }
  198. }
  199. int pd(int map[row][col],int x,int y)
  200. {
  201. if (map[x][y] == -1||map[x][y] == 19)
  202. {
  203. return -1;
  204. }
  205. int i, j,cnt = 0;
  206. for (int i = 0; i < row; i++)
  207. {
  208. for (int j = 0; j < col; j++)
  209. {
  210. if (map[i][j] >=0&& map[i][j]< 8)
  211. {
  212. cnt++;
  213. }
  214. }
  215. }
  216. if (cnt == 90)
  217. {
  218. return 1;
  219. }
  220. return 0;
  221. }

接下来是成品展示:

 如果大家感兴趣,记得点个赞哦,我会出easyx有关的教程哦

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/93988
推荐阅读
  

闽ICP备14008679号