Witam. Robię prostą gierkę w konsoli, która między innymi wyświetla mapę działającą na zasadzie dwuwymiarowej tablicy.
Niedawno ogarnąłem podejście obiektowe, no ale mam taki problem:
Otóż metody w klasach w odrębnym pliku nie widzą globalnych zmiennych z main.cpp (no bo są w innym pliku), a potrzebowałem modyfikować w nich tę tablicę. Próbowałem więc wysłać im tę tablicę, jednak mam z tym nieco problemów…
Pliku nagłówkowego nie podaję, bo jest nieistotny, ale tu jest cpp:
(w apostrofach w metodach pokaz() są znaki, a że konsola ma inne kodowanie niż edytor to są to w nim te znaki typu STX)
(zombie na razie trochę głupi, bo tylko w lewo chodzi, ale później zmądrzeje :D)
#include <iostream>
#include "klasy.h"
using namespace std;
//##################################
//{##########KLASA ZOMBIE###########
//##################################
Zombie::Zombie()
{
int hp = 100;
int dmg = 10;
int p1 = 18;
int p2 = 48;
}
void Zombie::pokaz(char mapa[20][50])
{
mapa[p1][p2] = '';
}
void Zombie::ruch(char mapa[20][50])
{
p2--;
pokaz(&mapa);
}
//##################################
//}#################################
//##################################
//##################################
//{###########KLASA GRACZ###########
//##################################
Gracz::Gracz()
{
int hp = 100;
int dmg = 10;
int p1 = 18;
int p2 = 48;
}
void Gracz::pokaz(char mapa[20][50])
{
mapa[p1][p2] = '';
}
void Gracz::wgore(char mapa[20][50]);
{
if(mapa[p1-1][p2]!='Û')
{
p1--;
}
}
void Gracz::wdol(char mapa[20][50]);
{
if(mapa[p1+1][p2]!='Û')
{
p1++;
}
}
void Gracz:wprawo(char mapa[20][50]);
{
if(mapa[p1][p2+1]!='Û')
{
p2++;
}
}
void Gracz::wlewo(char mapa[20][50]);
{
if(mapa[p1][p2-1]!='Û')
{
p2--;
}
}
//##################################
//}#################################
//##################################