Игры "Автослалом" и "Посадка на Луну" на goto-ориентированном C++
Я продолжаю публиковать исходный код коротких игр на так полюбившемся вам goto-ориентированном C++, в первой игре - 41 строка кода, во второй - 47.
Экран игры "Автослалом"
Экран игры "Посадка на Луну"
Игра «Автослалом»
1 s:
2 int p = 15;
3 int a = 10;
4 b:
5 a = a + Random32(-1, 1);
6 At(0, 17);
7 Print("###############################");
8 At(a, 17);
9 Print(" ");
10 int y = 0;
11 int x = 0;
12 h:
13 if (x < 32) {
14 At(x, y);
15 Print(Screen(x, y + 1));
16 x = x + 1;
17 goto h;
18 }
19 y = y + 1;
20 if (y < 17) {
21 x = 0;
22 goto h;
23 }
24 if (IsKey(4)) {
25 p = p - 1;
26 }
27 if (IsKey(5)) {
28 p = p + 1;
29 }
30 if (Screen(p, 0) == "#") {
31 At(10, 10);
32 Print("Game Over");
33 Input();
34 Cls();
35 goto s;
36 }
37 At(p, 0);
38 Print("^");
39 Sleep(0.07);
30 Show();
41 goto b;
Игра «Посадка на Луну»
1 s:
2 double y = 110;
3 double v = 3;
4 double n = Time();
5 double f = 1000;
6 q:
7 double m = n;
8 n = Time();
9 double t = n - m;
10 double a = 1.62;
11 if (IsKeyDown(6)) {
12 if (f > 0) {
13 f = f - 200 * t;
14 a = -9;
15 if (f < 0) {
16 f = 0;
17 }
18 }
19 }
20 y = y - (v * t + a * t * t / 2);
21 v = v + a * t;
22 if (y <= 0) {
23 At(10,10);
24 if (v > 3) {
25 Print("Авария!");
26 goto w;
27 }
28 Print("Мягкая посадка!");
29 w:
30 Input();
31 goto s;
32 }
33 Clear();
34 At(0, 17);
35 Print("Скорость:");
36 Print(v);
37 At(2, 16);
38 Print("Высота:");
39 Print(y);
40 At(1, 15);
41 Print("Топливо:");
42 Print(f);
43 Circle(128, y+3, 3);
44 Plot(0, 0);
45 Draw(255, 0);
46 Show();
47 goto q;
6 комментариев