-
compile error
i am trying to make like a text game based on a choose yur own adventure book and i keep getting an error that says
9 C:\Dev-Cpp\madlibgame.cpp
`c' undeclared (first use this function)
here is my code
Code:
#include <iostream>
#include <string>
using namespace std;
int main(void)
{
int whattheytype;
string commands = c;
int exit;
std::cout<<"ok this is a choose your own adventure game called\n"<<endl;
std::cout<<"deep space. you will read the page then you will be\n"<<endl;
std::cout<<"asked to choose which way you want to go and such\n"<<endl;
std::cout<<"sounds like fun huh? thought so. ok type c to\n"<<endl;
std::cout<<"get a list of commands. and type exit to leave"<<endl;/* all this is is the introductory for the game*/
std::cin>>whattheytype;
if (whattheytype == commands);
std::cout<<"eet works!";
else
if (whattheytype == 2)
std::cout<<"yup\n";
std::cout<<"\npress any key and hit enter to quit:";
std::cin>>exit;
return 0;
}
-
Change this line:
Code:
string commands = c;
to this:
Code:
string commands = "c";
-
now i get
19 C:\Dev-Cpp\madlibgame.cpp
no match for `int& == std::string&' operator
the code is
Code:
#include <iostream>
#include <string>
using namespace std;
int main(void)
{
int whattheytype;
string commands = "commands";
int exit;
std::cout<<"ok this is a choose your own adventure game called\n"<<endl;
std::cout<<"deep space. you will read the page then you will be\n"<<endl;
std::cout<<"asked to choose which way you want to go and such\n"<<endl;
std::cout<<"sounds like fun huh? thought so. ok type c to\n"<<endl;
std::cout<<"get a list of commands. and type exit to leave"<<endl;/* all this is is the introductory for the game*/
{
std::cin>>whattheytype;
if(whattheytype == commands);
std::cout<<"eet works!";
else
if (whattheytype == 2)
std::cout<<"yup\n";
std::cout<<"\npress any key and hit enter to quit:";
std::cin>>exit;
return 0;
}
-
> int whattheytype;
> string commands = "commands";
So make them both int, or make them both string, then you'll be able to compare them
I'm guessing you'll want to choose
string whattheytype;
> int exit;
exit is also the name of a function in cstdlib
-
ok i have 2 more questions my code as it is now is
Code:
#include <iostream>
#include <string>
using namespace std;
int main(void)
{
string whattheytype;
string commands = "commands";
string option1 = "start";
string leave = "exit";
std::cout<<"this game was ripped off from the choose your own adventure\n";
std::cout<<" book called Undergound Kingdom by Edward Packard\n";
std::cout<<"ok this is a choose your own adventure game called\n";
std::cout<<"Underground kingdom. you will read the page then you will be\n";
std::cout<<"asked to choose which way you want to go and such\n";
std::cout<<"sounds like fun huh? thought so. ok type commands to\n";
std::cout<<"get a list of commands. and type exit to leave";/* all this is is the introductory for the game*/
std::cout<<"\ntype start to start the game!\n"<<endl;
std::cin>>whattheytype;
if (whattheytype == commands)
std::cout<<"just follow the instructions stupid ass restart the program\n"<<endl;/*insructions*/
else
if (whattheytype == option1)/*beginning of actual game*/
std::cout<<"WARNING!!!!!!!!!!!!!\n";
std::cout<<"\n"<<endl;
std::cout<<"The Underground Kingdom is not easy to reach. Many Players\n";
std::cout<<"never get ther. Others never return.\n";
std::cout<<" Before starting out on your journey, you may want to read\n";
std::cout<<"Professor Bruckner's theory, which is set fourth on the next block\n";
std::cout<<"of text.\n";
std::cout<<" Professor Bruckner is a rather boring writer, and i wouldn't\n";
std::cout<<"suggest that you bother read his theorym exept that, if you ever\n";
std::cout<<"get to the Underground Kingdom, it might save your life. Good luck!\n";
else /*exiting game*/
if (whattheytype == leave)
std::cout<<"press any key to exit\n";
std::cin>> leave;
return 0;
}
now the error i get now is
37 C:\Dev-Cpp\madlibgame.cpp
parse error before `else'
and also i would like to make it so they can type commands and get the command thing then press start and get the game 2 start instead of having to restart teh game each time
-
-
Use some more braces to group together all the statements you consider to be part of an if statement
-
ok one more question and then i think i can make the rest of this game the code so far is
Code:
#include <iostream>
#include <string>
using namespace std;
int main(void)
{
string whattheytype;
string commands = "commands";
string option1 = "start";
string leave = "exit";
string theory = "theory";/*variables*/
string game ="game";
std::cout<<"this game was ripped off from the choose your own adventure\n";
std::cout<<" book called Undergound Kingdom by Edward Packard\n";
std::cout<<"ok this is a choose your own adventure game called\n";
std::cout<<"Underground kingdom. you will read the page then you will be\n";
std::cout<<"asked to choose which way you want to go and such\n";
std::cout<<"sounds like fun huh? thought so. ok type commands to\n";
std::cout<<"get a list of commands. and type exit to leave";/* all this is is the introductory for the game*/
std::cout<<"\ntype start to start the game!\n"<<endl;
std::cin>>whattheytype;
if (whattheytype == commands)
std::cout<<"just follow the instructions and restart the program\n"<<endl;/*insructions*/
else
if (whattheytype == option1)/*beginning of actual game*/
{
std::cout<<"WARNING!!!!!!!!!!!!!\n";
std::cout<<"\n"<<endl;
std::cout<<"The Underground Kingdom is not easy to reach. Many Players\n";
std::cout<<"never get ther. Others never return.\n";
std::cout<<" Before starting out on your journey, you may want to read\n";
std::cout<<"Professor Bruckner's theory, which is set fourth on the next block\n";
std::cout<<"of text.\n";
std::cout<<" Professor Bruckner is a rather boring writer, and i wouldn't\n";
std::cout<<"suggest that you bother read his theory exept that, if you ever\n";
std::cout<<"get to the Underground Kingdom, it might save your life. Good luck!\n"<<endl;
std::cout<<"type theory to read the theory type game to start the game\n";
}
if (whattheytype == theory)
{
std::cout<<"bleg";
}
else
if (whattheytype == game)
{
std::cout<<"hmm";
}
else /*exiting game*/
if (whattheytype == leave)
{
std::cout<<"press any key to exit\n";
std::cin>>leave;
}
return 0;
}
and it compiles and runs but where it asks you to choose the theory or start the game when you choose either one it ends the program and i want it to execute the game or the theory part any ideas? btw thanks for all the help so far
-
anyone ? i have been trying to fix this problem for about 4 hours now
-
What do you expect? You don't actually have any game code there at the moment. I suggest you create a function to do theory, and a function to start the game. When they specify that they want theory, just call the function, etc etc.
-
i fixed it all by myself hehehehe only took me 6 hours lol anyway all i needed to do was creat string whattheytype2; instead of re using string whattheytype; over and over it compiled and ran fine now i am gonna finish the game anyway here is the code
Code:
#include <iostream>
#include <string>
using namespace std;
int main(void)
{
string whattheytype;
string whattheytype2;
string commands = "commands";
string option1 = "start";
string theory = "theory";/*variables*/
string game ="game";
string leave = "exit";
std::cout<<"this game was ripped off from the choose your own adventure\n";
std::cout<<" book called Undergound Kingdom by Edward Packard\n";
std::cout<<"ok this is a choose your own adventure game called\n";
std::cout<<"Underground kingdom. you will read the page then you will be\n";
std::cout<<"asked to choose which way you want to go and such\n";
std::cout<<"sounds like fun huh? thought so. ok type commands to\n";
std::cout<<"get a list of commands. and type exit to leave";/* all this is is the introductory for the game*/
std::cout<<"\ntype start to start the game!\n"<<endl;
std::cin>>whattheytype;
if (whattheytype == commands)
std::cout<<"just follow the instructions and restart the program\n"<<endl;/*insructions*/
else
if (whattheytype == option1)/*beginning of actual game*/
std::cout<<"WARNING!!!!!!!!!!!!!\n";
std::cout<<"\n"<<endl;
std::cout<<"The Underground Kingdom is not easy to reach. Many Players\n";
std::cout<<"never get ther. Others never return.\n";
std::cout<<" Before starting out on your journey, you may want to read\n";
std::cout<<"Professor Bruckner's theory, which is set fourth on the next block\n";
std::cout<<"of text.\n";
std::cout<<" Professor Bruckner is a rather boring writer, and i wouldn't\n";
std::cout<<"suggest that you bother read his theory exept that, if you ever\n";
std::cout<<"get to the Underground Kingdom, it might save your life. Good luck!\n"<<endl;
std::cout<<"type theory to read the theory type game to start the game\n";
std::cin>>whattheytype2;
if (whattheytype2 == theory)
std::cout<<"bleg";
else
if (whattheytype2 == game)
std::cout<<"hmm";
else /*exiting game*/
if (whattheytype == leave)
std::cout<<"press any key to exit\n";
std::cin>>leave;
std::cout<<"press any key to exit\n";
std::cin>>leave;
return 0;
}
ill post the finish product later thanks for all the help :)
-
i can get the file to compile but when you try to get the rest of the theory part it flashes it then shuts the prog down anyoen know how i can pause it?
-
-
I tried the solution in the faq and it didn't work here is my code can anyone see where i made my mistake?
Code:
#include <iostream>
#include <string>
using namespace std;
int main(void)
{
string whattheytype;
string whattheytype2;
string commands = "commands";
string option1 = "start";
string theory = "theory";/*variables*/
string game ="game";
string leave = "exit";
int pause;
int more;
std::cout<<"this game was ripped off from the choose your own adventure\n";
std::cout<<" book called Undergound Kingdom by Edward Packard\n";
std::cout<<"ok this is a choose your own adventure game called\n";
std::cout<<"Underground kingdom. you will read the page then you will be\n";
std::cout<<"asked to choose which way you want to go and such\n";
std::cout<<"sounds like fun huh? thought so. ok type commands to\n";
std::cout<<"get a list of commands. and type exit to leave";/* all this is is the introductory for the game*/
std::cout<<"\ntype start to start the game!\n"<<endl;
std::cin>>whattheytype;
if (whattheytype == commands)
std::cout<<"just follow the instructions and restart the program\n"<<endl;/*insructions*/
else
if (whattheytype == option1)/*beginning of actual game*/
std::cout<<"WARNING!!!!!!!!!!!!!\n";
std::cout<<"\n"<<endl;
std::cout<<"The Underground Kingdom is not easy to reach. Many Players\n";
std::cout<<"never get ther. Others never return.\n";
std::cout<<" Before starting out on your journey, you may want to read\n";
std::cout<<"Professor Bruckner's theory, which is set fourth on the next block\n";
std::cout<<"of text.\n";
std::cout<<" Professor Bruckner is a rather boring writer, and i wouldn't\n";
std::cout<<"suggest that you bother read his theory exept that, if you ever\n";
std::cout<<"get to the Underground Kingdom, it might save your life. Good luck!\n"<<endl;
std::cout<<"type theory to read the theory type game to start the game\n";
std::cin>>whattheytype2;
if (whattheytype2 == theory)
{
std::cout<<" PROFESSOR\n";
std::cout<<" BRUCKNER'S\n";
std::cout<<" THEORY\n";
std::cout<<"---------------------------------------------------------------\n";
std::cout<<"The discovery of the Bottomless Crevasse in Greenland by Dr. Nera \n";
std::cout<<"Vivaldi supports my therory that the earth is not solid, as has\n";
std::cout<<"been thought, but that it is hollow. The Bottomless Crevasse is\n";
std::cout<<"probably the sole route from the earth's surface to a vast Underground\n";
std::cout<<"Kingdom. The only other possible link would be an underground river,\n";
std::cout<<"flowing in alternating directions in response to the tides, but this \n";
std::cout<<"seems unlikely.\n";
std::cout<<"How you may ask, was the earth hollowed out? My studies show that more\n";
std::cout<<"than a billion years ago a tiny blck hole collided with out planet and\n";
std::cout<<"lodged in its center, pulling the whole molten core into an incredibly\n";
std::cout<<"massive sphere only a few hundred meter across.\n";
std::cout<<"If you were to stand on the inner surface of the earth, like a fly on the\n";
std::cout<<"shell of an enormous pumpkin, you would see the black hole directly overhead,\n";
std::cout<<"press any key and hit enter for more of the theory\n";
std::cin>>more;
std::cout<<"like a black sun.\n";
std::cout<<"The Gravity of the earth's thick shell would hold you to the inner shell\n";
std::cout<<"of the earth, though you would weigh much less than you would on the\n";
std::cout<<"outer surface because the mass of the Black Sun would tend to pull \n";
std::cout<<"you toward it. If there were a very tall mountain in the Underground\n";
std::cout<<"Kingdom and you were to climb to the top of it, you might be pulled\n";
std::cout<<"up into the Black Sun because gravity gets stronger as you approach\n";
std::cout<<"a massive object.\n";
std::cout<<"In all other respects the Black Sun would not be dangerous to any creatures\n";
std::cout<<"in the Unerground Kingdom. On the contrary, the Black Sun would be\n";
std::cout<<"necessary to life in th underworld, but in the opposit way that the sun is\n";
std::cout<<"necessary to life on the earth's surface. OUr sun give us heat and keeps us\n";
std::cout<<"from freezing. The Black Sun absorbs heat. If there is an underground \n";
std::cout<<"kingdom, it is the Blac Sun tha keep its inhabitants from being baked to\n";
std::cout<<"death by the heat within the earth.\n";
std::cout<<"type game to start game!\n";
std::cin>>pause;
std::cin>>whattheytype2;
}
else
if (whattheytype2 == game)
{
std::cout<<"hmm";
}
else
if (whattheytype == leave)
{
std::cout<<"press any key to exit\n";
std::cin>>leave;
}
return 0;
}
-
im not exactly sure what youre asking, but one major problem is that you have 2 std::cin statements ina row after cout-ing the huge text of the theory... std::cin >> pause; gets user input from standard input and puts it into the variable named "pause"... it doesnt actually pause the screen. If you want a way to pause the screen, try system("PAUSE");