Undeclared, chociaż twierdzę że to deklarowałem!

0

w globalnym (poza jakąkolwiek funkcją) mam takie coś

enum direction { left = 1, right, straight };

a potem, w funkcji, w paru zagnieżdżonych pętlach i ifach:

direction PoprawnyKierunek[9];
    if (dTrudnosc == master) {
       uLiczbaZakretow = 10;
       uLiczbaProb = 2;
       for (int y = 0; y < 10; y++) {
             nLogic = random(3, 0);
                  switch (nLogic) {
                       case 1: PoprawnyKierunek[y] = left; break;
                       case 2: PoprawnyKierunek[y] = right; break;
                       case 3: PoprawnyKierunek[y] = straight;
                  }
       }
    }

Dlaczego left, right, straight są wg kompilatora niezadeklarowane?

0

Wrzuć go w typedef albo przed użyciem direction daj enum.

0

Ale po co znowu deklarować skoro global powinien tyczyć się WSZĘDZIE. Myślałem że to brak deklaracji tablicy ale też jest zagnieżdżona poza if'em.
Popieram Rava.

0

A kto powiedział, że masz go znowu deklarować? I dlaczego mnie(?) popierasz, skoro nikt inny nie zaproponował niczego innego?
I co to za język? Jakiś nowy C czy bardzo stary C++? Jaki kompilator?

0

Zamień left na direction::left

0

To akurat nie jest rozwiązanie, ba przy takim zapisie VS rzuci warninga warning C4482: nonstandard extension used: enum 'xxx' used in qualified name d:\biblioteki\dokumenty\visual studio 2010\projects\4fun\4fun\main.cpp 29

Za mało kodu, być może nie dołączasz tam gdzie trzeba pliku z tym enumem, może gdzieś przed nim zaginął jakiś średnik.

0

W przypadku braku średnika powinien być chyba błąd, tak?

/*
  Name: Tajne przez Poufne 3: The Shadow of Gecon
  Copyright: Ilnicki Studios GmbH
  Author: Pawe³ Ilnicki, Kamil Kowal, Mateusz Szatkowski
  Date: 03-01-13 19:58
  Description: Gra przygodowa z elementami losowoœci przygotowana na platformie wiersza poleceñ.
*/


#include <conio.h>
#include <iostream>

using namespace std;

/*----------------------------------
ZMIENNE GLOBALNE, STA£E I DEKLARACJE TYPÓW NIESTANDARDOWYCH
----------------------------------*/
//uczulam na KA¯DORAZOWE! sprawdzanie poprawnoœci sta³ych!!!
//nie przejmowaæ siê myln¹ nazw¹ nLogic - s¹ to zmienne przechowuj¹ce wyniki rzutu rand()
const int nLiczbaMisji = 10;

enum reason { death, surrender, throws };
enum direction { left = 1, right, straight };
enum difficulty { master, hard, normal, easy };

int nWywolaniaFunkcjiNext = 0, nLogic, nLogic2, nLogic3;

bool bBlednaKomenda;

/*----------------------------------
PRZYDATNE FUNKCJE POMOCNICZE
----------------------------------*/
int wait(int seconds)
{
    clock_t endwait;
    endwait = clock() + seconds * CLOCKS_PER_SEC ;
    while (clock() < endwait) {}
    cin.sync();

    return 0;
}

int random(int skala, int odejmij)
{
    int nLosowana;
    do {
            nLosowana = (rand() % skala + 1) - odejmij;
    } while (nLosowana <= 0);

    return nLosowana;
}

int pause()
{
    string strDalej;
    cout << "\n[WYMUSZONA PAUZA]\n\n";
    cin.sync();
    getch();

    return 0;
}

int clear() { system("cls"); }

int next(string Misja, int Ocena, string imie, string przezwisko, int zycie)
{
    clear();
    nWywolaniaFunkcjiNext++;
    
    cout << "\a---------------------------------------------------" << endl;
    cout << Misja << " - " << (nLiczbaMisji / nWywolaniaFunkcjiNext) * 100 << "% ukonczono\n";
    cout << "---------------------------------------------------\n";
    cout << "Bohater:        " << imie << endl;
    cout << "Reputacja:   " << przezwisko << endl;
    cout << "ZDROWIE:      " << zycie << "/100\n";
    cout << "---------------------------------------------------" << endl << endl;
    
    pause();
    return 0;
}

int gameover(reason rPowod, bool bNiestandardowy, string strUmiejetnosc, string strNiestandardowyKomunikat, unsigned uRzut, unsigned uProg)
{
    clear();
    
    cout << "\a\a\a\n\n\n\n------------------------" << endl;
    cout << "GAME OVER!\n";
    if (bNiestandardowy) cout << strNiestandardowyKomunikat << endl;
    else {
       switch (rPowod) {
              case death: cout << "Punkty zycia bohatera spadly do zera." << endl; break;
              case surrender: cout << "Podjales nieodpowiedzialna decyzje lub zaniechales gry." << endl; break;
              case throws: cout << "Przegrales w rzutach na " << strUmiejetnosc << " (Rzut: " << uRzut << " > Prog: " << uProg << ")" << endl; break;
              default: cout << "?" << endl;
       }
    }
    cout << "\nZa jednym podejsciem przeszedles " << (nLiczbaMisji / nWywolaniaFunkcjiNext) * 100 << "% gry." << endl;
    cout << "\n------------------------" << endl;

    pause();
    abort();
    return 0;
}

