คู่และไอพาร์

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

หลายตัวอักษรบางครั้งอาจต้องผ่านพจนานั้นหรือรายการ แต่บางครั้งคุณอาจไม่รู้จุดเริ่มต้นและจุดสิ้นสุดของโครงสร้างข้อมูลเหล่านี้ เช่น พจนาของผู้เล่นอาจเปลี่ยนแปลง หรือผู้เล่นอาจมีรายกา

ในสถานการณ์เหล่านี้คุณสามารถใช้ pairs() และ ipairs() เหล่านี้สามารถใช้กับ for วงล้อเพื่อผ่านแต่ละรายการโดยไม่มีจุดเริ่มต้นและจุดสิ้นสุดที่ทราบ

บทความนี้จะให้ครอบคลุมการใช้งานของพวกเขาและมีตัวอย่างสคริปที่เป็นประโยชน์ในการติดตามคำสั่งอาหารในเกมการทำอาหาร

พจนานุกรมและคู่()

pairs() ใช้กับ พจนานุกรม ตัวอย่างดูด้านล่าง


local myDictionary = {
["Blue Player"] = "Ana",
["Gold Player"] = "Binh",
["Red Player"] = "Cate",
}
for key, value in pairs(myDictionary) do
print(key .. " is " .. value)
end

pairs() สามารถใช้เพื่อทำงานร่วมกับรหัส คีย์หรือทั้งสอง ในตัวอักษรดิกชันด้านล่าง ตัวแรกเป็นรหัส ตัวที่สองเป็นค่า ดิกชันที่คุณต้องการทำงานด้วยได้รับผ่านไปยั


local inventory = {
["Gold Bricks"] = 43,
Carrots = 3,
Torches = 2,
}
print("You have:")
for itemName, itemValue in pairs(inventory) do
print(itemValue, itemName)
end

เมื่อดำเนินการแล้ว กำลังติดตาม:


You have:
43 Gold Bricks
3 Carrots
2 Torches

แมทริคและ ipairs()

ipairs() ใช้กับ รายการ รายการ สัญลักษณ์ "i" ใน ipairs() หมายถึง "ค้นหา" ใช้ 0>ipairs()0> และรายการในคู่มือกับสัญลักษณ์สำหรับลูกค้าเช่นลีดเดอร์บอร์ด ตัวอย่าง


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

เมื่อดำเนินการแล้ว กำลังติดตาม:


Winner #1 is Ali
Winner #2 is Ben
Winner #3 is Cammy

ซ้อม - จำลองซุปร้านอาหาร

Let's ทำซุปสําหรับเครื่องจําลองร้านอาหารที่ผู้เล่นเลือกจากรายการส่วนผสมซุปที่เป็นไปได้ ส่วนผสมจะถูกเก็บไว้เป็นรหัส และมูลค่าจะเริ่มต้นเป็น false เพื่อให้ผู้เล่นเห็นเท่านั้น

