Witam.
Tworzę prostą grę sandboxową w ascii oparta o układ współrzędnych.
W celu stworzenia układu muszę użyć tablicy wielowymiarowej, gdyż mapa może być nawet nieskończenie wielka (zależnie od tego jak daleko pójdzie gracz). Dzięki tej tablicy będę mógł także potem łatwo wpisać w jej komórki wygenerowane “obiekty” (np. # - krzak), a następnie przenieść tablicę na mapę.
…i własnie przy tworzeniu tablicy wielowymiarowej napotkałem na problem.
for(var y=num-1; y>(num)*(-1); y--) { //tworzenie kolumn
coordinates[y] = y; //dodanie indeksu kolumny do tabeli
//[...]
for(var x=(num-1)*(-1); x<num; x++) { //tworzenie wierszy
coordinates[y][x] = x; //dodanie indeksu wiersza do określonej kolumny w tabeli
//[...]
}
}
/* Dla wielkości mapy równej 11 konsola powinna zwrócić 141-elementową tablicę:
coordinates[od -5 do 5][od -5 do 5] --> coordinates[11 elementow][11 elementow] --> łącznie 141
Tymczasem zwraca:
--> coordinates
<-- [0, 1, 2, 3, 4, 5]
--> console.log(coordinates)
<-- [0, 1, 2, 3, 4, 5, -1: -1, -2: -2, -3: -3, -4: -4, -5: -5]
Po odpowiedziach jakie otrzymuję od konsoli widzę, że coś jest nie tak.
- Czy dozwolone jest wgl. tworzenie tablic z ujemnymi indeksami, które będą normalnie funkcjonować ? np. tab[-1][-2] = 3
-
Czy można tworzyć asocjacyjne tablice wymiarowe ? np. tab[’-1’][’-2’] = 2; (dzięki temu mógłbym uniknąć wpisywania ujemnego indeksu jeśli jest to niedozwolone).
-
Jak potem przekonwertować string na integer ?
Z góry dziękuję i pozdrawiam !
Opisałem problem dość skrótowo, jeśli coś jest niezrozumiałe, to proszę pytać