Menu
CoddyTech

Perulangan di Dalam Perulangan

Termasuk bagian Python di Jendela Game dalam perjalanan Pygame di Coddy. Pelajaran 18 dari 32.

Badan perulangan dapat berisi perulangan lain. Perulangan bagian dalam berjalan sampai selesai pada setiap putaran perulangan bagian luar:

for row in range(4):
    for col in range(8):
        x = 130 + col * 50
        y = 210 + row * 60
        pygame.draw.rect(screen, (255, 210, 90), (x, y, 20, 20))

Untuk row 0, perulangan bagian dalam menggambar 8 jendela di sepanjang bagian atas. Lalu row menjadi 1 dan perulangan bagian dalam menggambar 8 jendela lagi, 60 piksel lebih rendah. Empat baris yang masing-masing berisi delapan jendela menghasilkan 32 jendela. Grid selalu memiliki bentuk seperti ini: satu perulangan untuk baris, satu untuk kolom.

pygame.draw.rect(screen, colour, (x, y, width, height)) menggambar persegi panjang berisi dengan sudut kiri atas di (x, y).

Perhatikan indentasinya: for bagian dalam diindentasi di bawah bagian luar, lalu badannya diindentasi lagi, 8 spasi dari perulangan bagian luar.

challenge icon

Tantangan

Sedang

Terangi seluruh gedung:

  1. Bungkus perulangan jendela dengan for row in range(4):.
  2. Tetapkan y = 210 + row * 60, sehingga baris-barisnya berada pada y 210, 270, 330, dan 390.
  3. Kamu mendapatkan 32 jendela: 4 baris yang masing-masing terdiri dari 8 jendela.

Coba sendiri

import pygame

pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()

# Siapkan semuanya di sini, sebelum perulangan game.

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # Ubah hal-hal di sini, sekali setiap frame.

    screen.fill((20, 24, 48))
    # Gambar di sini, setelah pengisian.
    pygame.draw.rect(screen, (40, 44, 70), (100, 180, 440, 300))
    for col in range(8):
        x = 130 + col * 50
        y = 210
        pygame.draw.rect(screen, (255, 210, 90), (x, y, 20, 20))

    pygame.display.flip()
    clock.tick(60)

pygame.quit()

Semua pelajaran di Python di Jendela Game

Latihan sendiri: Playground Pygame