Il codice è abbastanza illeggile.. Però guarda bene lo switch, a volte il break mi pare nel posto sbagliato.

Ad esempio,

codice:
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;
            }
Il break viene eseguito solo nel ramo "else". E' quello che vuoi?