estou tentando fazer um jogo de console RPG em c++, ate agora tou fazendo so a parte de uma batalha, o problema e que quando eu entro para batalhar tudo funciona normal, ate que eu faço qualquer asao e ele morre mesmo sendo para não morrer, alguém pode me ajudar e se quizerem me falar algo pra adicionar também ficarei grato :)?OBS: o codigo e meio grande então olhe bem ele e suas variaveis
Aqui o codigo:
#include <iostream>
#include <cstdio>
#include <conio.h>
#include <stdlib.h>
using namespace std;
bool inicio = true, botataca = true, volt = false, morrer = false, morreria = false;
float vida, vidai, energy, energiai, semjog, dano;
float maximo, minimo;
int escolha, escatq, escitem, poe, poh, esccon;
int item(){
system("cls");
while (true){
cout << "Pocao de energia: " << poe << " Pocao de vida: " << poh << endl;
cout << "1 - Pocao de energia (50 de energia)" << endl;
cout << "2 - Pocao de vida (30 de vida)" << endl;
cout << "3 - Voltar" << endl;
escitem = getche();
if (escitem == 49){
if (poe > 0){
energy += 50;
poe--;
break;
}else{
system("cls");
cout << "Sem item!" << endl;
continue;
}
}
else if (escitem == 50){
if (poh > 0){
vida += 30;
poh--;
break;
}else{
system("cls");
cout << "Sem item!" << endl;
continue;
}
}
else if (escitem == 51){
volt = true;
break;
}
else{
continue;
cout << "Escolha errada!" << endl;
}
}
}
int defesa(){
if (energiai <= 50){
botataca = false;
}
}
int reseta(){
maximo = 100;
minimo = 100;
vida = 100;
vidai = 100;
energy = 100;
energiai = 100;
poe = 1;
poh = 2;
inicio = true;
}
int ataque(){
system("cls");
while (true){
cout << "1 - Ataque normal (15 de energia) (15 de dano)" << endl;
cout << "2 - Ataque forte (40 de energia) (30 de dano) (tira 10 de energia do inimigo)" << endl;
cout << "3 - Ataque magico (60 de energia) (20 de dano) (o inimigo não ataca por 2 turnos)" << endl;
cout << "4 - Voltar" << endl;
escatq = getche();
if (escatq == 49){
vidai -= 15;
energy -= 15;
break;
}
else if (escatq == 50){
vidai -= 30;
energy -= 40;
energiai -= 10;
break;
}
else if (escatq == 51){
vidai -= 20;
energy -= 60;
semjog += 2;
break;
}
else if (escatq == 52){
volt = true;
break;
}
else{
continue;
system("cls");
cout << "Escolha errada!" << endl;
}
}
}
int imprime(){
if (inicio == true){
cout << "VAMOS BATALHAR!!!!" << endl;
cout << endl;
inicio = false;
}
cout << "Voce Computador" << endl;
cout << "Vida: " << vida << " Vida inimiga: " << vidai << endl;
cout << "Energia: " << energy << " Energia inimiga: " << energiai << endl;
cout << "1 - Ataque 2 - Defesa 3 - Item 4 - Passar" << endl;
escolha = getche();
}
int main(){
maximo = 100;
minimo = 100;
vida = 100;
vidai = 100;
energy = 100;
energiai = 100;
bool morrer = false;
bool morreria = false;
while (true){
if (esccon == 50){
break;
}
system("cls");
imprime();
botataca = true;
if (escolha == 49){
ataque();
if (volt == true){
volt = false;
continue;
}
}
else if (escolha == 50){
defesa();
}
else if (escolha == 51){
item();
if (volt == true){
continue;
volt = false;
}
}
else if (escolha == 52){
}
else{
system("cls");
cout << "Escolha errada!" << endl;
continue;
}
if (vida > maximo){
vida = 100;
}
if (vida < minimo){
vida = 0;
}
if (vidai > maximo){
vidai = 100;
}
if (vidai < minimo){
vidai = 0;
}
if (semjog > 0){
semjog--;
botataca = false;
}
if (energy < 0){
energy = 0;
}
if (energiai < 0){
energiai = 0;
}
if (botataca == true){
if (vidai == 100){
if (energiai >= 50){
dano = 40;
energiai -= 50;
}else{
continue;
}
}
if (vidai <= 99 && vida > 60){
if (energiai >= 40){
dano = 35;
energiai -= 40;
}else{
continue;
}
}
if (vidai <= 60 && vida > 30){
if (energiai >= 30){
dano = 20;
energiai -= 30;
}else{
continue;
}
}
if (vidai <= 30){
if (energiai >= 15){
dano = 10;
energiai -= 15;
}else{
continue;
}
}
vida -= dano;
}
if (vida == 0){
morrer = true;
}
if (vidai == 0){
morreria = true;
}
while (true){
if (morreria == true){
cout << "Ai voce me derrotou ;-;" << endl;
cout << "Continuar?(1 e ss) (2 e nn)" << endl;
int esccon = getche();
if (esccon == 49){
reseta();
break;
}
else if (esccon == 50){
break;
}
else{
system("cls");
continue;
}
}
if (morrer == true){
cout << "MUAHAHAHAHAHAHAH" << endl;
cout << "Continuar?(1 e ss) (2 e nn)" << endl;
int esccon = getche();
if (esccon == 49){
reseta();
break;
}
else if (esccon == 50){
break;
}
else{
system("cls");
continue;
}
}
energy += 5;
energiai += 5;
}
}
}
Pergunta
Elon Neto
estou tentando fazer um jogo de console RPG em c++, ate agora tou fazendo so a parte de uma batalha, o problema e que quando eu entro para batalhar tudo funciona normal, ate que eu faço qualquer asao e ele morre mesmo sendo para não morrer, alguém pode me ajudar e se quizerem me falar algo pra adicionar também ficarei grato :)?OBS: o codigo e meio grande então olhe bem ele e suas variaveis
Aqui o codigo:
#include <iostream>
Editado por Elon Neto#include <cstdio>
#include <conio.h>
#include <stdlib.h>
using namespace std;
bool inicio = true, botataca = true, volt = false, morrer = false, morreria = false;
float vida, vidai, energy, energiai, semjog, dano;
float maximo, minimo;
int escolha, escatq, escitem, poe, poh, esccon;
int item(){
system("cls");
while (true){
cout << "Pocao de energia: " << poe << " Pocao de vida: " << poh << endl;
cout << "1 - Pocao de energia (50 de energia)" << endl;
cout << "2 - Pocao de vida (30 de vida)" << endl;
cout << "3 - Voltar" << endl;
escitem = getche();
if (escitem == 49){
if (poe > 0){
energy += 50;
poe--;
break;
}else{
system("cls");
cout << "Sem item!" << endl;
continue;
}
}
else if (escitem == 50){
if (poh > 0){
vida += 30;
poh--;
break;
}else{
system("cls");
cout << "Sem item!" << endl;
continue;
}
}
else if (escitem == 51){
volt = true;
break;
}
else{
continue;
cout << "Escolha errada!" << endl;
}
}
}
int defesa(){
if (energiai <= 50){
botataca = false;
}
}
int reseta(){
maximo = 100;
minimo = 100;
vida = 100;
vidai = 100;
energy = 100;
energiai = 100;
poe = 1;
poh = 2;
inicio = true;
}
int ataque(){
system("cls");
while (true){
cout << "1 - Ataque normal (15 de energia) (15 de dano)" << endl;
cout << "2 - Ataque forte (40 de energia) (30 de dano) (tira 10 de energia do inimigo)" << endl;
cout << "3 - Ataque magico (60 de energia) (20 de dano) (o inimigo não ataca por 2 turnos)" << endl;
cout << "4 - Voltar" << endl;
escatq = getche();
if (escatq == 49){
vidai -= 15;
energy -= 15;
break;
}
else if (escatq == 50){
vidai -= 30;
energy -= 40;
energiai -= 10;
break;
}
else if (escatq == 51){
vidai -= 20;
energy -= 60;
semjog += 2;
break;
}
else if (escatq == 52){
volt = true;
break;
}
else{
continue;
system("cls");
cout << "Escolha errada!" << endl;
}
}
}
int imprime(){
if (inicio == true){
cout << "VAMOS BATALHAR!!!!" << endl;
cout << endl;
inicio = false;
}
cout << "Voce Computador" << endl;
cout << "Vida: " << vida << " Vida inimiga: " << vidai << endl;
cout << "Energia: " << energy << " Energia inimiga: " << energiai << endl;
cout << "1 - Ataque 2 - Defesa 3 - Item 4 - Passar" << endl;
escolha = getche();
}
int main(){
maximo = 100;
minimo = 100;
vida = 100;
vidai = 100;
energy = 100;
energiai = 100;
bool morrer = false;
bool morreria = false;
while (true){
if (esccon == 50){
break;
}
system("cls");
imprime();
botataca = true;
if (escolha == 49){
ataque();
if (volt == true){
volt = false;
continue;
}
}
else if (escolha == 50){
defesa();
}
else if (escolha == 51){
item();
if (volt == true){
continue;
volt = false;
}
}
else if (escolha == 52){
}
else{
system("cls");
cout << "Escolha errada!" << endl;
continue;
}
if (vida > maximo){
vida = 100;
}
if (vida < minimo){
vida = 0;
}
if (vidai > maximo){
vidai = 100;
}
if (vidai < minimo){
vidai = 0;
}
if (semjog > 0){
semjog--;
botataca = false;
}
if (energy < 0){
energy = 0;
}
if (energiai < 0){
energiai = 0;
}
if (botataca == true){
if (vidai == 100){
if (energiai >= 50){
dano = 40;
energiai -= 50;
}else{
continue;
}
}
if (vidai <= 99 && vida > 60){
if (energiai >= 40){
dano = 35;
energiai -= 40;
}else{
continue;
}
}
if (vidai <= 60 && vida > 30){
if (energiai >= 30){
dano = 20;
energiai -= 30;
}else{
continue;
}
}
if (vidai <= 30){
if (energiai >= 15){
dano = 10;
energiai -= 15;
}else{
continue;
}
}
vida -= dano;
}
if (vida == 0){
morrer = true;
}
if (vidai == 0){
morreria = true;
}
while (true){
if (morreria == true){
cout << "Ai voce me derrotou ;-;" << endl;
cout << "Continuar?(1 e ss) (2 e nn)" << endl;
int esccon = getche();
if (esccon == 49){
reseta();
break;
}
else if (esccon == 50){
break;
}
else{
system("cls");
continue;
}
}
if (morrer == true){
cout << "MUAHAHAHAHAHAHAH" << endl;
cout << "Continuar?(1 e ss) (2 e nn)" << endl;
int esccon = getche();
if (esccon == 49){
reseta();
break;
}
else if (esccon == 50){
break;
}
else{
system("cls");
continue;
}
}
energy += 5;
energiai += 5;
}
}
}
Link para o comentário
Compartilhar em outros sites
0 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.