Dev - C++ - definir matrices dentro de estructura

 
Vista:
Imágen de perfil de felipe
Val: 141
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

definir matrices dentro de estructura

Publicado por felipe (74 intervenciones) el 07/10/2020 04:32:59
hola, el mapa de mi juego es una matriz, donde cada caracter significa un elemento distinto, por ejemplo un bloque, un enemigo, un cañon,etc...

yo quiero poder ir cargando nuevos niveles de forma cómoda y facil y pensé en crear un array de estructuras,
que sería basicamente un array de matrices previamente definidas, el caso es que no sé como definir los niveles
de una forma cómoda, ya que la funcion load_level_properties me arroja un error, ya que no se pueden asignar matrices de esa forma solo en su definicion pero no asignacion, y yo no quiero definirla manualmente es muy incomodo, habra otra forma?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <iostream>
using namespace std;
 
char newMap[3][3];
 
struct StLevels{
 
    char map[3][3];
    int numero_de_level;
 
    void load_new_level();
    void load_level_properties();
 
}levels[3]
 
void StLevels::load_new_level(int _level){
    for(int x=0;x<3;x++){
        for(int y=0;y<3;y++){
            newMap[y][x] = levels.map[y][x];
        }
    }
    levels[0].numero_de_level++;
}
 
void StLevels::load_new_properties(){
    levels[0].map = {    // ERROR!
        "XXX",
        "X  X",
        "XXX",
    }
 
    levels[1].map = {    // ERROR!
        "XXX",
        "X    ",
        "XXX",
    }
 
    levels[2].map = {    // ERROR!
        "X  X",
        "X  X",
        "XXX",
    }
 
    levels[0].numero_de_level = 0;
 
}
 
 
int main(){
 
 
 
 
 
    for(int i=0;i<3;i++){
        load_new_level;
    }
 
    return 0;
}



algo asi es lo que escribí, pero no se como definir las matrices porque si lo hago a traves de una funcion y las defino así:

"XYX",
"XYZ",
"YXY",

da error, ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

definir matrices dentro de estructura

Publicado por Nacho (181 intervenciones) el 07/10/2020 18:44:55
No, tienes que asignar valor uno a uno de cada elemento de la matriz.

¿Y no querrás hacer más bien esto?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
char newMap[3][3];
 
class StLevels
{
    char map[3][3];
    int numero_de_level;
public:
    void StLevels::load_new_level(int _level) {
        for (int x = 0; x < 3; x++) {
             for (int y = 0; y < 3; y++) {
                 newMap[y][x] = map[y][x];
             }
        }
        numero_de_level++;
    }
 
    void StLevels::load_new_properties() {
        //map =
        numero_de_level = 0;
    }
};
 
    int main() {
        StLevels stLevels[3];
        for (int i = 0; i < 3; i++) stLevels[i].load_new_level(i);
        return 0;
    }
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar