pairs dan ipairs

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Banyak skrip sering kali perlu menjelajahi kamus atau array. Namun terkadang, Anda mungkin tidak tahu awal dan akhir dari struktur data ini. Misalnya, kamus pemain mungkin sedang berubah, atau pemain mungkin memiliki inventaris array dengan ukuran yang bervariasi.

Dalam situasi seperti ini, Anda dapat menggunakan pairs() dan ipairs(). Ini dapat digunakan dengan loop for untuk menjelajahi setiap elemen tanpa titik awal dan akhir yang diketahui.

Artikel ini akan membahas cara menggunakan keduanya, serta memberikan contoh skrip praktis di mana Anda melacak pesanan restoran dalam permainan memasak.

Kamus dan pairs()

pairs() digunakan dengan kamus. Contoh terlihat di bawah ini.


local myDictionary = {
["Pemain Biru"] = "Ana",
["Pemain Emas"] = "Binh",
["Pemain Merah"] = "Cate",
}
for key, value in pairs(myDictionary) do
print(key .. " adalah " .. value)
end

pairs() dapat digunakan untuk bekerja dengan kunci, nilai, atau keduanya dari elemen kamus. Dalam loop for di bawah ini, variabel pertama adalah kunci. Variabel kedua adalah nilai. Kamus yang ingin Anda kerjakan diteruskan ke pairs().


local inventory = {
["Bricks Emas"] = 43,
Karot = 3,
Senter = 2,
}
print("Anda memiliki:")
for itemName, itemValue in pairs(inventory) do
print(itemValue, itemName)
end

Ketika dijalankan, kode akan mencetak yang berikut:


Anda memiliki:
43 Bricks Emas
3 Karot
2 Senter

Array dan ipairs()

ipairs() digunakan dengan array. "i" dalam ipairs() berdiri untuk "indeks." Gunakan ipairs() dan array dalam kombinasi dengan loop for untuk bekerja dengan nilai terurut seperti papan skor. Contoh terlihat di bawah ini.


local players = {"Ali", "Ben", "Cammy"}
for playerRank, playerName in ipairs(players) do
print("Pemenang #" .. playerRank .. " adalah " .. playerName)
end

Ketika dijalankan, kode akan mencetak yang berikut:


Pemenang #1 adalah Ali
Pemenang #2 adalah Ben
Pemenang #3 adalah Cammy

Latihan - Simulator Sup Restoran

Mari kita buat sup untuk simulator restoran di mana pemain memilih dari daftar bahan sup yang mungkin. Bahan-bahan akan disimpan sebagai kunci, dan nilainya akan dimulai sebagai false sehingga pemain hanya mendapatkan apa yang mereka pilih.

Gunakan pairs() untuk melihat apa yang dipilih, dan kemudian ipairs() untuk mencetak daftar bahan.

  1. Buat kamus baru bernama menu. Tambahkan 3 - 5 pasangan kunci-nilai di mana kunci adalah bahan dan nilainya adalah false.


    local menu = {
    kubis = false,
    daging = false,
    tomat = false,
    mie = false,
    }
  2. Di bawah kamus menu, tambahkan array kosong yang akan diisi dengan pilihan pelanggan nanti.


    -- Sup pelanggan
    local selectedIngredients = {}
  3. Gunakan pairs() untuk memeriksa apakah setiap bahan dalam kamus ditandai true atau false. Jika true, tambahkan bahan tersebut ke sup.


    -- Sup pelanggan
    local selectedIngredients = {}
    -- Menambahkan pilihan pelanggan ke sup mereka
    for menuChoice, value in pairs(menu) do
    if value then
    table.insert(selectedIngredients, menuChoice)
    end
    end
  4. Ulangi pesanan kembali kepada pelanggan. Dalam skrip, kode berikut di bawah ini.

    • Periksa apakah ada item menu dalam selectedIngredients. Jika ada, cetak "Anda memesan sup dengan: ".
    • Gunakan ipairs() untuk menjelajahi array selectedIngredients dan mencetak setiap bahan.
    • Uji dengan mengubah setidaknya satu item menu menjadi true.

    -- Mencetak pesanan sup dari "selectedIngredients"
    if #selectedIngredients > 0 then
    print("Anda memesan sup dengan: ")
    for index, soupIngredient in ipairs(selectedIngredients) do
    print(soupIngredient)
    end
    end
  5. Dalam pernyataan if yang memeriksa apakah ada item menu, tambahkan kondisi else yang memberi tahu pelanggan jika tidak ada bahan yang dipilih.


    if #selectedIngredients > 0 then
    print("Anda memesan sup dengan: ")
    for index, soupIngredient in ipairs(selectedIngredients) do
    print(soupIngredient)
    end
    else
    print("Tidak ada yang dipilih. Apakah Anda tidak lapar?")
    end

Tantangan opsional

Di bawah ini adalah beberapa tantangan yang menerapkan penggunaan pairs dan ipairs dengan cara yang berbeda. Cobalah untuk melihat apakah Anda dapat membangun kode untuk ini.

Tantangan: Buat NPC Pelayan Alih-alih menggunakan jendela Output, gunakan NPC dari Intro To Arrays untuk membuat pelayan yang mengambil pesanan pelanggan.

Tantangan: Izinkan Pemain untuk Membuat Pesanan Izinkan pemain untuk memilih bahan dengan menyentuh bagian fisik seperti prompt kedekatan. Untuk informasi lebih lanjut, lihat Prompt Kedekatan.

Tantangan Lanjutan: Buat Simulator Sup Saya Buat simulator restoran di mana pemain adalah koki! Pemain harus mengumpulkan bahan untuk mencocokkan pesanan yang diberikan kepada mereka oleh pelayan.

  1. Buat properti dalam permainan untuk 3 - 5 bahan yang berbeda.
  2. Buat 3 - 5 resep menggunakan kamus mirip dengan yang ada di pelajaran ini.
  3. Buat array yang menyimpan semua resep.
  4. Secara acak pilih resep dan gunakan NPC untuk memberi tahu pemain apa saja bahan-bahannya.
  5. Buat kamus baru untuk membuat resep berdasarkan bahan propertinya yang disentuh pemain.
  6. Bandingkan resep pemain dengan resep yang dipilih oleh NPC.
  7. Tingkatkan tantangan dengan menambahkan kondisi ekstra, seperti timer.
©2026 Roblox Corporation. Roblox, logo Roblox, dan Powering Imagination termasuk dalam merek dagang kami yang terdaftar dan tidak terdaftar di AS dan negara lainnya.