Tugas Pertemuan 8

 Nama    :    Muhammad Shafa Narariya

NRP        :    5025231016

Kelas       :    G


Implementasi Word Of Zull



1. Command



Kelas ini menyimpan informasi tentang perintah yang diberikan oleh pemain.

  • Atribut:

    • commandWord: Kata pertama dalam perintah (misalnya "go" dalam "go north").
    • secondWord: Kata kedua dalam perintah, jika ada (misalnya "north" dalam "go north").
  • Metode:

    • Command(String firstWord, String secondWord): Konstruktor yang menerima dua kata dan menetapkannya pada atribut commandWord dan secondWord.
    • getCommandWord(): Mengembalikan commandWord.
    • getSecondWord(): Mengembalikan secondWord.
    • isUnknown(): Mengembalikan true jika commandWord tidak dikenali (nilai null), yang menunjukkan bahwa perintah tidak valid.
    • hasSecondWord(): Mengembalikan true jika ada secondWord, yang menunjukkan bahwa perintah memiliki dua kata.

2. CommandWords



Kelas ini menyimpan daftar kata perintah yang valid dalam permainan.

  • Atribut:

    • validCommands: Array statis yang berisi kata-kata perintah yang valid, seperti "go", "quit", dan "help".
  • Metode:

    • CommandWords(): Konstruktor kosong yang hanya menginisialisasi objek, tanpa tindakan tambahan.
    • isCommand(String aString): Memeriksa apakah aString adalah kata perintah yang valid dengan memeriksa keberadaannya dalam validCommands. Mengembalikan true jika kata tersebut valid.

3. Game



Kelas utama untuk menjalankan permainan. Kelas ini mengelola pembuatan ruangan, navigasi di antara ruangan, dan input dari pemain.

  • Atribut:

    • parser: Objek Parser untuk membaca dan menginterpretasi perintah pemain.
    • currentRoom: Objek Room yang menyimpan ruangan tempat pemain saat ini berada.
  • Metode:

    • Game(): Konstruktor yang memanggil createRooms() untuk membuat ruangan dan mengatur parser.
    • createRooms(): Membuat semua ruangan dalam permainan, mengatur deskripsi dan koneksi antar ruangan, dan menempatkan pemain di ruangan awal.
    • play(): Memulai permainan dengan menampilkan pesan sambutan, dan menjalankan loop utama permainan yang membaca perintah pemain dan memprosesnya hingga permainan berakhir.
    • printWelcome(): Menampilkan pesan pembuka permainan.
    • processCommand(Command command): Memproses perintah yang diberikan pemain dan menjalankan tindakan sesuai dengan perintah.
    • printHelp(): Menampilkan daftar perintah yang tersedia untuk pemain.
    • goRoom(Command command): Menerima perintah arah dari pemain dan memindahkan mereka ke ruangan lain jika ada jalan ke arah tersebut.
    • quit(Command command): Memeriksa jika pemain ingin keluar dari permainan, mengembalikan true jika benar.

4. Parser



Kelas ini berfungsi membaca dan menginterpretasi input pemain.

  • Atribut:

    • commands: Objek CommandWords untuk memverifikasi apakah kata yang dimasukkan adalah perintah yang valid.
    • reader: Objek Scanner untuk membaca input dari pemain.
  • Metode:

    • Parser(): Konstruktor yang menginisialisasi commands dan reader.
    • getCommand(): Membaca input pemain, memecahnya menjadi kata-kata, dan membuat objek Command. Metode ini memverifikasi apakah kata pertama adalah perintah yang valid menggunakan commands.

5. Room



Kelas ini mewakili ruangan dalam permainan. Setiap ruangan memiliki deskripsi dan jalan keluar ke arah tertentu.

  • Atribut:

    • description: Deskripsi ruangan (misalnya, "di luar pintu masuk utama universitas").
    • northExit, southExit, eastExit, westExit: Arah keluar dari ruangan ini, yang merujuk pada objek Room lain jika ada jalan keluar ke arah tertentu, atau null jika tidak ada jalan.
  • Metode:

    • Room(String description): Konstruktor yang menginisialisasi deskripsi ruangan.
    • setExits(Room north, Room east, Room south, Room west): Menetapkan arah keluar untuk ruangan ini, sesuai dengan parameter yang diberikan.
    • getDescription(): Mengembalikan deskripsi ruangan saat ini.


How To Run
  1. Buat Kelas: Di BlueJ, buat file kelas baru untuk masing-masing kelas (Command, CommandWords, Game, Parser, dan Room), dan salin kode ke dalam file masing-masing.
  2. Compile semua kelas agar tidak ada kesalahan.
  3. Jalankan Permainan:
    • Buat objek dari kelas Game.
    • Panggil metode play() pada objek Game untuk memulai permainan.

Komentar

Postingan populer dari blog ini

Church-Turing Thesis dan kaitannya dengan Bahasa pemrograman

Tugas Data Peserta