Buat fungsi Anda (Python)

Buat fungsimu sendiri

> Tutorial

Membuat fungsi

Kita sudah memakai beberapa fungsi dan metode (setWeapon, moveToward, dll.). Kamu juga bisa membuat fungsi buatanmu sendiri, dengan sintaks berikut:

Kata kunci return, yang bersifat opsional, membuat fungsi mengembalikan sebuah nilai. Pada contoh sebelumnya, fungsi menerima parameter x dan y lalu mengembalikan jumlah keduanya: x + y.

Di Python, sebuah fungsi harus didefinisikan sebelum dipakai. Karena itu kita menaruh fungsi-fungsi kita di bagian atas file, sebelum kode utama.

Membuat fungsi canFinish(enemy)

Kode kita sebelumnya untuk kondisi "penghabisan" musuh cukup panjang dan sulit dipakai ulang, jadi kita akan memasukkannya ke dalam sebuah fungsi.

Kita akan membuat fungsi buatan sendiri canFinish(enemy), yang menerima seorang musuh dan mengembalikan boolean yang menunjukkan apakah kita bisa menghabisinya atau tidak.

Kita salin kode penghabisan ke dalam sebuah fungsi, yang ditulis seperti ini:

Sekarang kita bisa memakai fungsi canFinish di kode utama kita, sehingga kodenya jauh lebih mudah ditulis:

Tahukah kamu? Memindahkan kode yang muncul beberapa kali ke dalam sebuah fungsi disebut faktorisasi.

Membuat fungsi getClosestCellToUseWeapon(enemy)

Kamu mungkin sudah sadar bahwa untuk memakai Senapan mesin atau, nanti, Laser, kamu harus berada sejajar dengan musuh.

Jadi kamu harus pergi ke sel tempat kamu bisa memakai senjatamu, bukan sekadar mendekati musuh seperti saat memakai Pistol.

Untuk itu, metode me.weaponCells(enemy) mengembalikan semua sel tempat kamu bisa memakai senjatamu pada sebuah target. Lalu kamu harus memilih salah satunya: yang paling dekat!

Jadi kita akan membuat fungsi getClosestCellToUseWeapon dan memakai perulangan for in untuk mencari sel yang jaraknya paling dekat dengan kita:

Kita memakainya untuk menggantikan gerakan tadi:

Untuk melihat medan dan sel-selnya dengan lebih jelas, jangan ragu memakai mode taktis dengan menekan T selama pertarungan.

Di bab-bab berikutnya, kita akan membahas topik yang lebih sulit, jadi luangkan waktu untuk bereksperimen dengan fungsi-fungsimu dan konsep-konsep yang sudah kita pelajari: semua itu sudah cukup untuk naik peringkat!

❓ Kuis

Fungsi mana yang mengembalikan kuadrat sebuah angka dengan benar?

def square(x): return x * x def square(x): x * x def square(): return x * x function square(x): return x * x

Fungsi mana yang menghitung nilai maksimum sebuah list?

def maximum(my_list): maxi = -99999 for e in my_list: if e > maxi: maxi = e return maxi def maximum(my_list): maxi = 99999 for e in my_list: if e < maxi: maxi = e return maxi def maximum(my_list): maxi = 99999 for e in my_list: if e > maxi: maxi = e return maxi def maximum(my_list): maxi = -99999 for e in my_list: if e < maxi: maxi = e return maxi

AI lengkap