在C ++中移动基于文本的杆位游戏时遇到问题

时间:2013-11-27 17:26:52

标签: c++ visual-studio-2010 visual-c++ text-based

所以我的项目是用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;


}

1 个答案:

答案 0 :(得分:2)

像这样if (counter = 0)的行会将counter设置为零,如果它为零则不测试。您需要改为使用if (counter == 0)

更一般的评论是你永远不应该有这么多重复的源代码 - 你可以使用一个循环去除所有那些空行cout,然后有另一个循环来生成移动的空格车侧身。