Поэтому мой проект состоит в том, чтобы сделать текстовую игру с поул-позицией в c++. Мой счетчик, похоже, не работает. он только подсчитывает, но никогда не отступает. Прямо сейчас я беспокоюсь только о том, чтобы двигаться бок о бок. Это мой код:
void move(){
system("cls");
//movement testing
char move = 'l';
int posX = 10;
int posY = 0;
int counter = 1;
while (true){
if (move == 'l')
counter = counter +1;
else if (move == 'j')
counter = counter -1;
if (counter = 0){
counter = 0;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<" | ____ "<< endl;
cout <<" | _[THIS]_ "<< endl;
cout <<" | [IS A CAR] "<< endl;
cout <<" | O||[]___[]||O "<< endl;
cout <<"_______________________________________________________________________________" <<endl;
cout << "Current Position = [" << posX << ","<<posY << "] <Enter a move>";
cin >> move;
}
if (counter = 1){
system("cls");
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<" | ____ "<< endl;
cout <<" | _[THIS]_ "<< endl;
cout <<" | [IS A CAR] "<< endl;
cout <<" | O||[]___[]||O "<< endl;
cout <<"_______________________________________________________________________________" <<endl;
cout << "Counter = [" << counter << "] <Enter a move>";
cin >> move;
}
if (counter = 2){
system("cls");
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<" | ____ "<< endl;
cout <<" | _[THIS]_ "<< endl;
cout <<" | [IS A CAR] "<< endl;
cout <<" | O||[]___[]||O "<< endl;
cout <<"_______________________________________________________________________________" <<endl;
cout << "Counter = [" <<counter << "] <Enter a move>";
cin >> move;
}
if (counter = 3){
system("cls");
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<" | ____ "<< endl;
cout <<" | _[THIS]_ "<< endl;
cout <<" | [IS A CAR] "<< endl;
cout <<" | O||[]___[]||O "<< endl;
cout <<"_______________________________________________________________________________" <<endl;
cout << "Counter = [" <<counter << "] <Enter a move>";
cin >> move;
}
if (counter = 4){
system("cls");
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<" | ____ "<< endl;
cout <<" | _[THIS]_ "<< endl;
cout <<" | [IS A CAR] "<< endl;
cout <<" | O||[]___[]||O "<< endl;
cout <<"_______________________________________________________________________________" <<endl;
cout << "Counter = [" <<counter << "] <Enter a move>";
cin >> move;
}
if (counter = 5){
system("cls");
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<" | ____ "<< endl;
cout <<" | _[THIS]_ "<< endl;
cout <<" | [IS A CAR] "<< endl;
cout <<" | O||[]___[]||O "<< endl;
cout <<"_______________________________________________________________________________" <<endl;
cout << "Counter = [" <<counter << "] <Enter a move>";
cin >> move;
}
if (counter = 6){
system("cls");
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<" | ____ "<< endl;
cout <<" | _[THIS]_ "<< endl;
cout <<" | [IS A CAR] "<< endl;
cout <<" | O||[]___[]||O "<< endl;
cout <<"_______________________________________________________________________________" <<endl;
cout << "Counter = [" <<counter << "] <Enter a move>";
cin >> move;
}
if (counter = 7){
system("cls");
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<" | ____ "<< endl;
cout <<" | _[THIS]_ "<< endl;
cout <<" | [IS A CAR] "<< endl;
cout <<" | O||[]___[]||O "<< endl;
cout <<"_______________________________________________________________________________" <<endl;
cout << "Counter = [" <<counter << "] <Enter a move>";
cin >> move;
}
if (counter = 8){
system("cls");
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<" | ____ "<< endl;
cout <<" | _[THIS]_ "<< endl;
cout <<" | [IS A CAR] "<< endl;
cout <<" | O||[]___[]||O "<< endl;
cout <<"_______________________________________________________________________________" <<endl;
cout << "Counter = [" <<counter << "] <Enter a move>";
cin >> move;
}
if (counter = 9){
system("cls");
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<endl;
cout <<" | ____ "<< endl;
cout <<" | _[THIS]_ "<< endl;
cout <<" | [IS A CAR] "<< endl;
cout <<" | O||[]___[]||O "<< endl;
cout <<"_______________________________________________________________________________" <<endl;
cout << "Counter = [" <<counter << "] <Enter a move>";
cin >> move;
}
else
counter = counter - 1;
//cout << posX << ","<<posY <<endl;
}
Линия, подобная этой, if (counter = 0)
установит счетчик к нулю, а не проверяет, равна ли она нулю. Вместо этого вам нужно использовать if (counter == 0)
.
Более общий комментарий состоит в том, что у вас никогда не должно быть много повторяющегося исходного кода - вы могли бы использовать цикл, чтобы избавиться от всех этих пустых строк cout
s, а затем еще один цикл для создания интервала для перемещения автомобиля вбок.
for(int i=0; i<NUM_OF_NEWLINES; ++i) cout << endl;
<- просто чтобы уменьшить размер кода :) Обнаружить ошибку будет легче.