/*----------------------------------
MINIGIERKI W ROZGRYWCE
----------------------------------*/
int hacking(unsigned uIle)
{
    string tStrings[19], Password;

    for (int i = 0; i < uIle; i++) {
        nLogic = random(30, 0);
        switch (nLogic) {
           case 1: tStrings[i] = "mistify"; break;
           case 2: tStrings[i] = "crark5"; break;
           case 3: tStrings[i] = "uff5B"; break;
           case 4: tStrings[i] = "witcher2"; break;
           case 5: tStrings[i] = "symphony"; break;
           case 6: tStrings[i] = "impranacalego@"; break;
           case 7: tStrings[i] = "welldone"; break;
           case 8: tStrings[i] = "uhikin"; break;
           case 9: tStrings[i] = "fiyyyan4"; break;
           case 10: tStrings[i] = "presenttime"; break;
           case 11: tStrings[i] = "pornuchy"; break;
           case 12: tStrings[i] = "fixthis"; break;
           case 13: tStrings[i] = "xxx"; break;
           case 14: tStrings[i] = "dlaczegoja"; break;
           case 15: tStrings[i] = "trudnesprawy"; break;
           case 16: tStrings[i] = "he@ven---clVb"; break;
           case 17: tStrings[i] = "dariusz-smyczynski"; break;
           case 18: tStrings[i] = "timtirimti"; break;
           case 19: tStrings[i] = "beethoven"; break;
           case 20: tStrings[i] = "thedarkestofdays"; break;
           case 21: tStrings[i] = "bogus-linda"; break;
           case 22: tStrings[i] = "&maybe"; break;
           case 23: tStrings[i] = "dupa"; break;
           case 24: tStrings[i] = "spierniczaj"; break;
           case 25: tStrings[i] = "redtubecom"; break;
           case 26: tStrings[i] = "mma"; break;
           case 27: tStrings[i] = "noone"; break;
           case 28: tStrings[i] = "whyme!0"; break;
           case 29: tStrings[i] = "transmisja"; break;
           case 30: tStrings[i] = "onatanczydlamnie"; break;
           default: cout << "GAME ERROR: nLogic has higher or lower value than cases!\n\n";
        }
    }

    nLogic = random(3, 0);
    switch (nLogic) {
           case 1: Password = tStrings[uIle - 1]; break;
           case 2: Password = tStrings[uIle - 2]; break;
           case 3: Password = tStrings[uIle - 3]; break;
           default: Password = tStrings[uIle - 2];
    }

    for (int x = 0; x < uIle; x++) {
        nLogic = random(3, 0);
        switch (nLogic) {
               case 1: cout << "[email protected]" << tStrings[x] << "%$one\n"; break;
               case 2: cout << "*&^G^" << tStrings[x] << "HGG&*(*"; break;
               case 3: cout << "aaa%!" << tStrings[x] << "^%E$###"; break;
        }
    }

    wait(3);

    string PropozycjaPassword;

    for (int y = 0; y < 3; y++) {
        bBlednaKomenda = true;
        cout << "\nPodaj haslo: (pozostalo prob: " << y + 1 << "/3) ";
        cin >> PropozycjaPassword;

        if (PropozycjaPassword == Password) {
                        bBlednaKomenda = false;
                        break;
        }
    }
    if (bBlednaKomenda) {
                        cout << "\n\nNiepowodzenie operacji\n"; 
                        return 1;
    }

    if (!bBlednaKomenda) {
                         cout << "\n\nUdalo sie rozszyfrowac haslo.\n"; 
                         return 0;
    }
}

