Koncepcja gry - Gra turowa

0

Witam
Chciałbym się bardziej doświadczonych forumowiczów podpytać, poradzić jak zabrać się za pewien projekt.
Praca ta ma zostać wykonana na przedmiot programowanie zdarzeniowe, a temat "Gra turowa"
a oto wytyczne :

a) będzie zapisywała i odczytywała dane z bazy danych (relacyjne)
b) będzie konfigurowalna przy pomocy plików properties w Javie
c) będzie zawierała co najmniej 3 komponenty własnego autorstwa (kontrolki)
d) będzie wykorzystywała asynchroniczne wywołania funkcjonalności (swing worker)
e) będzie wykorzystywała co najmniej dwie usługi sieciowe (webservicy, www np. czas i pogoda)
f) do rozmieszczenia komponentów należy użyć Layout.

Moja idea wygląda nastepujące :
Gra trochę by przypominała szachy, toczy się na planszy 10x10, ale zamiast pionków mam typy jednostek (np. miecznik, pikinie, konnica, lucznik). Kazdy Typ jednostki ma okresla ilosc hp, zasieg ruchu, sile ataku (pozniej mozna dodac bonus do walki z poszczegolna jednostka).

Co myślicie o czymś takim ? Obawiam się że jest to zbyt skomplikowane, ale niestety nie bardzo mam pomysł na inna koncepcje.

2

Nienawidzę takich zadań: "wykorzystaj technologię A, B C". To jest stawianie problemu na głowie i z tego co widzę większość ludzi ma problem z wymyśleniem zadania pod konkretne rozwiązania.
Powinno być: "wykonaj projekt o zadanych funkcjonalnościach", a wybór rozwiązań powinien być dowolny (można jedynie coś sugerować).

0

Dla mnie gra o tematyce turowej to np statki czy szachy pomysł ma być oryginalny ?

0

szachy odpadają ale statki owszem mogą być, ale wtedy pasuje zrobić by można było się z innym komputerem połączyć a tu juz dodatkowo komplikuje sprawę

0

Fajna koncepcja. Jako WS zrób może globalną tablicę najlepszych wyników (Create + Read) i sprawa załatwiona.

0

Kółko i krzyżyk :)

0

Praca ta ma zostać wykonana na przedmiot programowanie zdarzeniowe, a temat "Gra turowa"

temat dobry, ale wytyczne z d**y:

c) będzie zawierała co najmniej 3 komponenty własnego autorstwa (kontrolki)

nie rozumiem, jak robienie swoich kontrolek ma się do gry turowej.

e) będzie wykorzystywała co najmniej dwie usługi sieciowe (webservicy, www np. czas i pogoda)

a może i stawiała horoskop i pobierała kurs funta? Co to ma wspólnego z grą? Ktoś, kto dał takie wytyczne, raczej nie myślał wiele.

f) do rozmieszczenia komponentów należy użyć Layout.

Też z d**y założenie. Skąd wiadomo, jakie rozmieszczenie komponentów będzie najbardziej odpowiednie?

b) będzie konfigurowalna przy pomocy plików properties w Javie

o, to ma pewien sens, bo faktycznie grę warto konfigurować (ale jaką metodą to już jest względne).
Szczególnie warto to konfigurować:

Kazdy Typ jednostki ma okresla ilosc hp, zasieg ruchu, sile ataku (pozniej mozna dodac bonus do walki z poszczegolna jednostka).

Co myślicie o czymś takim ? Obawiam się że jest to zbyt skomplikowane

jest zbyt skomplikowane, bo twoje wytyczne są w ogóle niedopasowane do tego projektu i nie dają najmniejszej wskazówki jak to można zrobić, i co zrobić, oprócz jakichś głupot typu "zrób grę turową, połącz się z usługami sieciowymi i pobierz czas i pogodę". Przecież to nie ma najmniejszego sensu xD).

ale:

  • czy rozgrywka ma być sieciowa, czy na gorącym krześle? (gorące krzesło będzie łatwiejsze do zaimplementowania).
  • jeśli to sieciowa gra, to będzie przydatny jakis system komunikatów. Czyli jeślli gracz klika gdzieś, żeby ruszyć pionkiem, to nie wystarczy że go ruszysz. Ponieważ musisz jeszcze powiadomić serwer/drugi komputer, że gracz się ruszył. Wygodne więc będzie zrobić obiekt komunikatu, który będzie miał własny typ i właściwości. np. (pseudokod)
{
  typ: rusz się
  współrzedne: 10, 30
  kto: gracz 1
}

i wysyłasz tę strukturę do serwera. Tam powinna nastapić walidacja, czy na pewno masz prawo się tam ruszyc a nie jesteś cheaterem itp.

chyba, że olejesz sieciówkę i zrobisz grę na gorącym krześle.

  • aha, przyda się jakaś zmienna/obiekt oznaczający stan, w którym się znajduje gra, czyli "czyja jest tura". Ale też tym stanem może być "ekran menu" itp. Zalezy co tam będziesz mial w grze.
1

Ja kiedyś coś podobnego do tego zakodziłem: http://hexxagon.com/
nadaje się do: gry sieciowej, turowej, vs AI

dodaj zapis gry i high score i będziesz miał bazę danych na siłę :D

0

Niech zgadne programowanie zdarzeniowe u Chmielewskiego na Wacie :)

0

Sorry, nie studiowałem informatyki :P Politechnika Poznanska, projekt komus z roku robilem na zaliczenie jakiegos przedmiotu z pograniczania programowania

0

Wymagania rzeczywiście denne.

Tak na serio - ktoś już to pisał tutaj w komentarzach. Zrób prostą grę typu np. kółko i krzyżyk w technologii smart-client (działa offline, ale online działa lepiej)

  1. Serwer - pozwala na zapisywanie stanu gry niejako "w chmurze" po socketach. Serwer trzyma zapisane stany gry w DB. Dodatkowo wystawia info o czasie i pogodzie po WS.
  2. Properties - rozmiar planszy, ile trzeba w jednym rzędzie zebrać linijek, adres serwera.
  3. Asynchroniczność - gra będzie się toczyć normalnie, natomiast klient co jakiś czas powinien dopytywać się serwer o to, czy w ogóle jest on dostępny (tryb online/offline przełącza się bez ingerencji użytkownika), oraz o pogodę i czas.
  4. Kontrolki - jedna pokazująca pogodę, druga kontrolka online/offline, pole do kółka/krzyżyka.
  5. Layout - jeśli wykładowca łaskawie pozwoli to MiG Layout (http://www.miglayout.com/), jeśli nie to BorderLayout (do ogólnego ekranu) + GridLayout (do planszy z grą).

Serwer - w czymś prostym (jest trochę technologii, np. SpringBoot - apka, którą da się uruchomić bezpośrednio z linii komend która pozwala wystawiać usługi i dobijać się do bazy).
Klient - jak mus to mus, czyli Swing i dobrodziejstwa.
WebService - najlepiej REST (SpringBoot łatwo wystawia takie usługi).
Dostęp do bazy danych - Spring JDBC lub Spring Hibernate

1 użytkowników online, w tym zalogowanych: 0, gości: 1