Advertisement
YorKnEz

Untitled

Apr 25th, 2019
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.35 KB | None | 0 0
  1. /*
  2. *
  3. * Copyright Alex 2019
  4. *
  5. */
  6.  
  7. #include <stdio.h>
  8. #include <stdlib.h>
  9. #include <time.h>
  10. #include <conio.h>
  11. #include <windows.h>
  12. #include <string.h>
  13.  
  14. #include <iostream>
  15.  
  16. using std::cin;
  17. using std::cout;
  18.  
  19. struct snake {
  20. int x;
  21. int y;
  22. }v[400];
  23.  
  24. char board[20][20] = {
  25. '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*',
  26. '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*',
  27. '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*',
  28. '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*',
  29. '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*',
  30. '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*',
  31. '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*',
  32. '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*',
  33. '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*',
  34. '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*',
  35. '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*',
  36. '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*',
  37. '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*',
  38. '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*',
  39. '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*',
  40. '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*',
  41. '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*',
  42. '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*',
  43. '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*',
  44. '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*',
  45. };
  46.  
  47. void wait(int milliseconds) {
  48. Sleep(milliseconds);
  49. }
  50.  
  51. int main()
  52. {
  53. srand(time(0));
  54.  
  55. int boardHeight = 20, boardWidth = 20;
  56. int xpos = (3*boardWidth)/4, ypos = boardWidth/2, snakeSize = 3;
  57.  
  58. for (int i = 0; i < snakeSize; i++) {
  59. v[i].x = xpos;
  60. v[i].y = ypos;
  61.  
  62. board[xpos][ypos] = 'o';
  63.  
  64. xpos++;
  65. //ypos++;
  66. }
  67.  
  68. int max = boardHeight-1;
  69. int min = 0;
  70. int n = (rand() % (max - min + 1)) + min;
  71. int n2 = (rand() % (max - min + 1)) + min;
  72.  
  73. board[n][n2] = 'x';
  74.  
  75. for (int i = 0; i < boardHeight; i++) {
  76. for (int j = 0; j < boardWidth; j++) {
  77. printf("%c", board[i][j]);
  78. }
  79.  
  80. printf("\n");
  81. }
  82.  
  83. char c = 'w';
  84.  
  85. while (true) {
  86. if (kbhit()) c=getch();
  87.  
  88. board[v[snakeSize-1].x][v[snakeSize-1].y] = '*';
  89.  
  90. if (c == 'a') {
  91. for (int i = snakeSize-2; i >= 0; i--) {
  92. v[i+1].x = v[i].x;
  93. v[i+1].y = v[i].y;
  94. }
  95.  
  96. v[0].y--;
  97. } else if (c == 'd') {
  98. for (int i = snakeSize-2; i >= 0; i--) {
  99. v[i+1].x = v[i].x;
  100. v[i+1].y = v[i].y;
  101. }
  102.  
  103. v[0].y++;
  104. } else if (c == 'w') {
  105. for (int i = snakeSize-2; i >= 0; i--) {
  106. v[i+1].x = v[i].x;
  107. v[i+1].y = v[i].y;
  108. }
  109.  
  110. v[0].x--;
  111. } else if (c == 's') {
  112. for (int i = snakeSize-2; i >= 0; i--) {
  113. v[i+1].x = v[i].x;
  114. v[i+1].y = v[i].y;
  115. }
  116.  
  117. v[0].x++;
  118. }
  119.  
  120. if (v[0].x < 0) {
  121. v[0].x = boardHeight;
  122. }
  123.  
  124. if (v[0].x > boardHeight) {
  125. v[0].x = 0;
  126. }
  127.  
  128. if (v[0].y < 0) {
  129. v[0].y = boardWidth;
  130. }
  131.  
  132. if (v[0].y > boardWidth) {
  133. v[0].y = 0;
  134. }
  135.  
  136. board[v[0].x][v[0].y] = 'o';
  137.  
  138. if (v[0].x == n && v[0].y == n2) {
  139. snakeSize++;
  140.  
  141. v[snakeSize-1].x = v[snakeSize-2].x;
  142. v[snakeSize-1].y = v[snakeSize-2].y;
  143.  
  144. board[v[snakeSize-1].x][v[snakeSize-1].y] = 'o';
  145.  
  146. n = (rand() % (max - min + 1)) + min;
  147. n2 = (rand() % (max - min + 1)) + min;
  148.  
  149. for (int i = 0; i < snakeSize; i++) {
  150. if (n == v[i].x && n2 == v[i].y) {
  151. n = (rand() % (max - min + 1)) + min;
  152. n2 = (rand() % (max - min + 1)) + min;
  153. }
  154. }
  155.  
  156. board[n][n2] = 'x';
  157. }
  158.  
  159. for (int i = 1; i < snakeSize-1; i++) {
  160. if (v[0].x == v[i].x && v[0].y == v[i].y) {
  161. printf("YOU LOST MOTHERFUCKER!");
  162.  
  163. return 0;
  164. }
  165. }
  166.  
  167. system("cls");
  168.  
  169. for (int i = 0; i < boardHeight; i++) {
  170. for (int j = 0; j < boardWidth; j++) {
  171. printf("%c", board[i][j]);
  172. }
  173.  
  174. printf("\n");
  175. }
  176.  
  177. wait(1000 / 10);
  178. }
  179. return 0;
  180. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement