Tugas Pertemuan 8
Nama : Muhammad Shafa Narariya
NRP : 5025231016
Kelas : G
Implementasi Word Of Zull
Source Code : https://github.com/ItsPong/Tugas8
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 atributcommandWorddansecondWord.getCommandWord(): MengembalikancommandWord.getSecondWord(): MengembalikansecondWord.isUnknown(): MengembalikantruejikacommandWordtidak dikenali (nilainull), yang menunjukkan bahwa perintah tidak valid.hasSecondWord(): Mengembalikantruejika adasecondWord, 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 apakahaStringadalah kata perintah yang valid dengan memeriksa keberadaannya dalamvalidCommands. Mengembalikantruejika 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: ObjekParseruntuk membaca dan menginterpretasi perintah pemain.currentRoom: ObjekRoomyang menyimpan ruangan tempat pemain saat ini berada.
Metode:
Game(): Konstruktor yang memanggilcreateRooms()untuk membuat ruangan dan mengaturparser.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, mengembalikantruejika benar.
4. Parser
Kelas ini berfungsi membaca dan menginterpretasi input pemain.
Atribut:
commands: ObjekCommandWordsuntuk memverifikasi apakah kata yang dimasukkan adalah perintah yang valid.reader: ObjekScanneruntuk membaca input dari pemain.
Metode:
Parser(): Konstruktor yang menginisialisasicommandsdanreader.getCommand(): Membaca input pemain, memecahnya menjadi kata-kata, dan membuat objekCommand. Metode ini memverifikasi apakah kata pertama adalah perintah yang valid menggunakancommands.
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 objekRoomlain jika ada jalan keluar ke arah tertentu, ataunulljika 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
- Buat Kelas: Di BlueJ, buat file kelas baru untuk masing-masing kelas (
Command,CommandWords,Game,Parser, danRoom), dan salin kode ke dalam file masing-masing. - Compile semua kelas agar tidak ada kesalahan.
- Jalankan Permainan:
- Buat objek dari kelas
Game. - Panggil metode
play()pada objekGameuntuk memulai permainan.
- Buat objek dari kelas
Komentar
Posting Komentar