pary i ipairs

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Wiele skryptów często musi przechodzić przez słowniki lub tablice. Ale czasami możesz nie znać początku i końca tych struktur danych. Na przykład, słownik graczy może się zmieniać, lub gracze mogą mieć tablicę z różnymi rozmiarami zapasów.

W takich sytuacjach możesz używać pairs() i ipairs(). Można je używać z pętlą for, aby przejść przez każdy element bez znanych punktów początku i końca.

Ten artykuł omówi ich użycie oraz zawiera praktyczny przykład skryptu, w którym śledzisz zamówienia w restauracji w grze gotowania.

Słowniki i pairs()

pairs() jest używane z słownikami. Przykład znajduje się poniżej.


local myDictionary = {
["Niebieski Gracz"] = "Ana",
["Złoty Gracz"] = "Binh",
["Czerwony Gracz"] = "Cate",
}
for key, value in pairs(myDictionary) do
print(key .. " to " .. value)
end

pairs() może być używane do pracy z kluczem, wartością lub obydwoma elementami słownika. W poniższej pętli for pierwsza zmienna to klucz. Druga zmienna to wartość. Słownik, z którym chcesz pracować, jest przekazywany do pairs().


local inventory = {
["Złote Cegły"] = 43,
Marchewki = 3,
Latarki = 2,
}
print("Masz:")
for itemName, itemValue in pairs(inventory) do
print(itemValue, itemName)
end

Po wykonaniu kodu zostanie wydrukowane:


Masz:
43 Złote Cegły
3 Marchewki
2 Latarki

Tablice i ipairs()

ipairs() jest używane z tablicami. "i" w ipairs() oznacza "indeks." Używaj ipairs() i tablic w połączeniu z pętlą for do pracy z uporządkowanymi wartościami, takimi jak rankingi. Przykład znajduje się poniżej.


local players = {"Ali", "Ben", "Cammy"}
for playerRank, playerName in ipairs(players) do
print("Zwycięzca #" .. playerRank .. " to " .. playerName)
end

Po wykonaniu kodu zostanie wydrukowane:


Zwycięzca #1 to Ali
Zwycięzca #2 to Ben
Zwycięzca #3 to Cammy

Praktyka - Symulator Zupy Restauracyjnej

Zróbmy zupę dla symulatora restauracji, gdzie gracze wybierają z listy możliwych składników zupy. Składniki będą przechowywane jako klucze, a wartości będą początkowo fałszywe, aby gracze otrzymali tylko to, co wybiorą.

Użyj pairs(), aby zobaczyć, co zostało wybrane, a następnie ipairs(), aby wydrukować listę składników.

  1. Stwórz nowy słownik o nazwie menu. Dodaj 3 - 5 par klucz-wartość, gdzie klucz to składnik, a wartość to fałsz.


    local menu = {
    kabaczek = false,
    wołowina = false,
    pomidor = false,
    nakładki = false,
    }
  2. Pod słownikiem menu dodaj pustą tablicę, która zostanie wypełniona wyborami klientów później.


    -- Zupa klienta
    local selectedIngredients = {}
  3. Użyj pairs(), aby sprawdzić, czy każdy składnik w słowniku jest oznaczony jako prawda lub fałsz. Jeśli prawda, dodaj składnik do zupy.


    -- Zupa klienta
    local selectedIngredients = {}
    -- Dodaje wybory klienta do ich zupy
    for menuChoice, value in pairs(menu) do
    if value then
    table.insert(selectedIngredients, menuChoice)
    end
    end
  4. Powtórz zamówienie klientowi. W skrypcie zakoduj następujące poniżej.

    • Sprawdź, czy w selectedIngredients znajduje się element menu. Jeśli tak, wydrukuj "Zamówiłeś zupę z: ".
    • Użyj ipairs(), aby przejrzeć tablicę selectedIngredients i wydrukować każdy składnik.
    • Przetestuj, zmieniając przynajmniej jeden element menu na prawdę.

    -- Wydrukuj zamówienie zupy z "selectedIngredients"
    if #selectedIngredients > 0 then
    print("Zamówiłeś zupę z: ")
    for index, soupIngredient in ipairs(selectedIngredients) do
    print(soupIngredient)
    end
    end
  5. W instrukcji if, która sprawdza, czy w menu znajduje się element, dodaj warunek else, który informuje klientów, że nie wybrano składników.


    if #selectedIngredients > 0 then
    print("Zamówiłeś zupę z: ")
    for index, soupIngredient in ipairs(selectedIngredients) do
    print(soupIngredient)
    end
    else
    print("Nic nie zostało wybrane. Czy nie jesteś głodny?")
    end

Opcjonalne wyzwania

Poniżej znajdują się wyzwania, które stosują użycie pairs i ipairs na różne sposoby. Spróbuj zbudować kod dla tych.

Wyzwanie: Stwórz NPC Kelnera Zamiast używać okna Wyjścia, użyj NPC z Wprowadzenie do tablic, aby stworzyć kelnera, który przyjmuje zamówienia od klientów.

Wyzwanie: Pozwól graczom składać zamówienia Pozwól graczom wybierać składniki poprzez dotknięcie fizycznej części, takiej jak wywołanie bliskości. Po więcej informacji zobacz Wywołania Bliskości.

Zaawansowane wyzwanie: Zrób mi symulator zupy Stwórz symulator restauracji, w której gracze są szefami kuchni! Gracze będą musieli zebrać składniki, aby dopasować zamówienie przekazane im przez kelnera.

  1. Stwórz w grze przedmioty dla 3 - 5 różnych składników.
  2. Stwórz 3 - 5 przepisów używając słowników podobnych do tego w tej lekcji.
  3. Stwórz tablicę, która będzie przechowywać wszystkie przepisy.
  4. Losowo wybierz przepis i użyj NPC, aby powiedzieć graczom, jakie są składniki.
  5. Stwórz nowy słownik, aby stworzyć przepis na podstawie składników, których dotknie gracz.
  6. Porównaj przepis gracza z przepisem wybranym przez NPC.
  7. Zwiększ wyzwanie, dodając dodatkowy warunek, na przykład czasomierz.
©2026 Roblox Corporation. Nazwa Roblox, logo Roblox oraz hasło „Powering Imagination” należą do naszych zarejestrowanych i niezarejestrowanych znaków towarowych na terenie Stanów Zjednoczonych oraz w innych krajach.