Menu
CoddyTech

حلقات داخل حلقات

جزء من قسم أساسيات البرمجة النصية في Unity في رحلة Unity على Coddy. الدرس 38 من 85.

يحتاج الصف إلى حلقة واحدة. أما الطابق بأكمله، بما فيه الصفوف والأعمدة، فيحتاج إلى حلقة داخل حلقة:

for (int column = 0; column < 3; column++)
{
    for (int row = 0; row < 2; row++)
    {
        Debug.Log(column + ", " + row);
    }
}

في كل دورة من الحلقة الخارجية، تعمل الحلقة الداخلية حتى نهايتها. لذا يكتب هذا 0, 0 و0, 1، ثم 1, 0 و1, 1، ثم 2, 0 و2, 1: 3 أعمدة مضروبة في صفين، أي 6 أسطر إجمالًا.

تحتاج الحلقتان إلى عدّادين باسمين مختلفين. هنا سُمّيا بحسب ما يعدّانه، column وrow، مما يجعل قراءة الشيفرة أسهل من i وj.

challenge icon

التحدي

متوسط

أنشئ أرضية من 12 بلاطة: 4 أعمدة و3 صفوف.

  1. في Start()، استبدل PlaceTile(0, 0); بـ for (int column = 0; column < 4; column++).
  2. داخل الأقواس المعقوفة، اكتب for (int row = 0; row < 3; row++)، واستدعِ PlaceTile(column, row); داخل هذه الحلقة الداخلية.

اضغط «العب»: ستظهر أرضية من البلاطات، 4 أعمدة في 3 صفوف. ثم اضغط «تحقق».

جرّب بنفسك

using UnityEngine;

public class TileFloor : MonoBehaviour
{
    void Start()
    {
        // رتّب البلاطات في 4 أعمدة و3 صفوف.
        PlaceTile(0, 0);
    }

    void PlaceTile(int column, int row)
    {
        GameObject tile = GameObject.CreatePrimitive(PrimitiveType.Cube);
        tile.name = "Tile";
        tile.transform.position = new Vector3(column * 1.1f - 1.65f, 0.1f, row * 1.1f);
        tile.transform.localScale = new Vector3(1, 0.2f, 1);
        tile.GetComponent<Renderer>().material.color = new Color(0.85f, 0.85f, 0.9f);
    }
}

جميع دروس أساسيات البرمجة النصية في Unity

تدرّب بنفسك: Playground لـ Unity