62. PYTHON (OOP) – Game Sederhana

python seeklogo.com 16

Bid TIK Polda Kepri

OOP sangat berguna untuk mengatur objek yang berbeda dan hubungan antar objek tersebut. Sangat berguna khususnya ketika kita mengembangkan game dengan karakter dan fitur yang berbeda.

Mari kita lihat sebuah contoh project yang menunjukkan bagaimana class digunakan dalam sebuah game development. Berikut contohnya adalah game berbasis teks. Di bawah ini adalah fungsi untuk menghandle input dan parsing yang sederhana.

def get_input():
    command = input(": ").split()
    verb_word = command[0]

    if verb_word in verb_dict:
        verb = verb_dict[verb_word]
    else:
        print("Unknown verb {}".format(verb_word))
        return

    if len(command) >= 2:
        noun_word = command[1]
        print(verb(noun_word))
    else:
        print(verb("nothing"))

def say(noun):
    return 'You said "{}"'.format(noun)

verb_dict = {
    "say": say,
}

while True:
    get_input()
=====>
 : say Halo
 You said "Halo"
 : katakan Halo
 Unknown verb katakan
 : say
 You said "nothing" 
=====>

Kode di atas mengambil input dari user dan mencoba untuk mencocokkan kata pertama dengan sebuah command di dalam verb_dict. Jika kecocokan ditemukan, fungsi yang sesuai akan dipanggil.

Selanjutnya adalah menggunakan class untuk merepresentasikan objek game.

class GameObject:
    class_name = ""
    desc = ""
    objects = {}

    def __init__(self, name):
        self.name = name
        GameObject.objects[self.class_name] = self

    def get_desc(self):
        return self.class_name + "\n" + self.desc

class Goblin(GameObject):
    class_name = "goblin"
    desc = "A foul creature"

goblin = Goblin("Gobbly")

def examine(noun):
    if noun in GameObject.objects:
        return GameObject.objects[noun].get_desc()
    else:
        return "There is no {} here.".format(noun)

Kita membuat sebuah class Goblin, dimana meng-inherit dari class GameObjects. Kita juga membuat sebuah fungsi examine, dimana mengembalikan deskripsi objek.

Sekarang kita dapat menambahkan “examine” ke dictionary. Berikut adalah kode selengkapnya.

class GameObject:
    class_name = ""
    desc = ""
    objects = {}

    def __init__(self, name):
        self.name = name
        GameObject.objects[self.class_name] = self

    def get_desc(self):
        return self.class_name + "\n" + self.desc

class Goblin(GameObject):
    class_name = "goblin"
    desc = "A foul creature"

goblin = Goblin("Gobbly")

def examine(noun):
    if noun in GameObject.objects:
        return GameObject.objects[noun].get_desc()
    else:
        return "There is no {} here.".format(noun)

def get_input():
    command = input(": ").split()
    verb_word = command[0]

    if verb_word in verb_dict:
        verb = verb_dict[verb_word]
    else:
        print("Unknown verb {}".format(verb_word))
        return

    if len(command) >= 2:
        noun_word = command[1]
        print(verb(noun_word))
    else:
        print(verb("nothing"))

def say(noun):
    return 'You said "{}"'.format(noun)

verb_dict = {
    "say": say,
    "examine": examine
}

while True:
    get_input()


LANJUTKAN BACA MATERI LENGKAP