Monopoli Utama oleh NullPointer
Proyek ini dikembangkan oleh
- Berkay Barlas (Pemimpin tim)
- Baran Berkay Hökelek
- Furkan Sahbaz
- Tumay Ozdemir
- Alihan Zorlu
Fitur Utama
- Multiplayer melalui jaringan yang sama hingga 12 Pemain
- Simpan / Muat status permainan
- Pemain Bot dengan 3 level AI berbeda
- Perlindungan Kegagalan Jaringan dan Sistem
- Ngobrol dengan teman Anda di dalam game
Laporan Proyek
Laporan Proyek PDF
Video Menu
Video Permainan
Cara Memainkan Game:
You can either start a new server by clicking the Start Server button or join to an already existing server by clicking the Join Button.
If you click on the Join Server button instead, the address that you want to join into will be asked. So, if the game is played between different computers, their IP addresses should be known.
Regardless of whether you create a new game or join to an already established game, in the server screen two options are displayed: Start Game and Quit Server.
The game starts after the Start Game button is clicked. The board is displayed on the left side of the screen. In the middle part, we have the Button Panel.
- Roll Button is used to roll dice and move the player. Buy Property button is used to buy an unowned property. The button becomes unpressable if the square that the player on is not a property square or if the property square is already owned.
- Draw Card button is below the Buy Property button, it is used to draw an action card, such as a Community Chest Card or a Chance Card.
- Improve Property button is used to upgrade a property. Above the button panel, we have Dice Panel.
Player panel is on the right side of the Button Panel. The name of the players are displayed as buttons on a scrollable panel. When the names of the players are clicked, several information about them are displayed such as the Player name, Money, Owned properties and Owned utilities.
Lastly, on the bottom left part of the game window screen, there is a Message Box Panel. When new messages are added, they are first fitted into the message box screen and after a certain number of messages, the messages are displayed in a scrollable panel.
Kelas yang Diuji:
- GameEngine
- PlayerController
- MoneyController
- PropertySquare
- Square (Various Square types such as Go to Jail, Go, Bonus, Reverse Direction, Roll 3, and Luxury Tax.)
Catatan Perubahan[18.11.2018]:
- Beberapa perubahan pada metode antarmuka Pengamat telah dilakukan, dan beberapa metode telah ditambahkan ke kelas GameEngine dan UI agar dapat berlangganan, menerbitkan, dan menjalankan acara dengan benar. Misalnya, DiceDisplay dan PlayerPanel berlangganan GameEngine, dan GameEngine menerbitkan dengan metode publisEvent(message) dan semua metode onEvent(message) pengamat dipanggil, lalu pengamat melakukan sesuatu atau tidak sesuai dengan pesan di dalam metode publikasikanEvent.
- Konstruktor dari berbagai kelas telah dimodifikasi, tergantung kebutuhannya. Selain itu, PropertySquare sekarang memiliki daftar sewa seperti sewa tanpa membangun apa pun atau sewa properti jika ada satu rumah yang dibangun dll. Kami juga menambahkan rentIndex ke PropertySquare untuk menunjukkan sewa mana yang sekarang adalah sewa saat ini dalam sewa daftar.
- Kelas ServerInfo telah ditambahkan untuk menjaga koneksi antara beberapa komputer.
- Kami juga menjadikan kelas Board di UI sebagai Thread dengan mengimplementasikan antarmuka Runnable karena pergerakan dan animasi pion berlangsung di Board di UI dan animasi dilakukan dengan menggunakan metode Thread.sleep.
- evaluasiSquare(diceValue, speedDieValue, player) telah diubah menjadi evaluasiSquare(gameEngine) , karena kita memerlukan GameEngine untuk mempublikasikan berbagai acara, bergantung pada kotak mana pemain saat ini berada.
- buyProperty(propertySquare, player) telah diubah menjadi buy() , karena perlu ada fleksibilitas mengenai jenis kotak mana yang akan dibeli (Utility Square atau Property Square). Dan, hanya pemain saat ini yang dapat membeli sesuatu
- Metode hasEnoughMoney(pemain, jumlah) telah ditransfer ke kelas MoneyController.
Diagram Urutan yang Diimplementasikan:
- Diagram Urutan 1: Berpindah dari Kotak Saat Ini ke Kotak Tujuan.
- Diagram Urutan 4: Beli Properti
- Diagram Urutan 5: Bayar Sewa
- Diagram Urutan 6: Mulai Server Nama metode dan nama kelas yang mencakup metode yang ditulis dalam diagram sama dengan yang ada dalam kode kecuali perubahan kecil yang dijelaskan di atas.
Diagram Kelas:
- Setiap kelas yang termasuk dalam diagram kelas kecuali BotBehavior diimplementasikan dengan perubahan kecil yang ditentukan di atas dan juga
- Kelas ServerProtocol tidak dihapus karena tidak diperlukan.
- Kelas ServerInfo ditambahkan untuk menyimpan jumlah klien yang terhubung dan IP mereka.
- Variabel ditambahkan ke kelas Player untuk memeriksa dari klien mana variabel tersebut berasal.
Kredit
Ini adalah proyek dari Comp 302: Kursus Teknik Universitas Koç yang diinstruksikan oleh Prof. Atilla Gürsoy.
Kode Etik
Mahasiswa Universitas Koç yang sedang mengambil kursus ini, lihat Kode Etik.