[C++] Przekazywanie dwuwymiarowej tablicy do metody w klasie będącej w osobnym pliku, problem


(GOKOP) #1

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--;
    }
}
 
//##################################
//}#################################
//##################################