Я делаю программу «Случайная прогулка», и я не могу заставить бары отображаться правильно.Как это правильно отформатировать?
Вот мой код (я включать только то, что мне нужна помощь):
#include <iostream>
#include <conio.h>
#include <string>
#include <ctime>
#include <random>
using namespace std;
int main() {
srand(time(0)); // make it "random"
int max;
int min;
int location; //location of goat on bridge
int steps;
int total_steps;
int choice;
int move; // go forward or backward
for (;;) { // Keep running until user quits
system("CLS");
cout << "Random Walk Simulator" << endl;
cout << "1) Display Trial " << endl;
cout << "2) Run Statistics Over 50 Trials " << endl;
cout << "3) Quit. " << endl;
cin >> choice; // get choice
cout << "\n";
if (choice == 1) { // Display Trial
steps = 1;
location = 4; // center of bridge
cout << "Step 0: | * | " << endl;
while (location >= 1 && location <= 7) { // Keep running until goat falls off bridge
move = rand() % 2 + 0; // 0 and 1
if (move == 0) { // Move backward
location--;
}
if (move == 1) { // Move forward
location++;
}
switch (location) { // Show location
case 0: cout << "Step " << steps << ": | | " << endl;
break;
case 1: cout << "Step " << steps << ": |* | " << endl;
break;
case 2: cout << "Step " << steps << ": | * | " << endl;
break;
case 3: cout << "Step " << steps << ": | * | " << endl;
break;
case 4: cout << "Step " << steps << ": | * | " << endl;
break;
case 5: cout << "Step " << steps << ": | * | " << endl;
break;
case 6: cout << "Step " << steps << ": | * | " << endl;
break;
case 7: cout << "Step " << steps << ": | *| " << endl;
break;
case 8: cout << "Step " << steps << ": | | " << endl;
break;
default: break;
}
steps++; // Iterate steps
}
cout << "\nTotal steps taken: " << (steps - 1) << endl; // (steps-1) since I start the goat off at the center of the bridge
system("PAUSE");
}
Вот пример вывода:
Random Walk Simulator
1) Display Trial
2) Run Statistics over 50 Trials
3) Quit
1
Step 0: | * |
Step 1: | * |
Step 2: | * |
Step 3: | * |
Step 4: | * |
Step 5: | * |
Step 6: | * |
Step 7: | * |
Step 8: | * |
Step 9: | * |
Step 10: | * |
Step 11: | * |
Step 12: | * |
Step 13: |* |
Step 14: | |
Как отформатировать это правильно? Я вроде как новичок в C++, извините.
При правильном форматировании вы имеете в виду, что линия для шага 10 должна быть выровнена с шагом 9? –
, например: 'cout <<" Шаг "<< setw (5) << шагов <<": | ... "'. Не забудьте добавить '#include'. Или вы можете добавить '' \ t "' перед '" | "' –
Xonxt
_ @ Kawaiiii_ BTW: я уверен, что вы получите дополнительные баллы за свое решение, если вы собираетесь заменить 'switch () 'с общим циклом (рассмотрим дополнительную функцию), который выводит символы' '' 'и' '* '' в правильном порядке и в балансе. –