Advertisement
Guest User

Untitled

a guest
Nov 1st, 2014
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.01 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. #include <Windows.h>
  5.  
  6. void space(){
  7. for (int i=0; i<25; i++){
  8. printf("\n");
  9. }
  10. }
  11.  
  12. int mainMenu(){
  13. char menu;
  14. do{
  15. space();
  16. printf("Find The Way\n");
  17. printf("============\n\n\n");
  18. printf("Menu\n");
  19. printf("====\n");
  20. printf("1. New Game\n");
  21. printf("2. Continue Saved Game\n");
  22. printf("3. Exit\n");
  23. printf("-> ");
  24. scanf ("%c", &menu); fflush(stdin);
  25. }while (menu!='1' && menu!='2'&&menu!='3');
  26.  
  27. return menu;
  28. }
  29.  
  30. void directions(){
  31. printf("1. Up\n");
  32. printf("2. Down\n");
  33. printf("3. Left\n");
  34. printf("4. Right\n");
  35. printf("5. Save And Exit\n");
  36. printf("-> ");
  37. }
  38.  
  39. void viewMap(int &rP, int &cP, int &rF, int &cF, char map[15][15]){
  40.  
  41. for (int r=0; r<10; r++){
  42. for (int c=0; c<10; c++){
  43. if(map[r][c]=='1'){
  44. printf("%c",1);
  45. rP= r; cP =c;
  46. }
  47. else if (map[r][c]=='2'){
  48. printf("%c",2);
  49. rF = r; cF =c;
  50. }
  51. else printf("%c", map[r][c]);
  52. }
  53. printf("\n");
  54. }
  55. }
  56.  
  57. void viewMap2(int &rP, int &cP, int &rF, int &cF, char map[15][15]){
  58.  
  59. for (int r=0; r<10; r++){
  60. for (int c=0; c<10; c++){
  61. if(map[r][c]=='1'){
  62. if (r == rP && c == cP) printf("%c",1);
  63. else printf("%c",32);
  64. }
  65. else if (map[r][c]=='2'){
  66. printf("%c",2);
  67. rF = r; cF =c;
  68. }
  69. else printf("%c", map[r][c]);
  70. }
  71. printf("\n");
  72. }
  73. }
  74.  
  75. int readMap(int lvl,char map[15][15]){
  76. int n=0, flag=0;
  77. FILE *fp;
  78. if (lvl==1) {fp = fopen("map1","r");}
  79. else if (lvl == 2) {fp = fopen("map2","r");}
  80. else if (lvl == 3) {fp = fopen("map3","r");}
  81.  
  82. if (fp == NULL){
  83. flag=0;
  84. }
  85. else{
  86. flag=1;
  87. while (!feof(fp)){
  88. fscanf(fp, "%[^\n]\n", &map[n]);
  89. n++;
  90. }
  91. }
  92. return flag;
  93. }
  94.  
  95. void printKet (int hs, int level, int score, int turn){
  96. printf("High Score : %d\n", hs);
  97. printf("Level : %d\n", level);
  98. printf("Score : %d\n", score);
  99. printf("Turn : %d\n", turn);
  100. }
  101. void save(int level, int turn, int score, int rP, int cP, int hs){
  102. FILE *fp;
  103. fp = fopen ("save","w");
  104. fprintf(fp, "%d %d %d %d %d %d", level, turn, score, rP, cP, hs);
  105. fclose(fp);
  106. }
  107.  
  108. int moveV(int movement,int &rP, int &cP, int rF, int cF, int &level, int &score, int &turn, int &hs,char map[15][15]){
  109. int done=0;
  110. int a=0;
  111. if (movement==1) a=-1;
  112. else if (movement ==2) a=1;
  113.  
  114. while (map[rP+a][cP]!='#'){
  115. map[rP][cP] =' ';
  116. map[rP+a][cP] = '1';
  117. if (rP = rF-a && cP==cF){
  118. level++;
  119. score = score+((20-turn)*1000);
  120. turn =0; rP=0;cP=0;
  121. if (level<4){
  122. printf("LEVEL UP. Score = %d\n", score);
  123. getchar();
  124. }
  125. else if (level==4){
  126. printf("CONGRATS YOU HAVE CLEARED ALL THE LEVELS!\n");
  127. if (hs<score) hs = score;
  128. rP=-1; cP=-1;
  129. save(level,turn, score,rP,cP,hs);
  130. done = 1;
  131. getchar();
  132. }
  133. break;
  134. }
  135. rP--;
  136. viewMap(rP, cP, rF, cF, map);
  137. Sleep(500);
  138. }
  139. turn++;
  140. return done;
  141. }
  142.  
  143. int moveH(int movement,int &rP, int &cP, int rF, int cF, int &level, int &score, int &turn, int &hs,char map[15][15]){
  144. int done=0;
  145. int a=0;
  146. if (movement==3) a=-1;
  147. else if (movement ==4) a=1;
  148.  
  149. while (map[rP][cP+a]!='#'){
  150. map[rP][cP] =' ';
  151. map[rP][cP+a] = '1';
  152. if (rP = rF && cP==cF-a){
  153. level++;
  154. score = score+((20-turn)*1000);
  155. turn =0; rP=0;cP=0;
  156. if (level<4){
  157. printf("LEVEL UP. Score = %d\n", score);
  158. getchar();
  159. }
  160. else if (level==4){
  161. printf("CONGRATS YOU HAVE CLEARED ALL THE LEVELS!\n");
  162. if (hs<score) hs = score;
  163. rP=-1; cP=-1;
  164. save(level,turn, score,rP,cP,hs);
  165. done = 1;
  166. getchar();
  167. }
  168. break;
  169. }
  170. rP--;
  171. viewMap(rP, cP, rF, cF, map);
  172. Sleep(500);
  173. }
  174. turn++;
  175. return done;
  176. }
  177. //void down(int &rP, int &cP, int rF, int cF,int &level, int &score, int &turn,char map[15][15]){
  178. //
  179. // while (map[rP+1][cP]!='#'){
  180. // map[rP][cP] =' ';
  181. // map[rP+1][cP] = '1';
  182. // if (rP = rF-1 && cP==cF){
  183. // level++;
  184. // score = score+((20-turn)*1000);
  185. // turn =0; rP=0;cP=0;
  186. // break;
  187. // }
  188. // rP++;
  189. // turn++;
  190. // viewMap(rP, cP, rF, cF, map);
  191. // Sleep(500);
  192. // }
  193. //}
  194. //
  195. //void left(int &rP, int &cP, int rF, int cF,int &level, int &score, int &turn,char map[15][15]){
  196. //
  197. // while (map[rP][cP-1]!='#') {
  198. // map[rP][cP] =' ';
  199. // map[rP][cP-1] = '1';
  200. // if (cP = cF+1 && rP==rF){
  201. // level++;
  202. // score = score+((20-turn)*1000);
  203. // turn =0; rP=0;cP=0;
  204. // break;
  205. // }
  206. // cP--;
  207. // turn++;
  208. // viewMap(rP, cP, rF, cF, map);
  209. // Sleep(500);
  210. // }
  211. //}
  212. //
  213. //void right(int &rP, int &cP, int rF, int cF,int &level, int &score, int &turn,char map[15][15]){
  214. // while (map[rP][cP+1]!='#'){
  215. // map[rP][cP] =' ';
  216. // map[rP][cP+1] = '1';
  217. // if (cP = cF-1 && rP==rF){
  218. // level++;
  219. // score = score+((20-turn)*1000);
  220. // turn =0; rP=0;cP=0;
  221. // break;
  222. // }
  223. // cP++;
  224. // turn++;
  225. // viewMap(rP, cP, rF, cF, map);
  226. // Sleep(500);
  227. // }
  228. //}
  229.  
  230.  
  231.  
  232. void menu1(char map[15][15]){
  233. int flag=0,n=0, done =0;
  234. int hs=0,level=1, score =0, turn=0;
  235. int rP=0, cP=0, rF=0, cF=0;
  236. char dir;
  237. flag = readMap(level,map);
  238. if (flag ==0) printf("NO FILE FOUND!");
  239. else{
  240. do{
  241.  
  242. space();
  243. do{
  244. printKet(hs,level,score,turn);
  245. viewMap(rP, cP, rF, cF, map);
  246. directions();
  247. scanf ("%c", &dir); fflush(stdin);
  248. }while (dir!='1' && dir!='2' && dir!='3' && dir!='4' && dir!='5');
  249.  
  250.  
  251. if (dir=='1'){
  252. done = moveV (1,rP, cP, rF, cF,level,score,turn,hs, map);
  253. }
  254. else if (dir == '2'){
  255. //down (rP, cP, rF, cF, level,score,turn,map);
  256. done = moveV (2,rP, cP, rF, cF,level,score,turn,hs, map);
  257. }
  258. else if (dir == '3'){
  259. //left (rP, cP, rF, cF, level,score,turn,map);
  260. done = moveH (3,rP, cP, rF, cF,level,score,turn,hs, map);
  261. }
  262. else if (dir == '4'){
  263. done = moveH (4,rP, cP, rF, cF, level,score,turn,hs,map);
  264. }
  265. else if (dir =='5'){
  266. save (level, turn, score, rP, cP, hs);
  267. }
  268. //if (level<4){
  269. // printf("LEVEL UP. Score = %d\n", score);
  270. // getchar();
  271. // flag = readMap(level, map);
  272. //}
  273. //else if (level==4){
  274. // printf("CONGRATS YOU HAVE CLEARED ALL THE LEVELS!\n");
  275. // if (hs<score) hs = score;
  276. // rP=-1; cP=-1;
  277. // save(level,turn, score,rP,cP,hs);
  278. // done = 1;
  279. // getchar();
  280. //}
  281.  
  282. }while (dir!='5' && done == 0);
  283. }
  284. }
  285.  
  286. void menu2(char map[15][15]){
  287. FILE *fp;
  288. int n=0, done =0,flag =0, hs=0, level=1, score =0, turn=0, rP=0, cP=0, rF=0, cF=0;
  289. char dir;
  290. fp = fopen ("save", "r");
  291. if (fp == NULL){printf("NO FILE FOUND!");}
  292. else{
  293. while (!feof(fp)){
  294. fscanf(fp, "%d %d %d %d %d %d", &level, &turn, &score, &rP, &cP, &hs);
  295. n++;
  296. }
  297. flag=1;
  298. fclose(fp);
  299.  
  300.  
  301. flag = readMap(level, map);
  302. map[rP][cP]=1;
  303.  
  304. if (flag == 0) printf("NO FILE FOUND!");
  305. else {
  306. do{
  307. space();
  308. do{
  309. printKet(hs,level,score,turn);
  310. viewMap2(rP, cP, rF, cF, map);
  311. directions();
  312. scanf ("%c", &dir); fflush(stdin);
  313. }while (dir!='1' && dir!='2' && dir!='3' && dir!='4' && dir!='5');
  314.  
  315.  
  316. if (dir=='1'){
  317. done = moveV (1,rP, cP, rF, cF,level,score,turn,hs, map);
  318. }
  319. else if (dir == '2'){
  320. //down (rP, cP, rF, cF, level,score,turn,map);
  321. done = moveV (2,rP, cP, rF, cF,level,score,turn,hs, map);
  322. }
  323. else if (dir == '3'){
  324. //left (rP, cP, rF, cF, level,score,turn,map);
  325. done = moveH (3,rP, cP, rF, cF,level,score,turn,hs,map);
  326. }
  327. else if (dir == '4'){
  328. done = moveH (4,rP, cP, rF, cF, level,score,turn,hs,map);
  329. }
  330. }while (dir!='5' || done == 0);
  331. }
  332. }
  333. }
  334. void main(){
  335. char map[15][15]={""};
  336. char choose = mainMenu();
  337. if (choose == '1'){menu1(map);}
  338. else if (choose =='2') {menu2(map);}
  339. else {
  340. space();
  341. printf("Thankyou for playing!");
  342. }
  343. getchar();
  344. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement