Advertisement
Guest User

Untitled

a guest
May 25th, 2020
28
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.27 KB | None | 0 0
  1. #include<stdio.h>
  2. #include <windows.h>
  3. #include<dos.h>
  4. #include<ctype.h>
  5. #include<string.h>
  6. #include<conio.h>
  7. #include<stdlib.h>
  8. #define TOP 1
  9. #define DOWN 2
  10. #define LEFT 3
  11. #define RIGHT 4
  12. void score(int s=1)
  13. {
  14. static unsigned long sc=0;
  15. window(70,22,78,23);
  16. if(s)
  17. {
  18. sc=sc+100;
  19. cprintf(" ");
  20. window(70,22,78,23);
  21. cprintf("%ld",sc);
  22. }
  23. else
  24. sc=0;
  25. }
  26. void status(char *s,int c=WHITE)
  27. {
  28. window(70,23,78,25);
  29. textcolor(c);
  30. cprintf("%s",s);
  31. for(int x=strlen(s);x<7;x++)
  32. cprintf(" ");
  33. textcolor(WHITE);
  34. }
  35. void main()
  36. {
  37. clrscr();
  38. _setcursortype(_NOCURSOR);
  39. textcolor(WHITE);
  40. cprintf("\n ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ");
  41. for(int i=0;i<17;i++)
  42. cprintf(" ³ ³ ");
  43. cprintf(" ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ");
  44. cprintf(" ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ Press 'x' to Exit ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ");
  45. cprintf(" ³ S N A K E G A M E ³ Press 'p' to Pause and Play ³ SCORE : 0 ³ ");
  46. cprintf(" ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ STATUS: Playing ³ ");
  47. cprintf(" ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ");
  48. int snkx[20],snky[20],d=LEFT,p=0,sz=6,restart=1;
  49. while(1)
  50. {
  51. if(restart)
  52. {
  53. for(i=0;i<6;i++)
  54. snkx[i]=30+i*2;
  55. for(i=6;i<20;i++)
  56. snkx[i]=0;
  57. for(i=0;i<20;i++)
  58. snky[i]=9;
  59. sz=6;
  60. p=0;
  61. d=LEFT;
  62. restart=0;
  63. score();
  64. window(6,3,76,19);
  65. for(i=0;i<610;i++)
  66. cprintf(" ");
  67. }
  68. int x,y;
  69. if(p!=1)
  70. {
  71. randomize();
  72. do{
  73. x=random(70)+6;
  74. }while(x%2==1);
  75. y=random(16)+3;
  76. p=1;
  77. window(x,y,x+1,y+1);
  78. textcolor(LIGHTGREEN);
  79. cprintf("%c",1);
  80. textcolor(WHITE);
  81. }
  82. while(!kbhit())
  83. {
  84. status("Playing",LIGHTGREEN);
  85. window(snkx[sz-1],snky[sz-1],snkx[sz-1]+2,snky[sz-1]+2);
  86. cprintf(" ");
  87. for(i=0;i<sz-1;i++)
  88. {
  89. window(snkx[i],snky[i],snkx[i]+1,snky[i]+1);
  90. cprintf("");
  91. }
  92. for(i=sz-1;i>=1;i--)
  93. {
  94. snkx[i]=snkx[i-1];
  95. snky[i]=snky[i-1];
  96. }
  97. switch(d)
  98. {
  99. case RIGHT : snkx[0]+=2; break;
  100. case LEFT : snkx[0]-=2; break;
  101. case TOP : snky[0]-=1; break;
  102. case DOWN : snky[0]+=1;
  103. }
  104. delay(200);
  105. if(x==snkx[0] && y==snky[0])
  106. {
  107. int f=0;
  108. do{
  109. do{
  110. x=random(70)+6;
  111. }while(x%2==1);
  112. y=random(16)+3;
  113. for(i=0;i<sz;i++)
  114. if(snkx[i]==x && snky[i]==y)
  115. f=1;
  116. }while(f);
  117. p=1;
  118. window(x,y,x+1,y+1);
  119. textcolor(LIGHTGREEN);
  120. cprintf("%c",1);
  121. textcolor(WHITE);
  122.  
  123. score();
  124. sz++;
  125.  
  126. switch(d)
  127. {
  128. case RIGHT : snkx[sz-1]+=2;
  129. snky[sz-1]=snky[sz-2];
  130. break;
  131. case LEFT : snkx[sz-1]-=2;
  132. snky[sz-1]=snky[sz-2];
  133. break;
  134. case TOP : snky[sz-1]-=1;
  135. snkx[sz-1]=snkx[sz-2];
  136. break;
  137. case DOWN : snky[sz-1]+=1;
  138. snkx[sz-1]=snkx[sz-2];
  139. }
  140. }
  141. int sflag=0;
  142. for(i=0;i<sz-1;i++)
  143. if(snkx[sz-1]==snkx[i] && snky[sz-1]==snky[i])
  144. {
  145. sflag=1;
  146. break;
  147. }
  148. if(snkx[0]<5 || snkx[0]>76 || snky[0]<3 || snky[0]>19)
  149. sflag=1;
  150. if(sflag)
  151. {
  152. textcolor(LIGHTRED);
  153. for(i=1;i<sz;i++)
  154. {
  155. window(snkx[i],snky[i],snkx[i]+1,snky[i]+1);
  156. cprintf("");
  157. }
  158. status("Stoped",LIGHTRED);
  159. score(0);
  160. restart=1;
  161. break;
  162. }
  163. }
  164. char ch=getch();
  165. switch(tolower(ch))
  166. {
  167. case 'x' : return;
  168. case 'p' :
  169. status("Paused");
  170. getch();
  171. break;
  172. case 0 : {
  173. char chh=getch();
  174. switch(chh)
  175. {
  176. case 72 :{
  177. if(d==LEFT || d== RIGHT)
  178. d=TOP;
  179. } break;
  180. case 80 :{
  181. if(d==LEFT || d== RIGHT)
  182. d=DOWN;
  183. } break;
  184. case 75 :{
  185. if(d==TOP || d==DOWN)
  186. d=LEFT;
  187. } break;
  188. case 77 :{
  189. if(d==TOP || d==DOWN)
  190. d=RIGHT;
  191. }
  192. }
  193. } break;
  194. }
  195. }
  196. } // main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement