62. PYTHON (OOP) – Game Sederhana

Belajar Bahasa Python Lengkap

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


Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.