-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTask 2.4.cpp
More file actions
65 lines (49 loc) · 2.49 KB
/
Copy pathTask 2.4.cpp
File metadata and controls
65 lines (49 loc) · 2.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
system("chcp 1251");
srand(time(NULL));
int x, y, x0, y0, i, point, sum = 0;
const int target = 50; //Колличество очков, которое необходимо набрать для завершения игры
cout << "Стрельба по мишени! \n";
cout << "Ваша задача набрать " << target << " очков за наименьшее число выстрелов. Выстрел осуществляется введением координат x и y \n";
cout << "Игровое поле размером 50 Х 50 прямоугольное. От (0; 0) до (50; 50) \n";
cout << "Радиус мишени 10 (1 очко) \n";
cout << "Pадиус 7 (2 очка) \n";
cout << "Радиус 5 (5 очков) \n";
cout << "Радиус 3 (10 очков) \n\n";
x0 = rand() % 31 + 10; //Координаты центра мишени в диапазоне (10; 10) - (40; 40)
y0 = rand() % 31 + 10;
for (i = 1; sum < target; i++) //Можно заменить условие (набрать очки) на определённое кол-во выстрелов
{
cout << "Выстрел " << i << ": \n";
cout << "x = "; cin >> x;
cout << "y = "; cin >> y;
x -= x0; y -= y0; //Т.к. начало координанат не в точке (0; 0) - вычитаем координаты центра
x += rand() % 5 - 2; //Помеха - случайное отклонение от прицела в диапазоне (-2; 2)
y += rand() % 5 - 2;
point = 0;
if (x * x + y * y <= 100) //R = 10 (максимальный радиус мишени) Point = 1
point = 1;
if (x * x + y * y <= 49) //R = 7. Points = 2
point = 2;
if (x * x + y * y <= 25) //R = 5. Points = 5
point = 5;
if (x * x + y * y <= 9) //R = 3. Points = 10
point = 10;
sum += point;
cout << point << " points \n";
cout << "Всего очков: " << sum << endl << endl;
}
cout << "Координаты центра: x = " << x0 << "; y = " << y0 << endl;
if (i <= 20)
cout << "Вы - снайпер! \n";
else
if (i <= 30)
cout << "Вы - стрелок \n";
else
cout << "Вы ещё новичок \n";
return 0;
}