الاحتكار النهائي بواسطة 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) الخاصة بجميع المراقبين، ثم يفعل المراقبون شيئًا ما أو لا يفعلون وفقًا للرسالة الموجودة داخل طريقة PublishEvent.
- تم تعديل المنشئين من فئات مختلفة، اعتمادًا على احتياجاتهم. بالإضافة إلى ذلك، أصبح لدى PropertySquare الآن قائمة للإيجارات مثل الإيجار دون بناء أي شيء أو إيجار العقار في حالة وجود منزل واحد تم بناؤه وما إلى ذلك. أضفنا أيضًا مؤشر الإيجار إلى PropertySquare لإظهار الإيجار الآن الذي يمثل الإيجار الحالي في الإيجار قائمة.
- تمت إضافة فئة ServerInfo للحفاظ على الاتصال بين أجهزة كمبيوتر متعددة.
- لقد قمنا أيضًا بإنشاء فئة Board في واجهة المستخدم كمؤشر ترابط من خلال تنفيذ واجهة Runnable لأن حركة البيادق وحركتها تتم على اللوحة في واجهة المستخدم ويتم تنفيذ الرسوم المتحركة باستخدام طريقة Thread.sleep.
- تم تغيير EvaSquare(diceValue, speedDieValue, player) إلى validSquare(gameEngine) ، نظرًا لأننا نحتاج إلى GameEngine لنشر أحداث مختلفة، اعتمادًا على المربع الذي يوجد فيه اللاعب الحالي.
- تم تغيير buyProperty(propertySquare, player) إلى buy() ، حيث يجب أن يكون هناك بعض المرونة فيما يتعلق بنوع المربع الذي سيتم شراؤه (Utility Square أو Property Square). ويمكن للاعب الحالي فقط شراء شيء ما
- تم نقل طريقة hasEnoughMoney(player, المبلغ) إلى فئة MoneyController.
مخططات التسلسل المنفذة:
- مخطط التسلسل 1: الانتقال من المربع الحالي إلى مربع الوجهة.
- مخطط التسلسل 4: شراء العقارات
- مخطط التسلسل 5: دفع الإيجار
- مخطط التسلسل 6: بدء الخادم أسماء الطرق وأسماء الفئات التي تتضمن تلك الطرق المكتوبة في المخططات هي نفس تلك الموجودة في التعليمات البرمجية باستثناء التغييرات الصغيرة الموضحة أعلاه.
مخطط الطبقة:
- يتم تنفيذ كل فئة مدرجة في الرسم التخطيطي للفئة باستثناء BotBehavior مع تغييرات صغيرة محددة أعلاه وأيضًا
- لا يتم حذف فئة ServerProtocol لعدم الحاجة إليها.
- تتم إضافة فئة ServerInfo لتخزين عدد العملاء المتصلين وعناوين IP الخاصة بهم.
- تمت إضافة متغير إلى فئة Player للتحقق من العميل الذي ينتمي إليه.
ائتمان
هذا مشروع من Comp 302: دورة الهندسة في جامعة كوتش بإشراف البروفيسور أتيلا غورسوي.
مدونة لقواعد السلوك
طلاب جامعة Koç الذين يدرسون هذه الدورة حاليًا، راجع قواعد السلوك.