Как избежать использования переменных указателя и пошаговой ссылки в этой программе? как сказал мой инструктор, нет необходимости использовать указатели. Это черепаха и симулятор заяц, вы будете использовать генерацию чисел, чтобы разработать симуляцию этого памятного события.Как избежать использования переменных указателя и пошаговой ссылки в этой программе?
#include <iostream>
using std::cout;
using std::endl;
#include <cstdlib>
using std::rand;
using std::srand;
#include <ctime>
using std::time;
#include <iomanip>
using std::setw;
const int RACE_END = 70;
// prototypes
void moveTortoise(int *const);
void moveHare(int *const);
void printCurrentPositions(const int *const, const int *const);
int main()
{
int tortoise = 1;
int hare = 1;
int timer = 0;
srand(time(0));
cout << "ON YOUR MARK, GET SET\nBANG !!!!"
<< "\nAND THEY'RE OFF !!!!\n";
// loop through the events
while (tortoise != RACE_END && hare != RACE_END)
{
moveTortoise(&tortoise);
moveHare(&hare);
printCurrentPositions(&tortoise, &hare);
timer++;
} // end loop
if (tortoise >= hare)
cout << "\nTORTOISE WINS!!! YAY!!!\n";
else
cout << "\nHare wins. Yuch.\n";
cout << "\nTIME ELAPSED = " << timer << " seconds" << "\n" << endl;
system("pause");
return 0; // indicates successful termination
} // end main
// progress for the tortoise
void moveTortoise(int * const turtlePtr)
{
int x = 1 + rand() % 10; // random number 1-10
if (x >= 1 && x <= 5) // fast plod
*turtlePtr += 3;
else if (x == 6 || x == 7) // slip
*turtlePtr -= 6;
else // slow plod
++(*turtlePtr);
if (*turtlePtr < 1)
*turtlePtr = 1;
else if (*turtlePtr > RACE_END)
*turtlePtr = RACE_END;
} // end function moveTortoise
// progress for the hare
void moveHare(int * const rabbitPtr)
{
int y = 1 + rand() % 10; // random number 1-10
if (y == 3 || y == 4) // big hop
*rabbitPtr += 9;
else if (y == 5) // big slip
*rabbitPtr -= 12;
else if (y >= 6 && y <= 8) // small hop
++(*rabbitPtr);
else if (y > 8) // small slip
*rabbitPtr -= 2;
if (*rabbitPtr < 1)
*rabbitPtr = 1;
else if (*rabbitPtr > RACE_END)
*rabbitPtr = RACE_END;
} // end function moveHare
// display new position
void printCurrentPositions(const int * const snapperPtr,
const int * const bunnyPtr)
{
if (*bunnyPtr == *snapperPtr)
cout << setw(*bunnyPtr) << "OUCH!!!";
else if (*bunnyPtr < *snapperPtr)
cout << setw(*bunnyPtr) << 'H'
<< setw(*snapperPtr - *bunnyPtr) << 'T';
else
cout << setw(*snapperPtr) << 'T'
<< setw(*bunnyPtr - *snapperPtr) << 'H';
cout << '\n';
} // end function printCurrentPositions
Большое вам спасибо – user2184484