int maze(string strCel, difficulty dTrudnosc, bool bPomoc, unsigned uSzczescie)
{
    unsigned uLiczbaZakretow, uLiczbaProb, uLiczbaRestartow;
    direction PoprawnyKierunek[9];
    if (dTrudnosc == master) {
       uLiczbaZakretow = 10;
       uLiczbaProb = 2;
       for (int y = 0; y < 10; y++) {
             nLogic = random(3, 0);
                  switch (nLogic) {
                       case 1: PoprawnyKierunek[y] = left; break;
                       case 2: PoprawnyKierunek[y] = right; break;
                       case 3: PoprawnyKierunek[y] = straight;
                  }
       }
    }
    if (dTrudnosc == hard) {
       uLiczbaZakretow = 8;
       uLiczbaProb = 3;
       for (int y = 0; y < 8; y++) {
             nLogic = random(3, 0);
                  switch (nLogic) {
                       case 1: PoprawnyKierunek[y] = left; break;
                       case 2: PoprawnyKierunek[y] = right; break;
                       case 3: PoprawnyKierunek[y] = straight;
                  }
       }
    }
    if (dTrudnosc == normal) {
       uLiczbaZakretow = 5;
       uLiczbaProb = 4;
       for (int y = 0; y < 5; y++) {
             nLogic = random(3, 0);
                  switch (nLogic) {
                       case 1: PoprawnyKierunek[y] = left; break;
                       case 2: PoprawnyKierunek[y] = right; break;
                       case 3: PoprawnyKierunek[y] = straight;
                  }
       }
    }
    if (dTrudnosc == easy) {
       uLiczbaZakretow = 2;
       uLiczbaProb = 5;
       for (int y = 0; y < 2; y++) {
             nLogic = random(3, 0);
                  switch (nLogic) {
                       case 1: PoprawnyKierunek[y] = left; break;
                       case 2: PoprawnyKierunek[y] = right; break;
                       case 3: PoprawnyKierunek[y] = straight;
                  }
       }
    }
    
    bool bMeta = false;

    // cout << static_cast<int>(PoprawnyKierunek[0]) << static_cast<int>(PoprawnyKierunek[1]) << static_cast<int>(PoprawnyKierunek[2]) << static_cast<int>(PoprawnyKierunek[3]) << static_cast<int>(PoprawnyKierunek[4]) << endl << endl;

    do {
        bool bZlaDroga = false;
        for (int i = 0; i < uLiczbaZakretow; i++) {
            cout << "Skrzyzowanie #" << i + 1 << "." << endl;
            cout << "Wybierz kierunek jazdy:" << endl;
            string KierunekWpisywany[uLiczbaZakretow];
            direction Kierunek[uLiczbaZakretow];

            do {
               nLogic = random(100, 0);
               if (bPomoc && i == 0) {
                          cout << "[POMOC OSOBY TRZECIEJ] Wydaje mi sie, ze trzeba pojechac ";
                          if (static_cast<int>(PoprawnyKierunek[i]) == 1 && nLogic > 75) cout << "w lewo!" << endl;
                          if (static_cast<int>(PoprawnyKierunek[i]) == 2 && nLogic > 75) cout << "w prawo!" << endl;
                          if (static_cast<int>(PoprawnyKierunek[i]) == 3 && nLogic > 75) cout << "prosto!" << endl;
                          else cout << "prosto!" << endl;
               }
               bBlednaKomenda = false;
               cin >> KierunekWpisywany[i];

               if (KierunekWpisywany[i] == "lewo") Kierunek[i] = left;
               else if (KierunekWpisywany[i] == "prawo") Kierunek[i] = right;
               else if (KierunekWpisywany[i] == "prosto") Kierunek[i] = straight;
               else if (KierunekWpisywany[i] == "lewo" && KierunekWpisywany[i] == "prawo" && KierunekWpisywany[i] == "prosto") bBlednaKomenda = true;
            } while (bBlednaKomenda);

            cout << "Podazasz w kierunku: ";
            if (static_cast<int>(Kierunek[i]) == 1) cout << "lewo" << endl;
            if (static_cast<int>(Kierunek[i]) == 2) cout << "prawo" << endl;
            if (static_cast<int>(Kierunek[i]) == 3) cout << "prosto" << endl;

            if (Kierunek[i] != PoprawnyKierunek[i]) {
                            nLogic3 = random(10, -3);
                            if (nLogic3 <= szczescie) {
                                        cout << "[SZCZESCIE] Intuicja podpowiada ze powinienem byl pojechac ";
                                        if (static_cast<int>(PoprawnyKierunek[i]) == 1) cout << "na lewo" << endl;
                                        if (static_cast<int>(PoprawnyKierunek[i]) == 2) cout << "na prawo" << endl;
                                        if (static_cast<int>(PoprawnyKierunek[i]) == 3) cout << "prosto" << endl;
                            }
                            bZlaDroga = true;
            }

            if (Kierunek[i] == PoprawnyKierunek[i]) {
                            nLogic3 = Losuj(10, -3);
                            if (nLogic3 <= szczescie) {
                                        cout << "[SZCZESCIE] Mam wrazenie ze dobrze pojechalem!" << endl;
                            }
            }

            if (i == uLiczbaZakretow) {
                  if (!bZlaDroga) {
                     cout << "\nDocierasz do celu: " << Cel << endl << endl;
                     bMeta = true;
                     break;
                  }
                  else if (bZlaDroga) {
                       cout << "\nNie trafiasz do celu. Zabladziles.\n";
                       cout << "-------Od poczatku-------\n\n";
                       break;
                  }
            }
        }
    } while (!bMeta && uLiczbaProb => uLiczbaRestartow);
    
    if (uLiczbaProb => uLiczbaRestartow) return 0;
    else if (uLiczbaProb < uLiczbaRestartow) {
         cout << "Konczy ci sie benzyna. Nie docierasz do celu: " << Cel << endl << endl;
         return 1;
    }
}

