Advertisement
Guest User

kvadrat well done laba 6

a guest
Dec 14th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.40 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <Windows.h>
  3. #include <stdlib.h>
  4. #include <iostream>
  5. #include <conio.h>
  6. #include <time.h>
  7. using namespace std;
  8. int x, y;
  9.  
  10. void sound(int v) {
  11. if ((v == 1) && ((x == 0) || (y == 0) || (x == 45) || (y == 23)))
  12. Beep(1000, 250);
  13. if (v == 0)
  14. Beep(2000, 500);
  15. }
  16.  
  17. void out(char i, char f) {
  18. system("cls");
  19. for (int i = 0; i < y; i++)
  20. cout << endl;
  21. for (int i = 0; i < x; i++)
  22. cout << " ";
  23. for (int j = 0; j < 6; j++)
  24. cout << char(219);
  25. cout << endl;
  26. for (int i = 0; i < x; i++)
  27. cout << " ";
  28. printf("%c %c%c %c\n", char(219), i, f, char(219));
  29. for (int i = 0; i < x; i++)
  30. cout << " ";
  31. for (int j = 0; j < 6; j++)
  32. cout << char(219);
  33. sound(1);
  34. }
  35.  
  36. int move(int c, char k, char z) {
  37. bool r;
  38. switch (c) {
  39. case 77:
  40. {r = GetAsyncKeyState(16);
  41. if (r == true) {
  42. x = 45;
  43. r = 0;
  44. }
  45. else {
  46. if (x != 45)
  47. x++;
  48.  
  49. }
  50. out(k, z);
  51. r = 0;
  52. break; }
  53. case 75:
  54. { r = GetAsyncKeyState(16);
  55. if (r == true) {
  56. x = 0;
  57. r = 0;
  58. }
  59. else {
  60. if (x != 0)
  61. x--;
  62.  
  63. }
  64. out(k, z);
  65. r = 0;
  66. break; }
  67. case 80:
  68. { r = GetAsyncKeyState(16);
  69. if (r == true) {
  70. y = 23;
  71. r = 0;
  72. }
  73. else {
  74. if (y != 23)
  75. y++;
  76.  
  77. }
  78. out(k, z);
  79. r = 0; break; }
  80. case 72:
  81. { r = GetAsyncKeyState(16);
  82. if (r == true) {
  83. y = 0;
  84. r = false;
  85. }
  86. else {
  87. if (y != 0)
  88. y--;
  89.  
  90. }
  91. out(k, z);
  92. r = 0; break; }
  93. case 224: {
  94. break;
  95. }
  96. case 71: {
  97. x = 23;
  98. y = 11;
  99. out(k, z);
  100. break;
  101. }
  102. case 27: {
  103. c = _getch();
  104. if (c == 13) {
  105. system("cls");
  106. return 1;
  107. }
  108. break;
  109. }
  110. default: {
  111. sound(0);
  112. break;
  113. }
  114. }
  115. return 0;
  116. }
  117.  
  118. void cursorto(int i, int j)
  119. {
  120. COORD curPos;
  121. curPos.X = x + i;
  122. curPos.Y = y + j;
  123. SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), curPos);
  124. }
  125.  
  126. int main()
  127. {
  128. HANDLE out_handle = GetStdHandle(STD_OUTPUT_HANDLE);
  129. COORD crd = { 50, 25 };
  130. SMALL_RECT src = { 0, 0, crd.X , crd.Y };
  131. SetConsoleWindowInfo(out_handle, true, &src);
  132. SetConsoleScreenBufferSize(out_handle, crd);
  133. srand(time(NULL));
  134. int i = 1 + rand() % 15;
  135. SetConsoleTextAttribute(out_handle, i);
  136. x = 23;
  137. y = 11;
  138. char k = char(32);
  139. char z = char(32);
  140. out(k, z);
  141. cursorto(2, 1);
  142. k = _getch();
  143. z = _getch();
  144. out(k, z);
  145. int c = _getch();
  146. int q = 0;
  147. while (q != 1) {
  148. q = move(c, k, z);
  149. if (q == 1) {
  150. return 0;
  151. }
  152. cursorto(5, 2);
  153. c = _getch();
  154. }
  155. return 0;
  156. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement