Salve, programmo da poco in C++, quindi so pochi elementi di base e vorrei continuare ad usare quelli quali la switch ed il do..
Ora posto, purtroppo non in spoiler dato che non lo trovo, il codice del programma e vorrei sapere dove è l'errore perché, durante la prima battaglia, anche se non si hanno magie, il programma o le utilizza, o fa premere due volte lo stesso tasto per poi fare un'azione di combattimento in automatico o non ricordo cos'altro . Nel caso della terza magia quale quella della scimmia esso funziona bene dato che il nemico muore, ma negli altri due casi va in tilt. Grazie
codice:
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
//generali
int risposta;
//scelte
int sceltainiziale;
int sceltamagia;
int sceltabattaglia;
//statistiche
int atkmio=50;
int difmio=50;
int magiafuoco=0;
int magiatempo=0;
int magiascimmia=0;
int hpmio=1000;
int mpfuoco=30;
int mptempo=30;
int mpscimmia=30;
//statistiche nemici 1
int atknemico1=50;
int difnemico1=30;
int hpnemico1=150;
cout<<"Sei il figlio illeggittimo del re, assaggia la vendetta e conquista il trono che ti spetta."<<endl<<endl;
cout<<" Queste sono le tue statistiche ATK=50; DANNO MAGIA=0; DIF=50; PUNTI MAGIA=30; HP=1000."<<endl<<endl;
cout<<"Sei davanti al castello di tuo padre, combatti i guerrieri."<<endl<<endl;
cout<<"Hai due possibilità, cosa vuoi fare? Aumentare il tuo attacco [1], aumentare la tua difesa[2] o imparare una magia[3], cosa scegli?"<<endl<<endl;
cin>>sceltainiziale;
switch (sceltainiziale)
{
case 1:
cout<<"Hai deciso di aumentare il tuo attacco, hai ricevuto una spada con del fuoco attorno[Shishkebab, attacco + 30!]"<<endl<<endl;
atkmio = atkmio+30;
mpfuoco = mpfuoco-30;
mptempo= mptempo- 30;
mpscimmia= mpscimmia - 30;
break;
case 2:
cout<<"Hai deciso di aumentare la tua difesa, hai ricevuto uno scudo e un'armatura di maglia[scudo del re, armatura di maglia, difesa +30!]"<<endl<<endl;
difmio = difmio+30;
mpfuoco = mpfuoco-30;
mptempo= mptempo- 30;
mpscimmia= mpscimmia - 30;
break;
case 3:
cout<<" Hai deciso di imparare una magia, premi un tasto a caso tra 1, 2, 3 e imparerai una magia."<<endl<<endl;
cin>>sceltamagia;
switch (sceltamagia)
{
case 1:
cout<<"Hai imparato la magia del fuoco che potrai usare in alcune occasioni nella battaglia. [magia+47!]Questa magia ti diminurà gli mp di 3"<<endl<<endl;
magiafuoco = magiafuoco+47;
mptempo= mptempo- 30;
mpscimmia= mpscimmia - 30;
break;
case 2:
cout<<"Hai imparato la magia del tempo, tu sarai superveloce e i tuoi nemici saranno lentissimi[magia +67]Questa magia ti diminuirà gli mp di 5."<<endl<<endl;
magiatempo = magiatempo+67;
mpfuoco= mpfuoco- 30;
mpscimmia= mpscimmia - 30;
break;
case 3:
cout<<"Hai imparato la magia più potente, complimenti, trasformerai il tuo avversario in una scimmia con hp di 0 e vincerai. La potrai usare contro chi vuoi, una sola volta, tranne contro il boss finale.[magia + 1000!] Questa magia ti diminuirà i tuoi mp a 0."<<endl<<endl;
magiascimmia = magiascimmia+1000;
mpfuoco= mpfuoco- 30;
mptempo= mptempo - 30;
}//sceltamagia
}//sceltainiziale
if (hpnemico1<=0)
{
cout<<"Hai ucciso il tuo nemico!"<<endl<<endl;
}
else
{
do
{
cout<<"I tuoi hp:"<<hpmio<<endl;
cout<<"I tuoi mpfuoco:"<<mpfuoco<<endl;
cout<<"I tuoi mptempo:"<<mptempo<<endl;
cout<<"I tuoi mpscimmia:"<<mpscimmia<<endl;
cout<<"Hp del nemico"<<hpnemico1<<endl;
cout<<"Un nemico! Cosa vuoi fare? [1] usa attacco, [2] usa magia fuoco, [3] usa magia tempo, [4] usa magia scimmia, [5] difenditi."<<endl;
cin>>sceltabattaglia;
switch (sceltabattaglia)
{
case 1:
cout<<"Hai attaccato il primo nemico, i suoi hp scendono!"<<endl<<endl;
hpnemico1=hpnemico1 - (atkmio-difnemico1);
cout<<"Ugh!"<<endl;
cout<<"Ti attacca anche lui, i tuoi hp scendono!"<<endl<<endl;
hpmio= hpmio- atknemico1;
if (hpnemico1<=0)
{cout<<"hai ucciso il nemico!"<<endl<<endl;
cout<<"COMPLIMENTI, HAI VINTO!"<<endl;
cout<<"premi [0] ";
cin>>risposta;}
else {
cout<<"Premi [1]"<<endl<<endl;
cin>>risposta;}
break;
case 2:
if (mpfuoco<3)
{
cout<<"Non puoi usarla. Premi [2](non sbagliare tasto)";
cin>>risposta;
}//chiusura if finiti mp
else
{cout<<"Hai attaccato il primo nemico con la magia del fuoco"<<endl<<endl;
hpnemico1=hpnemico1 - (magiafuoco-difnemico1);
mpfuoco= mpfuoco - 3;
if (hpnemico1<=0)
{cout<<"hai ucciso il nemico!"<<endl<<endl;
cout<<"COMPLIMENTI, HAI VINTO!"<<endl;
cout<<"premi [0] ";
cin>>risposta;}//chiusura if
else {
cout<<"Premi [1]"<<endl<<endl;
cin>>risposta;}//chiusura else
break;
}//chiusura else magia fuoco
case 3:
if (mptempo<5)
{
cout<<"Non puoi usarla. Premi [2](non sbagliare tasto)";
cin>>risposta;
}//chiusura if finiti mp
else
{cout<<"Hai attaccato il nemico con la magia del tempo!"<<endl<<endl;
hpnemico1=hpnemico1 - (magiatempo-difnemico1);
mptempo= mptempo - 5;
if (hpnemico1<=0)
{cout<<"hai ucciso il nemico!"<<endl<<endl;
cout<<"COMPLIMENTI, HAI VINTO!"<<endl;
cout<<"premi [0] ";
cin>>risposta;}//chiusura if
else {
cout<<"Premi [1]"<<endl<<endl;
cin>>risposta;}//chiusura else
break;
}//chiusura else magia tempo
case 4:
if (mpscimmia<30)
{
cout<<"Non puoi usarla. Premi [2](non sbagliare tasto)";
cin>>risposta;
}//chiusura if finiti mp
else
{cout<<"Hai attaccato il nemico con la magia della scimmia, spero tu l'abbia usata bene!"<<endl<<endl;
hpnemico1=hpnemico1 - (magiascimmia-difnemico1);
mpscimmia= mpscimmia - 30;
if (hpnemico1<=0)
{cout<<"Hai ucciso il nemico!"<<endl<<endl;
cout<<"COMPLIMENTI, HAI VINTO!"<<endl;
cout<<"premi [0] ";
cin>>risposta;}//chiusura if
else {
cout<<"Premi [1]"<<endl<<endl;
cin>>risposta;}//chiusura else
break;
}//chiusura else magia scimmia
case 5:
cout<<"Hai decido di difenderti dall'attacco del nemico!";
hpmio=hpmio - (atknemico1-difmio);
cout<<" Il nemico ti ha colpito!"<<endl<<endl;
break;
}//chiusura switchbattaglia
}//chiusura do
while (risposta==1);
cout<<"Complimenti, ora si va avanti!"<<endl;
system("PAUSE");
return 0;
}
}