Dlaczego przy wyborze (w,s,a,d) kończy program?
#include <iostream>
#include <unistd.h>
#include <ncurses.h>
#include <cstdlib>
using namespace std;
bool player_smierc = false;
int comand;
float hp, dmg, exp, nexp=100;
int lvl=1;
int x = 2, y = 2;
string ruch;
//voidy
void menu();
void gra();
void map();
void stats();
void input();
void logic();
void klasa();
void menu ()
{
system("clear");
cout<<"Witaj! ----RPG---"<<endl<<endl;
cout<<"1. Start gry"<<endl;
cout<<"2. Wyjście"<<endl;
cin >>comand;
switch(comand)
{
case 1:
{
klasa();
}break;
case 2:
{
cout<<"Gra zostanie wylaczona!"; sleep(2);
exit(0);
}break;
deflaut:
{
cout<<"Nie ma takiej opcji!";sleep(2);
menu();
}break;
}
}
void klasa()
{
system("clear");
cout<<"WYBIERZ KLASE: "<<endl<<endl;
cout<<"1. Wojownik"<<endl;
cout<<"2. Lowca"<<endl;
cout<<"3. Mag"<<endl;
cin >> comand;
switch(comand)
{
case 1:
{
hp = 100;
dmg = 5;
gra();
}break;
case 2:
{
hp = 50;
dmg = 8;
gra();
}break;
case 3:
{
hp = 75;
dmg = 7;
gra();
}break;
default:
{
cout<<"Nie ma takiej klasy!"<<endl;
sleep(2);
klasa();
}break;
}
}
void gra()
{
system("clear");
map();
stats();
input();
logic();
}
void map()
{
if((x==2) && (y==2))
{
cout<<"Wioska Startowa"<<endl;
}
}
void stats()
{
cout<<"<*>Pozycja gracza na mapie: X: "<<x<<"Y: "<<y<<"<*>"<<endl;
cout<<"HP/"<<hp<<" ";
cout<<"DMG/"<<dmg<<" ";
cout<<"LVL/"<<lvl<<" ";
cout<<"EXP:"<<exp<<"/"<<nexp<<endl;
}
void input()
{
cin>>ruch;
if(ruch=="w")
{
y++;
}
else if(ruch=="a")
{
x=x-1;
}
else if(ruch=="s")
{
y=y-1;
}
else if(ruch=="d")
{
y=y+1;
}
else
{
cout<<"Nie ma takiego polecenia"<<endl;sleep(2);
gra();
}
}
void logic()
{
if(exp>=nexp)
{
exp=0;
lvl++;
hp+=3;
dmg+=2;
nexp=nexp*1.15;
}
}