Mam taki kod i sie mecze nad rozwiazaniem tego zeby to wsadzic w klase.Chce sie pozbyc jak najwiecej rzeczy z main().Jak mozna sterowanie zrobic w funkcje?albo w klase?
#include <iostream>
#include <Windows.h>
#include <string>
using namespace std;
char Map[40][40] = {"###################",
"#*................!",
"#............##.###",
"#*...........#..###",
"#########....#.####",
"# #....#.# #",
"# #....#.# #",
"# #......# #",
"# #....### #",
"# #....# #",
"# #....# #",
"# #....# #",
"# #....# #",
"# #....# #",
"# #....# #",
"# #....# #",
"# #....# #",
"# @ #....# #",
"# #*..*# #",
"###################"};//19
int gamespeed = 500;
int licznik =0;
int net =4;
bool stop = true;
class ster
{
public:
int up()
{
GetAsyncKeyState(VK_UP);
{
int y2 = (y-1);
switch(Map[y2][x])
{
case ' ':
{
Map[y][x]=' ';
y-=1;
Map[y2][x]='@';
}break;
}
}
}
};
int main()
{
ster ster;
while(stop)
{
system("cls");
for (int y =0; y < 20; y++)
{
cout <<Map[y]<<endl;
}
cout<<"Przejechane auta :"<<licznik;
if(licznik <= net)
{
Map[3][1]='*';
Map[18][10]='*';
}
if(GetAsyncKeyState(VK_F1)!=0)
{
Map[1][8]='#';
Map[2][8]='#';
Map[3][8]='#';
Map[4][9]='.';
Map[4][10]='.';
Map[4][11]='.';
Map[4][12]='.';
}
if(GetAsyncKeyState(VK_F2)!=0)
{
Map[1][8]='.';
Map[2][8]='.';
Map[3][8]='.';
Map[4][9]='#';
Map[4][10]='#';
Map[4][11]='#';
Map[4][12]='#';
}
if(GetAsyncKeyState(VK_F3)!=0)
{
Map[7][13]='#';
}
if(GetAsyncKeyState(VK_F4)!=0)
{
Map[7][13]='.';
}
for (int y=0;y<20;y++)
{
for (int x=0;x<20;x++)
{
switch (Map[y][x])
{
case '#':
{
//Map[y][x]=219;
break;
}
case '*':
{
int y2 = (y - 1);
switch(Map[y2][x])
case '.':
{
Map[y][x]='.';
y-=1;
Map[y2][x]='*';
//return [y2][x];
break;
}
int x2 = (x + 1);
switch(Map[y][x2])
{
case '.':
{
Map[y][x]='.';
x+=1;
Map[y][x2]='*';
//return Map[y][x2];
}break;
case '!':
{
Map[y][x]='.';
x+=1;
Map[y][x2]='!';
//return Map[y][x2];
//licznik++;
}break;
}
}
case '@': //system sterowania dla @
{
ster.up();
if(GetAsyncKeyState(VK_DOWN)!=0)
{
int y2 = (y+1);
switch(Map[y2][x])
{
case ' ':
{
Map[y][x]=' ';
y+=1;
Map[y2][x]='@';
}break;
}
}
if(GetAsyncKeyState(VK_LEFT)!=0)
{
int x2 = (x - 1);
switch(Map[y][x2])
{
case ' ':
{
Map[y][x]=' ';
x-=1;
Map[y][x2]='@';
}break;
}
}
if(GetAsyncKeyState(VK_RIGHT)!=0)
{
int x2 = (x + 1);
switch(Map[y][x2])
{
case ' ':
{
Map[y][x]=' ';
x+=1;
Map[y][x2]='@';
}break;
}
}
}
}
}
}
Sleep (gamespeed);
}
return 0;
}