Witam. Piszę grę i chciałbym się zapytać czy da się zrobić tak aby nie pisać tego kodu za każdym razem przy nowym poziomie.
while(stopgame==false&&lvl==1)
{
system("cls");
for (int y = 0; y<10; y++)
{
cout<<map[y]<<endl;
}
cout<<"HP:"<<hp<<"/"<<"Max HP:"<<mhp<<endl;
cout<<"Pieniadze: "<<pieniadze<<endl;
cout<<"Imie: "<<imie<<endl;
for(int y=0; y<10; y++)
{
for(int x =0; x<10; x++)
{
switch (map[y][x])
{
case '*':
{
cout<<"Obudziles sie na nieznanym ci terenie..." <<endl;
}break;
case '#':
{
map[y][x] = 219;
}
case '@':
{
if (GetAsyncKeyState(VK_UP) !=0)
{
int y2=(y-1);
switch(map[y2][x])
{
case ' ' :
{
map[y][x] = ' ';
y -=1;
map[y2][x] = '@';
}break;
case '*':
{
cout<<"Obudziles sie na nieznanym ci terenie..." <<endl;
map[y][x] = ' ';
y -=1;
map[y2][x] = '@';
}break;
case '!':
{
lvl = 2;
}break;
}
}
if(GetAsyncKeyState(VK_DOWN) !=0)
{
int y2 = (y+1);
switch(map[y2][x])
{
case ' ' :
{
map[y][x] = ' ';
y +=1;
map[y2][x] = '@';
}break;
case '*':
{
cout<<"Obudziles sie na nieznanym ci terenie..." <<endl;
}break;
case '!':
{
lvl = 2;
}break;
}
}
if(GetAsyncKeyState(VK_RIGHT) !=0)
{
int x2 = (x+1);
switch(map[y][x2])
{
case ' ':
{
map[y][x] = ' ';
x +=1;
map[y][x2] = '@';
}break;
case '9':
{
hp-100;
map[y][x2] = ' ';
y -=1;
map[y][x] = '@';
}
case '*':
{
cout<<"Obudziles sie na nieznanym ci terenie..." <<endl;
}break;
case '!':
{
lvl = 2;
}break;
}
}
if(GetAsyncKeyState(VK_LEFT) !=0)
{
int x2 =(x-1);
switch(map [y][x2])
{
case ' ':
{
map[y][x] = ' ';
x -=1;
map[y][x2] = '@';
}break;
case '*':
{
cout<<"Obudziles sie na nieznanym ci terenie..." <<endl;
}break;
case '!':
{
lvl = 2;
}break;
}
}
}break;
}
}
}
Sleep(gamespeed);
}
Liczę na dobrą odpowiedź.