Menu
CoddyTech

Union dan Intersection

Termasuk bagian Logika dan Alur dalam perjalanan GDScript di Coddy. Pelajaran 34 dari 78.

Dua set dapat digabungkan dengan dua cara umum:

  • Union memuat setiap anggota yang ada di salah satu set.
  • Intersection hanya memuat anggota yang ada di kedua set.

GDScript tidak memiliki operator untuk operasi ini, jadi kamu membuatnya dengan perulangan. Untuk gabungan, tambahkan anggota dari kedua set ke set baru. Anggota yang ada di kedua set akan berada pada kunci yang sama:

var mia := {"forest": true, "cave": true}
var leo := {"cave": true, "tower": true}
var either := {}
for place in mia:
	either[place] = true
for place in leo:
	either[place] = true
print(either.keys()) # ["forest", "cave", "tower"]

Karena setiap nilai adalah true, merged() menghasilkan gabungan yang sama dalam satu pemanggilan: var either := mia.merged(leo). Fungsi ini mengembalikan dictionary baru dan membiarkan mia tetap tidak berubah.

Untuk irisan, lakukan perulangan pada satu set dan simpan anggota yang juga dimiliki set lainnya:

var both := {}
for place in mia:
	if leo.has(place):
		both[place] = true
print(both.keys()) # ["cave"]

Jika kedua set tidak memiliki anggota yang sama, irisan keduanya kosong dan both.keys() adalah [].

challenge icon

Tantangan

Mudah

Dua pemain masing-masing membuka beberapa skill. Program membaca dua baris, yaitu skill pemain pertama dan pemain kedua, yang dipisahkan oleh spasi, lalu kode awal membuat set first dan second.

Cetak gabungan dan irisan kedua set, dengan anggotanya digabungkan menggunakan , :

  • All skills: diikuti gabungan: skill pemain pertama, lalu skill baru pemain kedua
  • Shared skills: diikuti irisan, sesuai urutan pemain pertama, atau none jika mereka tidak memiliki skill yang sama

Untuk input:

jump dash
dash swim

outputnya adalah:

All skills: jump, dash, swim
Shared skills: dash

Coba sendiri

extends Node

func _ready():
	var first := {}
	for skill in OS.read_string_from_stdin().split(" ", false):
		first[skill] = true
	var second := {}
	for skill in OS.read_string_from_stdin().split(" ", false):
		second[skill] = true

	# Buat gabungan dan irisan

	# Cetak hasilnya
quiz iconUji dirimu

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

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler GDScript online