Programowanie w Javie: Projekt zaliczeniowy

Pozostawię już temat szybkości na drugim planie. Spieranie się o to nie ma większego sensu,  gdyż Java ma wystarczającą prędkość do pisania aplikacji jakie mógłbym napisać. Zresztą Netbeans czy Maple są napisane w Javie i jakoś sobie radzą.

Teraz zamiast zastanawiać się nad nic-nie-zmieniającymi-tematami postanowiłem napisać o tym, że udało mi się połączyć przyjemne z pożytecznym (właściwie to nawet z koniecznym). Otóż czeka mnie do zaprezentowania mojemu profesorowi od Javy mój projekt zaliczeniowy, który właśnie piszę. Z listy opublikowanych „tematów” wybrałem sobie Kółko i krzyżyk na 5. Jeśli komuś nie jest znana ta odmiana popularneto Tic Tac Toe to, różni się ona właściwie dwiema rzeczami. Plansza nie ma ograniczenia (poza wielkością kartki jaką weźmiemy), a „uzbierać” należy 5 zamiast 3 symboli w rzędzie.

Projekt powinien zawierać conajmniej 3 klasy i 1000 linii kodu. Posiadać GUI – najlepiej w Swingu, ale za SWT pewnie nikt by mi głowy nie urwał oraz posiadać elementy programowania sieciowego.

Po kilkudniowym kodzeniu kręgosłupa mojej gry składającej się z 25 klas zawierających 1413 linii kodu. Po dodaniu dwóch klas zawierających główne okno oraz panel odpowiedzialny za wyświetlanie planszy gry doszły jeszcze 493 linie co daje łącznie 1906, a przecież teraz dopiero zacznie się kodzenie! Naprawdę nie wyobrażam sobie jak możnaby było upakować to w 3 klasy…

Tak czy inaczej jestem zmuszony przyznać, że dla mnie – jako programisty C++ – programowanie w Javie to czysta przyjemność. Nie dość, że wszystko co potrzebuję już tam jest to nie muszę się zastanawiać nad wyborem biblioteki GUI, Socketów czy innych śmieci bo to nie moja sprawa. Ogormnym plusem jest również przenośność zapewniona przez bytecode. Może do pisania gier ten język się nie nadaje (chociaż nie jestem tego całkowicie pewien), ale jako narzędzie do tworzenia aplikacji użytkowych to chyba najlepszy wybór.

Wracając do tematu: w chwili obecnej mój projekt prezentuje się następująco…

Projekt zaliczeniowy - Kółko i krzyżyk na 5

Projekt zaliczeniowy - Kółko i krzyżyk na 5

W niedalekiej przyszłości napiszę jak się ma projekt i co dodatkowego w nim zakodziłem 🙂

Na teraz to już wszystko, zapraszam do obejrzenia kolejnego odcinka. Mam nadzieję, że nie bedzie on emitowany za pół roku… 😛

Reklamy

12 myśli nt. „Programowanie w Javie: Projekt zaliczeniowy

  1. Heh, a stań tak obok całej sprawy i zobacz na ile linii kodu wygląda przedstawiony screen i porównaj to z liczbą 1906 :-). Diagnoza : fanatyzm obiektowy :-).

  2. @krajek: widze ze czytales art Regedita 😉 Tylko ze na screenie widać samo GUI, a pod spodem siedzi klient i serwer sieciowy. Ponadto samo stawianie znaczków jest już zaimplementowane. (dodam, że nie robiłem klasy Znak i dziedziczącej po nich Kółko i Krzyżyk 😛 )

    Poza tym, jak już wspomniałem jest to projekt na Javę. Dla profesora. Fanatyzm obiektowy jest wskazany 😉 Właśnie boję się nawet, żeby mi profesor nie narzekał, że za mało obiektowo jest…

  3. Zresztą większość klas to pakiety sieciowe i wyjątki. Klasy rzeczywiście coś robiące są trzy: ServerStarter, GameClient i GameServer. Do tego są jeszcze jakieś listenery… no cóż – obiektowość pełną gębą 😉

  4. Jasne, uczelnia rządzi się swoimi prawami ;). Tylko pamiętaj, że kto z kim przestaje, taki sam się staje ;). Oby Ci ten fanatyzm nie został na zawsze :D.

  5. Taaaa ja też już mam projekt na Javę 😀 Trener strategii do blackjacka, mam już chyba z 1500 linii i też dużo więcej niż 3 klasy, lacze przyjemne z pożytecznym też bo robie to tak czy siak na zlecenie dołoże Swinga + sockety i projekt gotowy 😀

  6. Ej, Panowie. Pogubiliście się gdzieś. Jaki fanatyzm?! O czymś zwykłym mówić z takim wyróżnieniem? Nie, nie. To nie tak jak myślicie. Java JEST obiektowa i żadnego fanatyzmu tu nie ma. Sam „Hello World” potrzebuje klasy, w której będzie funkcja startująca (metoda) main.

    Poza tym cała biblioteka standardowa Javy jest napisana niezwykle obiektowo i obiekt mamy wszędzie gdzie popadnie, szczerze – bardziej to ma chyba tylko Ruby (każda liczba jest obiektem i można dynamicznie to rozszerzyć) czy Smalltalk (każde wyrażenie może być obiektem), ew. jakaś Scala, Lua czy inne cuda, ale to już poza tematem.

    Powtarzam – fanatyzm to pewien punkt patrzenia i to że pewne zjawisko dostało negatywną nazwę od jednego z koderów, nie znaczy, że jest negatywne w każdym języku programowania. C i C++ nie różnią się tak bardzo. C++ od Javy też wcale! Wasz fanatyzm zaczyna się kiedy skaczecie z C bezpośrednio na Javę (a większość pisząc same funkcje bez klas dumnie mówi że koduje w C++). To jest punkt, w którym mówicie o czymś możliwym, ale zupełnie nie na miejscu.

  7. Kurczę, i zapomniałem napisać o samym topicu. Niedawno też robiłem na zaliczenie pewnemu studentowi (ja właśnie maturę zdaję 😉 ) z AI. Planujesz coś takiego jak AI? Jeżeli tak, to polecam oprzeć się na wiedzy eksperckiej i stworzyć pewne wzorce, na podstawie których AI próbuje określić swój następny ruch. Daje całkiem niezłe efekty przy niewielkim wysiłku 😉 Też klepałem w Javie, bardzo przyjemnie powstają takie tworki w tym języku 😉

  8. @Namek: pewnie nie będzie specjalnie AI bo oprócz tego projektu mam jeszcze milion innych rzeczy do roboty, a AI nie bylo w wymaganiach profesora 😉 moze później w charakterze hobbystycznym dodam coś takiego (ale wątpie)

    Jeśli chodzi o programowanie w Javie to jest to bardzo przyjemne – zwłaszcza po programowaniu w C/C++ gdzie do każdej rzeczy było 100 bibliotek i żadna nie była dobra 😉 (a najważniejsze rzeczy i tak trzeba było samemu napisać)

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj / Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj / Zmień )

Zdjęcie na Google+

Komentujesz korzystając z konta Google+. Wyloguj / Zmień )

Connecting to %s