Advertisement
Guest User

New

a guest
Jan 16th, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 36.75 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6. //the format dun touch cos is directly from codeblocks, seem ok to me for now
  7. //i change space back to int so case 2 easier
  8. //putting in all the variables needed for the entire code
  9. int row,column,finalscore,count1,count2,r,c,c1,c2,selection;
  10. int space[6][6]={{0,0,0,0,0,0},{0,0,0,0,0,0},{0,0,0,0,0,0},{0,0,0,0,0,0},{0,0,0,0,0,0},{0,0,0,0,0,0}};
  11. int mines=0;
  12. int score=0;
  13. char returnmain;
  14. char blank[6][6]={{'x','x','x','x','x','x'},{'x','x','x','x','x','x'},{'x','x','x','x','x','x'},{'x','x','x','x','x','x'},{'x','x','x','x','x','x'},{'x','x','x','x','x','x'}};
  15. char mainmenu ='y';
  16. while(mainmenu=='Y'||mainmenu=='y')//looping so it returns to main menu after each selection
  17. {
  18. printf("*********************************************************\n");
  19. printf("* Minesweeper *\n");
  20. printf("*********************************************************\n");
  21. printf(" Main Menu:\n");//options
  22. printf(" 1. Position mines\n");
  23. printf(" 2. Clear minefields\n");
  24. printf(" 3. Calculate score\n");
  25. printf(" 4. Quit\n");
  26. printf("********************************************************\n");
  27. printf("Select your option:");//requesting for option
  28. scanf("%d",&selection);
  29. switch (selection)//runs code for selected option
  30. {
  31. case 1:
  32. //case1 set mines
  33. {
  34. mainmenu='n';
  35. printf("********************************************************\n");
  36. printf("* Position Mines *\n");
  37. printf("********************************************************\n");
  38. printf("\t 0 1 2 3 4 5");
  39. printf("\n\t-------------------------\n");
  40. for(count1=0;count1<6;count1++)
  41. {
  42. printf(" %d\t",count1);
  43. for(count2=0;count2<6;count2++)
  44. {
  45. if(space[count1][count2]==9) //here u see, i put
  46. {
  47. printf("| * ");
  48.  
  49. }
  50. else{
  51. printf("| %d ",space[count1][count2]); //input the design
  52. }
  53. }
  54. printf("|\n\t-------------------------\n");
  55. }
  56. while((mainmenu=='N') || (mainmenu=='n'))
  57. {
  58. printf("Enter row and column position to toggle mine : ");
  59. scanf("%d %d",&row,&column);
  60. if((space[row][column]==9)&&(row<6)&&(column<6)) //to clear mines
  61. {
  62. space[row][column]=0;
  63. mines=mines-1; //let us keep track/user friendliness idk necessary or not
  64. }
  65. else if((space[row][column]==0)&&(row<6)&&(column<6))
  66. {
  67. space[row][column]=9; //cos it maximum only 8 when fully surrounded
  68. mines=mines+1; //let us keep track/user friendliness idk necessary or not
  69. }
  70. else//in case error value
  71. {
  72. printf("wrong code bro ");
  73. }
  74. printf("No of mines left = %d\n",mines);
  75. printf("\t 0 1 2 3 4 5");
  76. printf("\n\t-------------------------\n");
  77. for(count1=0;count1<6;count1++)
  78. {
  79. printf(" %d\t",count1);
  80. for(count2=0;count2<6;count2++)
  81. {
  82. if(space[count1][count2]>=9) //here u see, i put
  83. {
  84. printf("| * ");
  85. }
  86. else{
  87. printf("| %d ",space[count1][count2]); //input the design
  88. }
  89. }
  90. printf("|\n\t-------------------------\n");
  91. }
  92. //after 1positioning done
  93. printf("\n*********************************************************\n");
  94. printf("\nDo you want to start your game?(Y/N) ");
  95. printf("\n*********************************************************\n");
  96. scanf(" %c",&mainmenu);
  97. }
  98.  
  99. //mapping
  100. for(count1=0;count1<6;count1++)
  101. {
  102. switch(count1)
  103. {
  104. case 0:
  105. {
  106. for(count2=0;count2<6;count2++)
  107. {
  108. switch(count2)
  109. {
  110. case 0:
  111. {
  112. if(space[count1][count2+1]>=9) //right
  113. {
  114. space[count1][count2]= space[count1][count2]+1;
  115. } //no else
  116. if(space[count1+1][count2]>=9) //down
  117. {
  118. space[count1][count2]= space[count1][count2]+1;
  119. } //no else
  120. if(space[count1+1][count2+1]>=9) //down right
  121. {
  122. space[count1][count2]= space[count1][count2]+1;
  123. } //no else
  124. break;
  125. }
  126. case 1:
  127. case 2:
  128. case 3:
  129. case 4:
  130. {
  131. if(space [count1][count2-1]>=9) //left
  132. {
  133. space[count1][count2]= space[count1][count2]+1;
  134. }
  135. if(space[count1+1][count2-1]>=9) //down left
  136. {
  137. space[count1][count2]= space[count1][count2]+1;
  138. } //no else
  139. if(space[count1][count2+1]>=9) //right
  140. {
  141. space[count1][count2]= space[count1][count2]+1;
  142. }
  143. if(space[count1+1][count2+1]>=9) //down right
  144. {
  145. space[count1][count2]= space[count1][count2]+1;
  146. } //no else
  147. break;
  148. }
  149. case 5:
  150. {
  151. if(space[count1][count2-1]>=9) //left
  152. {
  153. space[count1][count2]= space[count1][count2]+1;
  154. } //no else
  155. if(space[count1+1][count2]>=9) //down
  156. {
  157. space[count1][count2]= space[count1][count2]+1;
  158. } //no else
  159. if(space[count1+1][count2-1]>=9) //down left
  160. {
  161. space[count1][count2]= space[count1][count2]+1;
  162. } //no else
  163. break;
  164. } //just the top row only
  165. default:
  166. {
  167. printf("error count1=0 default");
  168. } //for count1=0
  169. }
  170. }
  171. }
  172. case 1:
  173. case 2:
  174. case 3:
  175. case 4:
  176. {
  177. for(count2=0;count2<6;count2++)
  178. {
  179. switch(count2)
  180. {
  181. case 0:
  182. {
  183. if(space[count1][count2+1]>=9) //right
  184. {
  185. space[count1][count2]= space[count1][count2]+1;
  186. } //no else
  187. if(space[count1-1][count2]>=9) //up
  188. {
  189. space[count1][count2]= space[count1][count2]+1;
  190. } //no else
  191. if(space[count1-1][count2+1]>=9) //up right
  192. {
  193. space[count1][count2]= space[count1][count2]+1;
  194. } //no else
  195. if(space[count1+1][count2+1]>=9) //down right
  196. {
  197. space[count1][count2]= space[count1][count2]+1;
  198. } //no else
  199. if(space[count1+1][count2]>=9) //down
  200. {
  201. space[count1][count2]= space[count1][count2]+1;
  202. } //no else
  203. break;
  204. }
  205. case 1:
  206. case 2:
  207. case 3:
  208. case 4:
  209. {
  210. if(space[count1-1][count2-1]>=9) //top left
  211. {
  212. space[count1][count2]= space[count1][count2]+1;
  213. } //no else
  214. if(space[count1-1][count2]>=9) //top
  215. {
  216. space[count1][count2]= space[count1][count2]+1;
  217. } //no else
  218. if(space[count1-1][count2+1]>=9) //top right
  219. {
  220. space[count1][count2]= space[count1][count2]+1;
  221. } //no else
  222. if(space[count1][count2-1]>=9) //left
  223. {
  224. space[count1][count2]= space[count1][count2]+1;
  225. } //no else
  226. if(space[count1][count2+1]>=9) //right
  227. {
  228. space[count1][count2]= space[count1][count2]+1;
  229. } //no else
  230. if(space[count1+1][count2-1]>=9) //down left
  231. {
  232. space[count1][count2]= space[count1][count2]+1;
  233. } //no else
  234. if(space[count1+1][count2]>=9) //down
  235. {
  236. space[count1][count2]= space[count1][count2]+1;
  237. } //no else
  238. if(space[count1+1][count2+1]>=9) //down right
  239. {
  240. space[count1][count2]= space[count1][count2]+1;
  241. } //no else
  242. break;
  243. }
  244. case 5:
  245. {
  246. if(space[count1][count2-1]>=9) //left
  247. {
  248. space[count1][count2]= space[count1][count2]+1;
  249. } //no else
  250. if(space[count1+1][count2]>=9) //down
  251. {
  252. space[count1][count2]= space[count1][count2]+1;
  253. } //no else
  254. if(space[count1+1][count2-1]>=9) //down left
  255. {
  256. space[count1][count2]= space[count1][count2]+1;
  257. } //no else
  258. if(space[count1-1][count2]>=9) //top
  259. {
  260. space[count1][count2]= space[count1][count2]+1;
  261. } //no else
  262. if(space[count1-1][count2+1]>=9)//top righ
  263. {
  264. space[count1][count2]= space[count1][count2]+1;
  265. } //no else
  266. break;
  267. }
  268. default:
  269. {
  270. printf("error in coding at mapping");
  271. }
  272. }
  273. }
  274. break;
  275. }
  276. case 5:
  277. {
  278. for(count2=0;count2<6;count2++)
  279. {
  280. switch(count2)
  281. {
  282. case 0:
  283. {
  284. if(space[count1][count2+1]>=9) //right
  285. {
  286. space[count1][count2]= space[count1][count2]+1;
  287. } //no else
  288. if(space[count1-1][count2]>=9) //up
  289. {
  290. space[count1][count2]= space[count1][count2]+1;
  291. } //no else
  292. if(space[count1-1][count2+1]>=9) //up right
  293. {
  294. space[count1][count2]= space[count1][count2]+1;
  295. } //no else
  296. break;
  297. }
  298. case 1:
  299. case 2:
  300. case 3:
  301. case 4:
  302. {
  303. if(space [count1][count2-1]>=9) //left
  304. {
  305. space[count1][count2]= space[count1][count2]+1;
  306. }
  307. if(space[count1][count2+1]>=9) //right
  308. {
  309. space[count1][count2]= space[count1][count2]+1;
  310. }
  311. if(space[count1-1][count2]>=9) //up
  312. {
  313. space[count1][count2]= space[count1][count2]+1;
  314. }
  315. if(space[count1-1][count2-1]>=9) //up left
  316. {
  317. space[count1][count2]= space[count1][count2]+1;
  318. } //no else
  319. if(space[count1-1][count2+1]>=9) //up right
  320. {
  321. space[count1][count2]= space[count1][count2]+1;
  322. } //no else
  323. break;
  324. }
  325. case 5:
  326. {
  327. if(space[count1][count2-1]>=9) //left
  328. {
  329. space[count1][count2]= space[count1][count2]+1;
  330. } //no else
  331. if(space[count1-1][count2]>=9) //up
  332. {
  333. space[count1][count2]= space[count1][count2]+1;
  334. } //no else
  335. if(space[count1-1][count2-1]>=9) //up left
  336. {
  337. space[count1][count2]= space[count1][count2]+1;
  338. } //no else
  339. break; //just the bottom row only
  340. }
  341. default:
  342. {
  343. printf("error count1=5 default");
  344. }
  345. } //for count1=0
  346. printf("\t 0 1 2 3 4 5");
  347. printf("\n\t-------------------------\n");
  348. for(count1=0;count1<6;count1++)
  349. {
  350. printf(" %d\t",count1);
  351. for(count2=0;count2<6;count2++)
  352. {
  353. if(space[count1][count2]>=9) //here u see, i put
  354. {
  355. printf("| * ");
  356. }
  357. else
  358. {
  359. printf("| %d ",space[count1][count2]); //input the design
  360. }
  361. }
  362. printf("|\n\t-------------------------\n");
  363. }
  364. }
  365. break;
  366. }
  367. }
  368. }
  369. }
  370. case 2://starts the game
  371. {
  372. mainmenu='n';
  373. printf("\t 0 1 2 3 4 5");
  374. printf("\n\t-------------------------\n");
  375. for(c1=0;c1<=5;c1++)
  376. {
  377. printf(" %d ",c1);
  378. for(c2=0;c2<=5;c2++)
  379. {
  380. printf("| %c ",blank[c1][c2]); //over here u see?
  381. }
  382. printf("|\n\t-------------------------\n");
  383. }
  384. while((mainmenu=='N') || (mainmenu=='n'))
  385. {
  386. printf("Enter row and column to clear:");
  387. scanf("%d %d",&r,&c);
  388. switch(space[r][c])
  389. {
  390. case 0:
  391. {
  392. blank[r][c]='0';
  393. break;
  394. }
  395. case 1:
  396. {
  397. blank[r][c]='1';
  398. break;
  399. }
  400. case 2:
  401. {
  402. blank[r][c]='2';
  403. break;
  404. }
  405. case 3:
  406. {
  407. blank[r][c]='3';
  408. break;
  409. }
  410. case 4:
  411. {
  412. blank[r][c]='4';
  413. break;
  414. }
  415. case 5:
  416. {
  417. blank[r][c]='5';
  418. break;
  419. }
  420. case 6:
  421. {
  422. blank[r][c]='6';
  423. break;
  424. }
  425. case 7:
  426. {
  427. blank[r][c]='7';
  428. break;
  429. }
  430. case 8:
  431. {
  432. blank[r][c]='8';
  433. break;
  434. }
  435. default:
  436. {
  437. blank[r][c]='*';
  438. }
  439. }
  440. if(blank[r][c]=='*')
  441. {
  442. printf("\t 0 1 2 3 4 5");
  443. printf("\n\t-------------------------\n");
  444. for(count1=0;count1<6;count1++)
  445. {
  446. printf(" %d\t",count1);
  447. for(count2=0;count2<6;count2++)
  448. {
  449. if(blank[count1][count2]=='*')
  450. {
  451. printf("| * ");
  452. }
  453. else
  454. {
  455. printf("| %c ",blank[count1][count2]); //input the design
  456. }
  457.  
  458. } printf("|\n\t-------------------------\n");
  459. }
  460. printf("Oops! You just hit a mine. Game Over! :");
  461. printf("Press any key to continue.");
  462. scanf(" %c", &returnmain);
  463. returnmain='y';
  464. mainmenu=returnmain;
  465. mainmenu='y';
  466. }
  467. else //no hit i also think the code wrong but fk it next time we run to see the prob
  468. {
  469. printf("\t 0 1 2 3 4 5");
  470. printf("\n\t-------------------------\n");
  471. for(count1=0;count1<6;count1++)
  472. {
  473. printf(" %d\t",count1);
  474. for(count2=0;count2<6;count2++)
  475. {
  476. printf("| %c ", blank[count1][count2]); //input the design
  477. }
  478. printf("|\n\t-------------------------\n");
  479. }
  480. }
  481. }
  482. break;
  483. }
  484. case 3://calculates the score
  485. {
  486. if(score<=1)
  487. {
  488. printf("Try harder next time\n");
  489. }
  490. else
  491. {
  492. finalscore=(score-1)*10;
  493. printf("You have a total score of: %d\n",finalscore);
  494. }
  495. break;
  496. }
  497. case 4: //makes the user leave
  498. {
  499. printf("You have left the game.");
  500. mainmenu='n';
  501. break;
  502. }
  503. default ://asking user to check his selection
  504. {
  505. printf("\nYou have made an invalid selection,please choose again\n");
  506. mainmenu='y';
  507. }
  508. }
  509. }
  510. return 0;
  511. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement