Абсолютная монополия от NullPointer
Этот проект разработан компанией
- Беркай Барлас (руководитель группы)
- Баран Беркай Хёкелек
- Фуркан Сахбаз
- Тумай Оздемир
- Алихан Зорлу
Основные характеристики
- Мультиплеер по одной сети до 12 игроков
- Сохранить/загрузить состояние игры
- Игроки-боты с 3 разными уровнями ИИ
- Защита от сбоев сети и системы
- Общайтесь с друзьями в игре
Отчет о проекте
Отчет о проекте PDF
Видео меню
Видео игры
Как играть в игру:
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.
Протестированные классы:
- GameEngine
- PlayerController
- MoneyController
- PropertySquare
- Square (Various Square types such as Go to Jail, Go, Bonus, Reverse Direction, Roll 3, and Luxury Tax.)
Список изменений[18.11.2018]:
- Было внесено несколько изменений в методы интерфейса Observer, а также добавлено несколько методов в классы GameEngine и UI для корректной подписки, публикации и выполнения событий. Например, DiceDisplay и PlayerPanel подписаны на GameEngine, а GameEngine публикует с помощью метода publisEvent(message) и всех методов onEvent(message) наблюдателей вызываются, затем наблюдатели делают что-то или нет в соответствии с сообщением внутри publicEvent метод.
- Конструкторы различных классов были модифицированы в зависимости от их потребностей. Кроме того, в PropertySquare теперь есть список арендных ставок, например, арендная плата без строительства или арендная плата за недвижимость в случае, если построен один дом и т. д. Мы также добавили в PropertySquare индекс rentIndex, чтобы показать, какая арендная плата сейчас является текущей арендной платой в арендной плате. список.
- Класс ServerInfo был добавлен для поддержания соединения между несколькими компьютерами.
- Мы также создали класс Board в пользовательском интерфейсе как поток, реализовав интерфейс Runnable, поскольку движение и анимация пешек происходят на доске в пользовательском интерфейсе, а анимация выполняется с помощью метода Thread.sleep.
- AssessmentSquare(diceValue,speedDieValue, player) изменен на AssessmentSquare(gameEngine) , так как нам нужно, чтобы GameEngine публиковал различные события в зависимости от того, на каком квадрате находится текущий игрок.
- buyProperty(propertySquare, player) был изменен на buy() , поскольку должна быть некоторая гибкость в отношении того, какой тип квадрата будет куплен (Utility Square или Property Square). И только текущий игрок может что-то купить.
- Метод hasEnoughMoney(player, sum) перенесен в класс MoneyController.
Реализованные диаграммы последовательности:
- Диаграмма последовательности 1: Перейдите от текущей площади к площади назначения.
- Диаграмма последовательности 4: Покупка недвижимости
- Диаграмма последовательности 5: Оплата аренды
- Диаграмма последовательности 6: Запуск сервера Имена методов и имена классов, которые включают эти методы, написанные на диаграммах, такие же, как и в коде, за исключением небольших изменений, описанных выше.
Диаграмма классов:
- Каждый класс, включенный в диаграмму классов, кроме BotBehavior, реализован с небольшими изменениями, которые указаны выше, а также
- Класс ServerProtocol не удаляется, поскольку он не нужен.
- Добавлен класс ServerInfo для хранения количества подключенных клиентов и их IP-адресов.
- Переменная, добавленная в класс Player, чтобы проверить, от какого она клиента.
Кредит
Это проект из Comp 302: Инженерный курс Университета Коч под руководством профессора Атиллы Гюрсой.
Нормы поведения
Студентам Университета Коч, которые в настоящее время проходят этот курс, см. Кодекс поведения.