Wiecie co jest nie tak z tą funkcją? Proszę o rady.
enum DIRECTION { DIR_LEFT = "lewo", DIR_RIGHT = "prawo", DIR_STRAIGHT = "prosto"};
int Odnajdywanie(string Cel, bool bPomoc)
{
cout << "ODNAJDYWANIE WLASCIWEJ DROGI:" << endl;
cout << "--------------" << endl;
cout << "Odszukaj droge do: " << Cel << endl << endl;
cout << "Zasady: przed twoim celem 5 zakretow, a kazdy to 3 mozliwe drogi.\nPoprawna kombinacja drogi jest losowana kazdorazowo. Przy kazdym z rozstajow wybierz kierunkek\nw ktorym sie udajesz\n(lewo/prawo/prosto). Jesli trafisz w slepy zaulek, rozpoczynasz od nowa." << endl;
Dalej();
DIRECTION PoprawnyKierunek[4];
for (int y = 0; y < 5; y++) {
int nLogic = rand() % 3 + 1;
switch (nLogic) {
case 1: PoprawnyKierunek[y] = DIR_LEFT;
case 2: PoprawnyKierunek[y] = DIR_RIGHT;
case 3: PoprawnyKierunek[y] = DIR_STRAIGHT;
}
}
bool bMeta = false;
do {
for (int i = 0; i < 5; i++) {
cout << "Zakret numer " << i + 1 << "." << endl;
cout << "Wybierz kierunek ktorym podazysz. (lewo/prawo/prosto)" << endl;
string KierunekWpisywany[4];
DIRECTION Kierunek[4];
do {
if (bPomoc == true) cout << "[POMOC OSOBY TRZECIEJ] Wydaje mi sie, ze trzeba pojechac w " << static_cast<string>(PoprawnyKierunek[i]) << endl;
bBlednaKomenda = false;
cin >> KierunekWpisywany[i];
if (KierunekWpisywany[i] == "lewo") Kierunek[i] = DIR_LEFT;
else if (KierunekWpisywany[i] == "prawo") Kierunek[i] = DIR_RIGHT;
else if (KierunekWpisywany[i] == "prosto") Kierunek[i] = DIR_STRAIGHT;
else if (KierunekWpisywany[i] == "lewo" && KierunekWpisywany[i] == "prawo" && KierunekWpisywany[i] == "prosto") bBlednaKomenda = true;
} while (bBlednaKomenda == true);
cout << "Podazasz w kierunku: " << static_cast<string>(Kierunek[i]) << endl << endl;
bool bZlaDroga;
if (Kierunek[i] != PoprawnyKierunek[i]) bZlaDroga = true;
if (i == 4) {
if (bZlaDroga == false) {
cout << "Docierasz do celu: " << Cel << endl << endl;
bMeta = true;
}
else if (bZlaDroga == true) {
cout << "Slepy zaulek! Cofamy sie i zaczynamy od poczatku!" << endl << endl;
}
}
Dalej();
}
} while (bMeta == false);
return 0;
}