/*----------------------------------
G£ÓWNA FUNKCJA
----------------------------------*/
int main() {
    pause();
    maze("wywolanioe testtowe, normal, false, 5);
    return 0;
}
0

Hmm... na pewno nie zdeklarowane? Raczej ambiguous z uwagi na nazwy zmiennych -> ios_base& left ( ios_base& str );
Czy działa nie sprawdzałem bo tablice są źle zdeklarowane "dynamicznie".

0

Nie wiem czy to sam pisałeś ale było dużo bardzo prostych błędów składniowych, nawet nie wiedziałeś jak się argumenty z funkcji nazywają.

/*
  Name: Tajne przez Poufne 3: The Shadow of Gecon
  Copyright: Ilnicki Studios GmbH
  Author: Pawe³ Ilnicki, Kamil Kowal, Mateusz Szatkowski
  Date: 03-01-13 19:58
  Description: Gra przygodowa z elementami losowoœci przygotowana na platformie wiersza poleceñ.
*/
 
 
#include <conio.h>
#include <iostream>
#include <time.h>
#include <string>
 
using namespace std;
 
/*----------------------------------
ZMIENNE GLOBALNE, STA£E I DEKLARACJE TYPÓW NIESTANDARDOWYCH
----------------------------------*/
//uczulam na KA¯DORAZOWE! sprawdzanie poprawnoœci sta³ych!!!
//nie przejmowaæ siê myln¹ nazw¹ nLogic - s¹ to zmienne przechowuj¹ce wyniki rzutu rand()
const int nLiczbaMisji = 10;
 
enum reason { death, surrender, throws };
enum direction { left = 1, right, straight };
enum difficulty { master, hard, normal, easy };
 
int nWywolaniaFunkcjiNext = 0, nLogic, nLogic2, nLogic3;
 
bool bBlednaKomenda;
 
/*----------------------------------
PRZYDATNE FUNKCJE POMOCNICZE
----------------------------------*/
int wait(int seconds)
{
    clock_t endwait;
    endwait = clock() + seconds * CLOCKS_PER_SEC ;
    while (clock() < endwait) {}
    cin.sync();
 
    return 0;
}
 
int random(int skala, int odejmij)
{
    int nLosowana;
    do {
            nLosowana = (rand() % skala + 1) - odejmij;
    } while (nLosowana <= 0);
 
    return nLosowana;
}
 
int pause()
{
    string strDalej;
    cout << "\n[WYMUSZONA PAUZA]\n\n";
    cin.sync();
    getch();
 
    return 0;
}
 
void clear() { system("cls"); }

template<typename T>
void zwolnijPamiec(T ptr)
{
    delete [] ptr;
    ptr = NULL;
}
 
int next(string Misja, int Ocena, string imie, string przezwisko, int zycie)
{
    clear();
    nWywolaniaFunkcjiNext++;
 
    cout << "\a---------------------------------------------------" << endl;
    cout << Misja << " - " << (nLiczbaMisji / nWywolaniaFunkcjiNext) * 100 << "% ukonczono\n";
    cout << "---------------------------------------------------\n";
    cout << "Bohater:        " << imie << endl;
    cout << "Reputacja:   " << przezwisko << endl;
    cout << "ZDROWIE:      " << zycie << "/100\n";
    cout << "---------------------------------------------------" << endl << endl;
 
    pause();
    return 0;
}
 
int gameover(reason rPowod, bool bNiestandardowy, string strUmiejetnosc, string strNiestandardowyKomunikat, unsigned uRzut, unsigned uProg)
{
    clear();
 
    cout << "\a\a\a\n\n\n\n------------------------" << endl;
    cout << "GAME OVER!\n";
    if (bNiestandardowy) cout << strNiestandardowyKomunikat << endl;
    else {
       switch (rPowod) {
              case death: cout << "Punkty zycia bohatera spadly do zera." << endl; break;
              case surrender: cout << "Podjales nieodpowiedzialna decyzje lub zaniechales gry." << endl; break;
              case throws: cout << "Przegrales w rzutach na " << strUmiejetnosc << " (Rzut: " << uRzut << " > Prog: " << uProg << ")" << endl; break;
              default: cout << "?" << endl;
       }
    }
    cout << "\nZa jednym podejsciem przeszedles " << (nLiczbaMisji / nWywolaniaFunkcjiNext) * 100 << "% gry." << endl;
    cout << "\n------------------------" << endl;
 
    pause();
    abort();
    return 0;
}
 
/*----------------------------------
MINIGIERKI W ROZGRYWCE
----------------------------------*/
int hacking(unsigned uIle)
{
    string tStrings[19], Password;
 
    for (int i = 0; i < uIle; i++) {
        nLogic = random(30, 0);
        switch (nLogic) {
           case 1: tStrings[i] = "mistify"; break;
           case 2: tStrings[i] = "crark5"; break;
           case 3: tStrings[i] = "uff5B"; break;
           case 4: tStrings[i] = "witcher2"; break;
           case 5: tStrings[i] = "symphony"; break;
           case 6: tStrings[i] = "impranacalego@"; break;
           case 7: tStrings[i] = "welldone"; break;
           case 8: tStrings[i] = "uhikin"; break;
           case 9: tStrings[i] = "fiyyyan4"; break;
           case 10: tStrings[i] = "presenttime"; break;
           case 11: tStrings[i] = "pornuchy"; break;
           case 12: tStrings[i] = "fixthis"; break;
           case 13: tStrings[i] = "xxx"; break;
           case 14: tStrings[i] = "dlaczegoja"; break;
           case 15: tStrings[i] = "trudnesprawy"; break;
           case 16: tStrings[i] = "he@ven---clVb"; break;
           case 17: tStrings[i] = "dariusz-smyczynski"; break;
           case 18: tStrings[i] = "timtirimti"; break;
           case 19: tStrings[i] = "beethoven"; break;
           case 20: tStrings[i] = "thedarkestofdays"; break;
           case 21: tStrings[i] = "bogus-linda"; break;
           case 22: tStrings[i] = "&maybe"; break;
           case 23: tStrings[i] = "dupa"; break;
           case 24: tStrings[i] = "spierniczaj"; break;
           case 25: tStrings[i] = "redtubecom"; break;
           case 26: tStrings[i] = "mma"; break;
           case 27: tStrings[i] = "noone"; break;
           case 28: tStrings[i] = "whyme!0"; break;
           case 29: tStrings[i] = "transmisja"; break;
           case 30: tStrings[i] = "onatanczydlamnie"; break;
           default: cout << "GAME ERROR: nLogic has higher or lower value than cases!\n\n";
        }
    }
 
    nLogic = random(3, 0);
    switch (nLogic) {
           case 1: Password = tStrings[uIle - 1]; break;
           case 2: Password = tStrings[uIle - 2]; break;
           case 3: Password = tStrings[uIle - 3]; break;
           default: Password = tStrings[uIle - 2];
    }
 
    for (int x = 0; x < uIle; x++) {
        nLogic = random(3, 0);
        switch (nLogic) {
               case 1: cout << "[email protected]" << tStrings[x] << "%$one\n"; break;
               case 2: cout << "*&^G^" << tStrings[x] << "HGG&*(*"; break;
               case 3: cout << "aaa%!" << tStrings[x] << "^%E$###"; break;
        }
    }
 
    wait(3);
 
    string PropozycjaPassword;
 
    for (int y = 0; y < 3; y++) {
        bBlednaKomenda = true;
        cout << "\nPodaj haslo: (pozostalo prob: " << y + 1 << "/3) ";
        cin >> PropozycjaPassword;
 
        if (PropozycjaPassword == Password) {
                        bBlednaKomenda = false;
                        break;
        }
    }
    if (bBlednaKomenda) {
                        cout << "\n\nNiepowodzenie operacji\n"; 
                        return 1;
    }
 
    if (!bBlednaKomenda) {
                         cout << "\n\nUdalo sie rozszyfrowac haslo.\n"; 
                         return 0;
    }
}
 
int maze(string strCel, difficulty dTrudnosc, bool bPomoc, unsigned uSzczescie)
{
    unsigned uLiczbaZakretow, uLiczbaProb, uLiczbaRestartow;
    direction PoprawnyKierunek[9];
    if (dTrudnosc == master) {
       uLiczbaZakretow = 10;
       uLiczbaProb = 2;
       for (int y = 0; y < 10; y++) {
             nLogic = random(3, 0);
                  switch (nLogic) {
                  case 1: PoprawnyKierunek[y] = direction::left; break;
                  case 2: PoprawnyKierunek[y] = direction::right; break;
                       case 3: PoprawnyKierunek[y] = straight;
                  }
       }
    }
    if (dTrudnosc == hard) {
       uLiczbaZakretow = 8;
       uLiczbaProb = 3;
       for (int y = 0; y < 8; y++) {
             nLogic = random(3, 0);
                  switch (nLogic) {
                        case 1: PoprawnyKierunek[y] = direction::left; break;
                        case 2: PoprawnyKierunek[y] = direction::right; break;
                       case 3: PoprawnyKierunek[y] = straight;
                  }
       }
    }
    if (dTrudnosc == normal) {
       uLiczbaZakretow = 5;
       uLiczbaProb = 4;
       for (int y = 0; y < 5; y++) {
             nLogic = random(3, 0);
                  switch (nLogic) {
                         case 1: PoprawnyKierunek[y] = direction::left; break;
                         case 2: PoprawnyKierunek[y] = direction::right; break;
                         case 3: PoprawnyKierunek[y] = direction::straight;
                  }
       }
    }
    if (dTrudnosc == easy) {
       uLiczbaZakretow = 2;
       uLiczbaProb = 5;
       for (int y = 0; y < 2; y++) {
             nLogic = random(3, 0);
                  switch (nLogic) {
                  case 1: PoprawnyKierunek[y] = direction::left; break;
                  case 2: PoprawnyKierunek[y] = direction::right; break;
                       case 3: PoprawnyKierunek[y] = straight;
                  }
       }
    }
 
    bool bMeta = false;
 
    // cout << static_cast<int>(PoprawnyKierunek[0]) << static_cast<int>(PoprawnyKierunek[1]) << static_cast<int>(PoprawnyKierunek[2]) << static_cast<int>(PoprawnyKierunek[3]) << static_cast<int>(PoprawnyKierunek[4]) << endl << endl;
 
    string *KierunekWpisywany = NULL;
    direction *Kierunek = NULL;

    do {
        bool bZlaDroga = false;
        for (int i = 0; i < uLiczbaZakretow; i++) {
            cout << "Skrzyzowanie #" << i + 1 << "." << endl;
            cout << "Wybierz kierunek jazdy:" << endl;
           
            
        KierunekWpisywany = new string[uLiczbaZakretow];
        Kierunek = new direction[uLiczbaZakretow];
           // string KierunekWpisywany[uLiczbaZakretow];
            //direction Kierunek[uLiczbaZakretow];
 
            do {
               nLogic = random(100, 0);
               if (bPomoc && i == 0) {
                          cout << "[POMOC OSOBY TRZECIEJ] Wydaje mi sie, ze trzeba pojechac ";
                          if (static_cast<int>(PoprawnyKierunek[i]) == 1 && nLogic > 75) cout << "w lewo!" << endl;
                          if (static_cast<int>(PoprawnyKierunek[i]) == 2 && nLogic > 75) cout << "w prawo!" << endl;
                          if (static_cast<int>(PoprawnyKierunek[i]) == 3 && nLogic > 75) cout << "prosto!" << endl;
                          else cout << "prosto!" << endl;
               }
               bBlednaKomenda = false;
               cin >> KierunekWpisywany[i];
 
               if (KierunekWpisywany[i] == "lewo") Kierunek[i] = direction::left;
               else if (KierunekWpisywany[i] == "prawo") Kierunek[i] = direction::right;
               else if (KierunekWpisywany[i] == "prosto") Kierunek[i] = straight;
               else if (KierunekWpisywany[i] == "lewo" && KierunekWpisywany[i] == "prawo" && KierunekWpisywany[i] == "prosto") bBlednaKomenda = true;
            } while (bBlednaKomenda);
 
            cout << "Podazasz w kierunku: ";
            if (static_cast<int>(Kierunek[i]) == 1) cout << "lewo" << endl;
            if (static_cast<int>(Kierunek[i]) == 2) cout << "prawo" << endl;
            if (static_cast<int>(Kierunek[i]) == 3) cout << "prosto" << endl;
 
            if (Kierunek[i] != PoprawnyKierunek[i]) {
                            nLogic3 = random(10, -3);
                            if (nLogic3 <= uSzczescie) {
                                        cout << "[SZCZESCIE] Intuicja podpowiada ze powinienem byl pojechac ";
                                        if (static_cast<int>(PoprawnyKierunek[i]) == 1) cout << "na lewo" << endl;
                                        if (static_cast<int>(PoprawnyKierunek[i]) == 2) cout << "na prawo" << endl;
                                        if (static_cast<int>(PoprawnyKierunek[i]) == 3) cout << "prosto" << endl;
                            }
                            bZlaDroga = true;
            }
 
            if (Kierunek[i] == PoprawnyKierunek[i]) {
                            nLogic3 = random(10, -3);
                            if (nLogic3 <= uSzczescie) {
                                        cout << "[SZCZESCIE] Mam wrazenie ze dobrze pojechalem!" << endl;
                            }
            }
 
            if (i == uLiczbaZakretow) {
                  if (!bZlaDroga) {
                     cout << "\nDocierasz do celu: " << strCel << endl << endl;
                     bMeta = true;
                     break;
                  }
                  else if (bZlaDroga) {
                       cout << "\nNie trafiasz do celu. Zabladziles.\n";
                       cout << "-------Od poczatku-------\n\n";
                       break;
                  }
            }
        }
    } while (!bMeta && uLiczbaProb >= uLiczbaRestartow);

    delete [] KierunekWpisywany;
    KierunekWpisywany = NULL;
    delete [] Kierunek;
    Kierunek = NULL;

    //lub
    //zwolnijPamiec(KierunekWpisywany);
    //zwolnijPamiec(Kierunek);
 
    if (uLiczbaProb >= uLiczbaRestartow)
    {
        return 0;
    }
    else if (uLiczbaProb < uLiczbaRestartow) {
         cout << "Konczy ci sie benzyna. Nie docierasz do celu: " << strCel << endl << endl;
         return 1;
    }
}


 
/*----------------------------------
G£ÓWNA FUNKCJA
----------------------------------*/
int main() {
    pause();
    maze("wywolanioe testtowe", difficulty::normal, false, 5);
    return 0;
}
0

Dziwne, ale wciąż ten sam błąd co w temacie.
(używam codeblocks)

0

Jaki kompilator? Ogólnie masz tu sporo błędów. Poprawiłem tylko składniowe - to czy będzie to działać tak jak chcesz to nie wiem.
left i right istnieją już w przestrzeni nazw std, więc dodanie własnych o takiej samej nazwie to zły pomysł. Tak jak wspomniał @witekkq. Przyjrzyj się zmianom. Bo np. nie ma takiego operatora jak => jest >=. Jest tam sporo innych błędów, ostrzeżeń co nie miara.

@Bumcykowy: mingw tego Twojego kodu nie chciał mi zbudować. Problemem były odwołania w stylu direction::left, które są niestandardowym rozszerzeniem w VS.

/*
  Name: Tajne przez Poufne 3: The Shadow of Gecon
  Copyright: Ilnicki Studios GmbH
  Author: Pawe³ Ilnicki, Kamil Kowal, Mateusz Szatkowski
  Date: 03-01-13 19:58
  Description: Gra przygodowa z elementami losowoœci przygotowana na platformie wiersza poleceñ.
*/


#include <conio.h>
#include <iostream>
#include <cstdlib>
#include <ctime>

using std::cin;
using std::cout;
using std::string;
using std::endl;

/*----------------------------------
ZMIENNE GLOBALNE, STA£E I DEKLARACJE TYPÓW NIESTANDARDOWYCH
----------------------------------*/
//uczulam na KA¯DORAZOWE! sprawdzanie poprawnoœci sta³ych!!!
//nie przejmowaæ siê myln¹ nazw¹ nLogic - s¹ to zmienne przechowuj¹ce wyniki rzutu rand()
const int nLiczbaMisji = 10;

enum reason { death, surrender, throws };
enum direction { left = 1, right, straight };
enum difficulty { master, hard, normal, easy };

int nWywolaniaFunkcjiNext = 0, nLogic, nLogic2, nLogic3;

bool bBlednaKomenda;

/*----------------------------------
PRZYDATNE FUNKCJE POMOCNICZE
----------------------------------*/
int wait(int seconds)
{
    clock_t endwait;
    endwait = clock() + seconds * CLOCKS_PER_SEC ;
    while (clock() < endwait) {}
    cin.sync();

    return 0;
}

int random(int skala, int odejmij)
{
    int nLosowana;
    do {
            nLosowana = (rand() % skala + 1) - odejmij;
    } while (nLosowana <= 0);

    return nLosowana;
}

int pause()
{
    string strDalej;
    cout << "\n[WYMUSZONA PAUZA]\n\n";
    cin.sync();
    getch();

    return 0;
}

int clear() { system("cls"); }

int next(string Misja, int Ocena, string imie, string przezwisko, int zycie)
{
    clear();
    nWywolaniaFunkcjiNext++;

    cout << "\a---------------------------------------------------" << endl;
    cout << Misja << " - " << (nLiczbaMisji / nWywolaniaFunkcjiNext) * 100 << "% ukonczono\n";
    cout << "---------------------------------------------------\n";
    cout << "Bohater:        " << imie << endl;
    cout << "Reputacja:   " << przezwisko << endl;
    cout << "ZDROWIE:      " << zycie << "/100\n";
    cout << "---------------------------------------------------" << endl << endl;

    pause();
    return 0;
}

int gameover(reason rPowod, bool bNiestandardowy, string strUmiejetnosc, string strNiestandardowyKomunikat, unsigned uRzut, unsigned uProg)
{
    clear();

    cout << "\a\a\a\n\n\n\n------------------------" << endl;
    cout << "GAME OVER!\n";
    if (bNiestandardowy) cout << strNiestandardowyKomunikat << endl;
    else {
       switch (rPowod) {
              case death: cout << "Punkty zycia bohatera spadly do zera." << endl; break;
              case surrender: cout << "Podjales nieodpowiedzialna decyzje lub zaniechales gry." << endl; break;
              case throws: cout << "Przegrales w rzutach na " << strUmiejetnosc << " (Rzut: " << uRzut << " > Prog: " << uProg << ")" << endl; break;
              default: cout << "?" << endl;
       }
    }
    cout << "\nZa jednym podejsciem przeszedles " << (nLiczbaMisji / nWywolaniaFunkcjiNext) * 100 << "% gry." << endl;
    cout << "\n------------------------" << endl;

    pause();
    abort();
    return 0;
}

/*----------------------------------
MINIGIERKI W ROZGRYWCE
----------------------------------*/
int hacking(unsigned uIle)
{
    string tStrings[19], Password;

    for (int i = 0; i < uIle; i++) {
        nLogic = random(30, 0);
        switch (nLogic) {
           case 1: tStrings[i] = "mistify"; break;
           case 2: tStrings[i] = "crark5"; break;
           case 3: tStrings[i] = "uff5B"; break;
           case 4: tStrings[i] = "witcher2"; break;
           case 5: tStrings[i] = "symphony"; break;
           case 6: tStrings[i] = "impranacalego@"; break;
           case 7: tStrings[i] = "welldone"; break;
           case 8: tStrings[i] = "uhikin"; break;
           case 9: tStrings[i] = "fiyyyan4"; break;
           case 10: tStrings[i] = "presenttime"; break;
           case 11: tStrings[i] = "pornuchy"; break;
           case 12: tStrings[i] = "fixthis"; break;
           case 13: tStrings[i] = "xxx"; break;
           case 14: tStrings[i] = "dlaczegoja"; break;
           case 15: tStrings[i] = "trudnesprawy"; break;
           case 16: tStrings[i] = "he@ven---clVb"; break;
           case 17: tStrings[i] = "dariusz-smyczynski"; break;
           case 18: tStrings[i] = "timtirimti"; break;
           case 19: tStrings[i] = "beethoven"; break;
           case 20: tStrings[i] = "thedarkestofdays"; break;
           case 21: tStrings[i] = "bogus-linda"; break;
           case 22: tStrings[i] = "&maybe"; break;
           case 23: tStrings[i] = "dupa"; break;
           case 24: tStrings[i] = "spierniczaj"; break;
           case 25: tStrings[i] = "redtubecom"; break;
           case 26: tStrings[i] = "mma"; break;
           case 27: tStrings[i] = "noone"; break;
           case 28: tStrings[i] = "whyme!0"; break;
           case 29: tStrings[i] = "transmisja"; break;
           case 30: tStrings[i] = "onatanczydlamnie"; break;
           default: cout << "GAME ERROR: nLogic has higher or lower value than cases!\n\n";
        }
    }

    nLogic = random(3, 0);
    switch (nLogic) {
           case 1: Password = tStrings[uIle - 1]; break;
           case 2: Password = tStrings[uIle - 2]; break;
           case 3: Password = tStrings[uIle - 3]; break;
           default: Password = tStrings[uIle - 2];
    }

    for (int x = 0; x < uIle; x++) {
        nLogic = random(3, 0);
        switch (nLogic) {
               case 1: cout << "[email protected]" << tStrings[x] << "%$one\n"; break;
               case 2: cout << "*&^G^" << tStrings[x] << "HGG&*(*"; break;
               case 3: cout << "aaa%!" << tStrings[x] << "^%E$###"; break;
        }
    }

    wait(3);

    string PropozycjaPassword;

    for (int y = 0; y < 3; y++) {
        bBlednaKomenda = true;
        cout << "\nPodaj haslo: (pozostalo prob: " << y + 1 << "/3) ";
        cin >> PropozycjaPassword;

        if (PropozycjaPassword == Password) {
                        bBlednaKomenda = false;
                        break;
        }
    }
    if (bBlednaKomenda) {
                        cout << "\n\nNiepowodzenie operacji\n";
                        return 1;
    }

    if (!bBlednaKomenda) {
                         cout << "\n\nUdalo sie rozszyfrowac haslo.\n";
                         return 0;
    }
}

int maze(string strCel, difficulty dTrudnosc, bool bPomoc, unsigned uSzczescie)
{
    unsigned uLiczbaZakretow, uLiczbaProb, uLiczbaRestartow;
    direction PoprawnyKierunek[9];
    if (dTrudnosc == master) {
       uLiczbaZakretow = 10;
       uLiczbaProb = 2;
       for (int y = 0; y < 10; y++) {
             nLogic = random(3, 0);
                  switch (nLogic) {
                       case 1: PoprawnyKierunek[y] = left; break;
                       case 2: PoprawnyKierunek[y] = right; break;
                       case 3: PoprawnyKierunek[y] = straight;
                  }
       }
    }
    if (dTrudnosc == hard) {
       uLiczbaZakretow = 8;
       uLiczbaProb = 3;
       for (int y = 0; y < 8; y++) {
             nLogic = random(3, 0);
                  switch (nLogic) {
                       case 1: PoprawnyKierunek[y] = left; break;
                       case 2: PoprawnyKierunek[y] = right; break;
                       case 3: PoprawnyKierunek[y] = straight;
                  }
       }
    }
    if (dTrudnosc == normal) {
       uLiczbaZakretow = 5;
       uLiczbaProb = 4;
       for (int y = 0; y < 5; y++) {
             nLogic = random(3, 0);
                  switch (nLogic) {
                       case 1: PoprawnyKierunek[y] = left; break;
                       case 2: PoprawnyKierunek[y] = right; break;
                       case 3: PoprawnyKierunek[y] = straight;
                  }
       }
    }
    if (dTrudnosc == easy) {
       uLiczbaZakretow = 2;
       uLiczbaProb = 5;
       for (int y = 0; y < 2; y++) {
             nLogic = random(3, 0);
                  switch (nLogic) {
                       case 1: PoprawnyKierunek[y] = left; break;
                       case 2: PoprawnyKierunek[y] = right; break;
                       case 3: PoprawnyKierunek[y] = straight;
                  }
       }
    }

    bool bMeta = false;

    // cout << static_cast<int>(PoprawnyKierunek[0]) << static_cast<int>(PoprawnyKierunek[1]) << static_cast<int>(PoprawnyKierunek[2]) << static_cast<int>(PoprawnyKierunek[3]) << static_cast<int>(PoprawnyKierunek[4]) << endl << endl;

    do {
        bool bZlaDroga = false;
        for (int i = 0; i < uLiczbaZakretow; i++) {
            cout << "Skrzyzowanie #" << i + 1 << "." << endl;
            cout << "Wybierz kierunek jazdy:" << endl;
            string KierunekWpisywany[uLiczbaZakretow];
            direction Kierunek[uLiczbaZakretow];

            do {
               nLogic = random(100, 0);
               if (bPomoc && i == 0) {
                          cout << "[POMOC OSOBY TRZECIEJ] Wydaje mi sie, ze trzeba pojechac ";
                          if (static_cast<int>(PoprawnyKierunek[i]) == 1 && nLogic > 75) cout << "w lewo!" << endl;
                          if (static_cast<int>(PoprawnyKierunek[i]) == 2 && nLogic > 75) cout << "w prawo!" << endl;
                          if (static_cast<int>(PoprawnyKierunek[i]) == 3 && nLogic > 75) cout << "prosto!" << endl;
                          else cout << "prosto!" << endl;
               }
               bBlednaKomenda = false;
               cin >> KierunekWpisywany[i];

               if (KierunekWpisywany[i] == "lewo") Kierunek[i] = left;
               else if (KierunekWpisywany[i] == "prawo") Kierunek[i] = right;
               else if (KierunekWpisywany[i] == "prosto") Kierunek[i] = straight;
               else if (KierunekWpisywany[i] == "lewo" && KierunekWpisywany[i] == "prawo" && KierunekWpisywany[i] == "prosto") bBlednaKomenda = true;
            } while (bBlednaKomenda);

            cout << "Podazasz w kierunku: ";
            if (static_cast<int>(Kierunek[i]) == 1) cout << "lewo" << endl;
            if (static_cast<int>(Kierunek[i]) == 2) cout << "prawo" << endl;
            if (static_cast<int>(Kierunek[i]) == 3) cout << "prosto" << endl;

            if (Kierunek[i] != PoprawnyKierunek[i]) {
                            nLogic3 = random(10, -3);
                            if (nLogic3 <= uSzczescie) {
                                        cout << "[SZCZESCIE] Intuicja podpowiada ze powinienem byl pojechac ";
                                        if (static_cast<int>(PoprawnyKierunek[i]) == 1) cout << "na lewo" << endl;
                                        if (static_cast<int>(PoprawnyKierunek[i]) == 2) cout << "na prawo" << endl;
                                        if (static_cast<int>(PoprawnyKierunek[i]) == 3) cout << "prosto" << endl;
                            }
                            bZlaDroga = true;
            }

            if (Kierunek[i] == PoprawnyKierunek[i]) {
                            nLogic3 = random(10, -3);
                            if (nLogic3 <= uSzczescie) {
                                        cout << "[SZCZESCIE] Mam wrazenie ze dobrze pojechalem!" << endl;
                            }
            }

            if (i == uLiczbaZakretow) {
                  if (!bZlaDroga) {
                     cout << "\nDocierasz do celu: " << strCel << endl << endl;
                     bMeta = true;
                     break;
                  }
                  else if (bZlaDroga) {
                       cout << "\nNie trafiasz do celu. Zabladziles.\n";
                       cout << "-------Od poczatku-------\n\n";
                       break;
                  }
            }
        }
    } while (!bMeta && uLiczbaProb >= uLiczbaRestartow);

    if (uLiczbaProb >= uLiczbaRestartow) return 0;
    else if (uLiczbaProb < uLiczbaRestartow) {
         cout << "Konczy ci sie benzyna. Nie docierasz do celu: " << strCel << endl << endl;
         return 1;
    }
}

/*----------------------------------
G£ÓWNA FUNKCJA
----------------------------------*/
int main() {
    pause();
    maze("wywolanioe testtowe", normal, false, 5);
    return 0;
}
0

Problem tkwił, tak jak przypuszczał poprzednik, zbieżność nazw z wbudowanymi w kompilator bodajże. Po zamianie na nomenklaturę tego enuma w "to****" (toright, toleft, tostraight) - działa.

1 użytkowników online, w tym zalogowanych: 0, gości: 1