Как двигать лошадей в игре скачки.
Игра На Скачках
В этой игре на экране появляется несколько лошадей, и, начиная слева, мчитесь к финишу справа.
Скорость каждой лошади определяется случайным образом, поэтому нет никакой возможности заранее определить, какая из них победит. Программа использует консольную графику,поэтому лошади легко, хотя и несколько грубо, отображаются.
Когда наша программа запускается, она просит пользователя указать дистанцию забега и количество лошадей, которые будут бегать в нем. Классическая единица измерения дистанции для скачек-это Фарлонг, который составляет 1/8 мили. Типичные гонки - 6, 8, 10 или 12 фарлонгов. Программа рисует вертикальные линии, соответствующие каждому фарлонгу, а также линии старта и финиша. Каждая лошадь представлена прямоугольником с номером посередине.
Я пробовал разные маленькие шаги, которые не выполнили задачу полностью.
Я двигаю лошадь Сигле во время казни.
Что я уже пробовал:
#include <iostream> #include <cstdlib> #include<ctime> #include <cstring> #include <conio.h> #include <windows.h> #include <string> using namespace std; bool gameover; int speed; const int length = 20; const int width = 20; int x=0,y=0; void draw() { for (int i = 0; i < length; i++) { system("cls"); for (int j = 0; j < width; j++) { if (j == x) cout << "[0]"; else if (j % 2 == 0&&x<j) cout << "|"; else cout << " "; } x++; speed = rand() % 1000; Sleep(speed); cout << endl; { for (int j = 0; j < width; j++) { if (j == y) cout << "[1]"; else if (j % 2 == 0 && y<j) cout << "|"; else cout << " "; } y++; speed = rand() % 1000; Sleep(speed); cout << endl; } } } int main() { srand(time(NULL)); speed = rand() % 1000; { draw(); } system("pause"); return 0; }
0x01AA
Вместо "я пробовал разные маленькие шаги, которые не выполнили задачу полностью" вы должны объяснить, что вы пробовали и что вы получаете. то, что вы ожидали получить.
KarstenK
вам нужно запомнить положение каждой лошади. Я думаю,что ваша функция рисования имеет некоторый недостаток дизайна в цикле. Используйте подпрограммы, такие как " drawLine"