Wikia

Wikia Polska

Komentarz1

Skryptowe rewolucje – 2: Przepis na tablicę i odwrotnie

Czas na rady z tablicami. Żeby móc lepiej przetestować skrypty z tego i poprzedniego wpisu, stworzę stronę i zalinkuję w następnym wpisie. Zaczynamy!

Skryptowe rewolucje

Stwórzmy sobie tablicę, tak skrótowo.

var przepis = [
 5,5,5,
 5,0,5,
 5,5,5
];

Wygląda to znajomo... To przepis na skrzynkę w Minecrafcie. Tablica z wyglądu posiada rzędy, ale JavaScript tego nie odczytuje. Aby dało się odczytać kolumny i rzędy, lepiej zapisać tak:

var przepis = [
 [5,5,5],
 [5,0,5],
 [5,5,5]
];

Nasza tablica ma dwa wymiary. Aby sprawdzić przepis, skrypt musi wykonać pewne czynności. Stwórzmy funkcję, która sprawdzi, czy wskazane tablice są takie same.

function craftingTable(c) {
 var w = 0;
 for(var a = 0; a < 3; a++) {
  for(var b = 0; b < 3; b++) {
   if(c[a][b] == przepis[a][b]) {w = w + 1;}
  }
 }
 return Math.floor(w/9);
}

Teraz możemy stworzyć drugą tablicę i sprawdzić, czy są takie same.

var typ1 = [
 [5,5,5],
 [5,5,5],
 [5,5,5]
],
wynik = craftingTable(typ1); // = 0

Wynik się nie zgadza. Podmieńmy jedną z zmiennych w tablicy.

var typ1[1][1] = 0;
wynik = craftingTable(typ1); // = 1

Czego powinniście się z tego dowiedzieć?

  • Z tablicą z wieloma wymiarami lepiej się pracuje,
  • Porównując tabele, jeśli są takie same, zwraca 1.

Następnym razem opiszę tworzenie API. Skrypt był testowany w Firefoksie (100% poprawnie).

Więcej od Wikii

Losowa wiki