Witam.
Dzisiaj wpadłem na pomysł, aby zbudować własną grę w języku C++. Miała być to zwykła gra RPG z rozwojem miast itp. Coś jakbyśmy wcielali się w jakiegoś szlachcia czy coś takiego. No dobrze, w sumie to wiedz zbędna, więc przechodzę do problemu...
Otóż problem jest taki, że mimo, że klikam 1 lub 2 w pierwszej pętli while to i tak ona się powtarza zamiast zatrzymać.
(gra jest jeszcze niedokończona)
#include <iostream>
#include <time.h>
#include <windows.h>
#include <conio.h>
#include <fstream>
using namespace std;
char *tr(char *str)
{
static char buff[256];
char cp[]="\245\206\251\210\344\242\230\276\253\244\217\250\235\343\340\227\275\215ąćęłńóśżźĄĆĘŁŃÓŚŻŹ";
if(strlen(str)>=sizeof(buff)) return str;
char *bf=buff;
while(*str)
{
char *pos=strchr(cp+18,*str);
*(bf++)=pos?*(pos-18):*str;
++str;
}
*bf=0;
return buff;
}
int wybor1,wybor2,wybor3;
int main()
{
cout << "witamy w grze The lord of empires !" << endl;
Sleep(2500);
system("cls");
do
{
cout<<tr("Rozpoczęcie gry")<<endl;
cout<<tr("-------------------------------------")<<endl;
cout<<tr("1. Nowa gra")<<endl;
cout<<tr("2. Wczytanie rozpoczętej gry")<<endl;
cout<<tr("3. Wyjście")<<endl;
wybor1=getch();
switch(wybor1)
{
case '1':
{
}
break;
case '2':
{
}
break;
case '3':
{
do
{
system("cls");
cout<<tr("Czy napewno chcesz wyjść z menu ?")<<endl;
cout<<"1. Tak"<<endl;
cout<<"2. Nie"<<endl;
wybor2=getch();
switch(wybor2)
{
case '1': return 0; break;
case '2':
{
do
{
system("cls");
cout<<tr("Rozpoczęcie gry")<<endl;
cout<<tr("-------------------------------------")<<endl;
cout<<tr("1. Nowa gra")<<endl;
cout<<tr("2. Wczytanie rozpoczętej gry")<<endl;
wybor3=getchar();
switch(wybor3)
{
case '1': break;
case '2': break;
default:
{
system("cls");
cout<<"Nie ma takiej opcji";
Sleep(2000);
system("cls");
}
break;
}
}while((wybor3=='1')||(wybor3=='2'));
}
break;
default:
{
system("cls");
cout<<"Nie ma takiej opcji";
Sleep(2000);
system("cls");
}
break;
}
}while((wybor2=='1')||(wybor2=='2'));
}
break;
default:
{
system("cls");
cout<<"Nie ma takiej opcji"<<endl;
Sleep(2000);
system("cls");
}
break;
}
}while((wybor1=='1')||(wybor1=='2'));
return 0;
}