Menu
CoddyTech

Angka Acak

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

Module random Python memilih angka secara acak. Impor module ini di bagian atas program, sebelum atau sesudah import pygame:

import random

random.randint(a, b) memberikan bilangan bulat dari a hingga b, termasuk kedua batasnya. random.choice(items) memilih satu item dari sebuah list:

x = random.randint(20, 620)
size = random.choice([3, 4, 5])

Setiap pemanggilan memilih lagi, jadi panggil fungsi itu saat kamu membutuhkan nilai baru. Bintang yang ditempatkan dengan tombol Spasi:

if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:
    x = random.randint(20, 620)
    y = random.randint(60, 300)
    stars.append((x, y))

Perhatikan tanda kurung ganda di stars.append((x, y)): append menerima satu item, dan item itu adalah tuple (x, y). Jika kamu memilih x dan y sekali saja sebelum perulangan game, setiap bintang akan berada di tempat yang sama.

challenge icon

Tantangan

Sedang

Tekan Space untuk menyebarkan bintang:

  1. Tambahkan import random di bagian atas.
  2. Saat event KEYDOWN untuk K_SPACE terjadi, pilih x = random.randint(20, 620) dan y = random.randint(60, 300), lalu tambahkan (x, y) ke stars.
  3. Klik tetap menambahkan bintang seperti sebelumnya.

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.
stars = []
font = pygame.font.Font(None, 36)

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

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

    screen.fill((20, 24, 48))
    # Gambar di sini, setelah mengisi layar.
    for star in stars:
        pygame.draw.circle(screen, (255, 255, 255), star, 5)
    text = font.render(f"Stars: {len(stars)}", True, (230, 230, 240))
    screen.blit(text, (20, 20))

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

pygame.quit()
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Python di Jendela Game

Latihan sendiri: Playground Pygame