ใช้ pairs() เพื่อดูว่ามีอะไรที่เลือกแล้ว แล้ว ipairs() เพื่อพิมพ์รายการส่วนผสม

  1. สร้างคํานิยามใหม่ที่มีชื่อว่า menu เพิ่มคู่ค่า 3 - 5 คู่ที่มีส่วนผสมเป็นสมุดบันทึกและส่วนผสมเป็นปลอม


    local menu = {
    cabbage = false,
    beef = false,
    tomato = false,
    noodles = false,
    }
  2. ภายใต้พจนารูปภาพลังเลือกเมนู เพิ่ม ค่าย่อที่ว่างเปล่า ซึ่งจะเต็มด้วยตัวเลือกของลูกค้าในภายหลัง


    -- ซุปของลูกค้า
    local selectedIngredients = {}
  3. ใช้ pairs() เพื่อตรวจสอบว่าส่วนผสมแต่ละรายการในพจนานุกรมมีเครื่องหมายเป็นจริงหรือไม่ หากเป็นเช่นนั้น ให้เพิ่มส่วนผสมลงในซุป


    -- ซุปของลูกค้า
    local selectedIngredients = {}
    -- เพิ่มตัวเลือกของลูกค้าให้กับซุปของพวกเขา
    for menuChoice, value in pairs(menu) do
    if value then
    table.insert(selectedIngredients, menuChoice)
    end
    end
  4. ทำซ้ำคำสั่งกลับไปยังลูกค้า ในสคริปต์ด้านล่าง โปรดใส่รหัสต่อไปนี้

    • ตรวจสอบว่ามีรายการเมนูใน selectedIngredients หรือไม่ หากเป็นเช่นนั้นให้พิมพ์ "You ordered soup with: "
    • ใช้ ipairs() เพื่อไปผ่านรายการ selectedIngredients และพิมพ์แต่ละส่วนผสม
    • ทดสอบโดยเปลี่ยนอย่างน้อยหนึ่งรายการในเมนูเป็นจริง

    -- พิมพ์คำสั่งซื้อซุปจาก "SelectedIngredients"
    if #selectedIngredients > 0 then
    print("You ordered soup with: ")
    for index, soupIngredient in ipairs(selectedIngredients) do
    print(soupIngredient)
    end
    end
  5. ในประโยค if ไอเท็มให้เพิ่มเงื่อนไขอื่นที่บอกลูกค้าว่าไม่มีส่วนผสมที่เลือก


    if #selectedIngredients > 0 then
    print("You ordered soup with: ")
    for index, soupIngredient in ipairs(selectedIngredients) do
    print(soupIngredient)
    end
    else
    print("Nothing was selected. Are you not hungry?")
    end

ความท้าทายที่อาจเกิดขึ้น

ด้านล่างนี้คือความท้าทายบางอย่างที่ใช้คู่และไอพีเรียร์ในแบบที่แตกต่างกัน ลองดูว่าคุณสามารถสร้างโค้ดสำหรับสิ่งเหล่านี้ได้หรือไม่ ท้าทาย : สร้าง NPC ผู้จัดการรอให้บริการแทนที่จะใช้หน้าต่างการออก, ใช้ NPC จาก การแนะนำสู่รายการเพื่อค้นหาลูกค้า เพื่อสร้าง NPC ที่รอเพื่อรับคำสั่งของลูกค้า ความท้าทาย : สามารถให้ผู้เล่นสั่งซื้อได้ สามารถให้ผู้เล่นเลือกส่วนผสมโดยการแตะส่วนที่เป็นสัญญาณทางกายภาพเช่นเป็นปุ่มใกล้ชิด สำหรับข้อมูลเพิ่มเติมดูที่ เป้าหมายใกล้ชิด . ความท้าทายขั้นสูง : ทำให้ฉันบางซุปซิมูเลเตอร์สร้างร้านอาหารซิมูเลเตอร์ที่ผู้เล่นเป็นเชฟ! ผู้เล่นจะต้องวางส่วนผสมให้ตรงกับคำสั่งที่มอบให้กับพวกเขาโดยผู้ขาย

  1. สร้างของตกแต่งในเกมสำหรับ 3 - 5 ส่วนผสมที่แตกต่างกัน
  2. สร้าง 3 - 5 สูตรโดยใช้พจนานุกรมที่คล้ายกับสูตรหนึ่งในบทเรียนนี้
  3. สร้างค่าย่อที่เก็บสูตรทั้งหมดไว้
  4. เลือกสุ่มสูตรและใช้ NPC เพื่อบอกผู้เล่นว่าส่วนผสมคืออะไร
  5. สร้างพจนามาใหม่เพื่อให้สูตรจากวัตถุดิบที่ผู้เล่นแตะ
  6. เปรียบเทียบสูตรของผู้เล่นกับสูตรที่เลือกโดย NPC
  7. เพิ่มความท้าทายด้วยการเพิ่มเงื่อนไขเพิ่มเติม เช่น เวลา