ola sou iniciante em c++ e resolvi criar um rpg pra botar oque eu aprendi em pratica já vou avisando que o codigo esta confuso porque eu usei o comando goto pra fazer os loops, eu fiz a historia em ingles mais os switch em portugues pra meus irmaos entenderem.
eis o codigo:
[//primeiro rpg game
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
srand(time(NULL));
int attack = rand() % 30 + 1;
//declarando variaveis interas para as caracteristicas do personagem e dos monstros
int lvlbegin=9,exp=100,health=100,arm=5;
//int dos switch
int numswt,numswtb,numswtc,numswts,numswtf;
//heath dos monstros
int rathp=20,ratdmg=10,ratxp=5,trollhp=60,trollxp=30,trolldmg=25,dragonhp=100;
//strings com os nomes ,fiz assim por que não consegui fazer em modo de strutura
string nome="ichigo of dead";
string monster1="some rats";
string monster2="troll";
string monster3="dragon";
//eu escrevi em ingles por que me acustumei com rpgs assim
//mais infelizmente sou alto didata no ingles então não reclamen do meu ingles pobre
cout <<"\twelcome to world riddle\n\n"
<<"read to begin a new adventure?\n\n";
cout <<"digite 1 para sim 2 para não\n\n";
cin >>numswt;
switch(numswt)
{
case 1:
cout<<"the life is hard in the riddler world, gods play with us life, now us battle to survive\n";
break;
case 2:
goto label1; //goto label 1 aki <=============== 1°
}
cout <<"your adventure begin in a small city of borgil\n\n";
label3://label de volta para city
cout <<"you are in city, wheare you go:\n\n";
cout <<"1 for go to shop, 2 for go to house,\n 3 for go to exit of city:\n\n";
cin >>numswtc;
switch(numswtc)
{
case 1:
int numswts;
cout <<"welcome to shoping of botgil city\n\n"
<<"what you need buy 1 potions, 2 armors, 3 leave, 4 look a grate near of shops:\n\n";
cin >>numswts;
switch(numswts)
{
//sub switch shop of city
case 1:
cout <<"sorry you no have money\n\n";
case 2:
cout <<"sorry you no havemoney\n\n";
case 3:
goto label3;//goto label 3 aki <=====3°
case 4:
cout <<"you found a seccret hole in a downtake pipe";
goto label5;//label para o bueiro <========5°
}
//house
case 2:
cout <<"\nyou enter in your house go to bed and sleep like a stone\n\n"
<<"you rise with the sing of the birds in mornirg your health is recovery\n\n";
health=100;
goto label3; //outra label 3 <============= de volta pra city
case 3:
cout <<"you walk to exit of city and found a small way in jumgle\n\n";
goto label6;//goto label 6 aki ela leva pra floresta <===========
}
//status do character
cout <<"your character is:"<<nome
<<"\n\nlevel:"<<lvlbegin
<<"\n\nyour experience point is:\n"<<exp
<<"\n\nyour health point is:\n\n"<<health
<<"\n\nyour armor have "<<arm<<" of protetion\n\n";
label5: // label 5 combat com os ratos
//no bueiro
cout <<"you enter in the cave and found a:"<<monster1<<"\n\nyou go attack 1 for attack 2 for leave?";
cin >>numswtb;
switch(numswtb)
{
case 1:
cout<<"you attack!\n";
break;
case 2:
cout<<"your enemy attack you behide!\n";
break;
}
//battle result
label2://label do loop
cout <<"\nbattle now!\n"<<"you deal a "<<attack<<" to health of "<<monster1;
rathp -=attack;
if(rathp<1)
{
cout<<" now he has 0 of health\n\n";
cout <<"you win you lose "<<ratdmg<<" of health and gain" <<ratxp <<" points of experience\n\n";
health-=ratdmg,exp+=ratxp;
}
else
//goto pra fazer o loop ate matar o monstro
goto label2;//<============ label 2 faz o loop ate matar o monstro
//status do character
cout<<"your character is:"<<nome<<"\n\nlevel:"<<lvlbegin
<<"\n\nyour experience point is:\n"<<exp
<<"\n\nyour health point is:\n\n"
<<health<<"\n\nyour armor have "<<arm<<" of protetion\n\n";
goto label3;//<=============goto label 3 de volta para city
//label da floresta
label6://<========label 6 lota com o troll
cout <<"you enter in the way of florest and is surprised by a:"<<monster2<<"\n\nyou go attack 1 for attack 2 for leave?";
cin >>numswtf;
switch(numswtf)
{
case 1:
cout<<"you attack!\n";
break;
case 2:
cout<<"your enemy attack you behide!\n";
break;
}
//battle result
label7://label do loop
cout <<"\nbattle now!\n"<<"you deal a "<<attack<<" to health of "<<monster2;
trollhp -=attack;
if(trollhp<1)
{
cout<<" now he has 0 of health\n\n";
cout <<"you win you lose "<<trolldmg<<" of health and gain" <<trollxp <<" points of experience\n\n";
health-=trolldmg,exp+=trollxp;
}
else
goto label7;//goto pra fazer o loop
//status do character
cout<<"your character is:"<<nome<<"\n\nlevel:"<<lvlbegin
<<"\n\nyour experience point is:\n"<<exp
<<"\n\nyour health point is:\n\n"
<<health<<"\n\nyour armor have "<<arm<<" of protetion\n\n";
label1
:
system("pause");
return 0;
}
]
se alguém tiver experincia com esse tipo de jogo e pode me ajudar com os loops, se alguém sabe como fazer uma variavel inteira que quando recebe um valor negativa superior ao valor default não estoure(no caso da unsigned)ou fique negativa somente zero como a barra de health de um jogo quando o personagem morre
Pergunta
Iod
ola sou iniciante em c++ e resolvi criar um rpg pra botar oque eu aprendi em pratica já vou avisando que o codigo esta confuso porque eu usei o comando goto pra fazer os loops, eu fiz a historia em ingles mais os switch em portugues pra meus irmaos entenderem.
eis o codigo:
se alguém tiver experincia com esse tipo de jogo e pode me ajudar com os loops, se alguém sabe como fazer uma variavel inteira que quando recebe um valor negativa superior ao valor default não estoure(no caso da unsigned)ou fique negativa somente zero como a barra de health de um jogo quando o personagem morre
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.