Project ini merupakan implementasi sederhana game Pac-Man menggunakan tiga design pattern utama: Factory Method, State, dan Decorator.
- Peta 2D sederhana dengan array karakter.
- Ghost dengan perilaku berbeda-beda seperti mengejar, menghindar, berkeliaran.
- Transisi perilaku Ghost dinamis berdasarkan kondisi game.
- Efek sementara seperti Speed Boost menggunakan decorator.
- Digunakan untuk membuat berbagai tipe ghost (
Blinky,Pinky,Inky,Clyde). - Cek
GhostFactory.h/.cpp
- Ghost memiliki beberapa state:
WanderState→ Bergerak acakChaseState→ Mengejar PacmanFrightenedState→ Menghindar dari PacmanReturnToBaseState→ Kembali ke base setelah tertangkap
- Cek
GhostState.h,GhostStates.cpp
- Contoh:
SpeedBoostDecorator→ Ghost bergerak dua kali per giliran. - Cek
GhostDecorator.h/.cpp
- Compile semua file
.cppdi dalam project ini. - Jalankan
main()darimain.cpp. - Gunakan
W A S Duntuk menggerakkan Pac-Man. - Tekan
Quntuk keluar.
- Buat subclass baru dari
GhostdiGhostTypes.h, misalnya:
class Shadow : public Ghost {
public:
Shadow(int x, int y) : Ghost(x, y) {}
char getSymbol() const override { return 'S'; }
};- Tambahkan ke dalam
GhostFactory.cpp:
else if (type == "Shadow") {
return std::make_shared<Shadow>(x, y);
}- Tambahkan ke
GameControllersaat inisialisasi:
ghosts.push_back(GhostFactory::createGhost("Shadow", 3, 4));Selesai! Ghost baru kamu akan muncul dan mengikuti perilaku default (WanderState) kecuali kamu modifikasi state-nya.
Dibuat sebagai tugas kuliah untuk studi penerapan design pattern di C++.