Игры "Автослалом" и "Посадка на Луну" на 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;
3
6 комментариев