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;
}