ZalogujRejestracjaSzukaj U�ytkownicy MedaleZaloguj si�, by sprawdzi� wiadomo�ciGrupyStatystyki

Na forum.stronghold.net.pl wykorzystujemy ciasteczka. Jeśli jeszcze nie masz dość tego typu komunikatów, więcej informacji znajdziesz w Polityce Cookies. zamknij


Poprzedni temat «» Następny temat
Zeszły tydzień w programowaniu
Autor Wiadomość
Lord Smerf 
Skryba

Gra w: grę
Wiek: 27
Posty: 1208
Medale: Brak

Wysłany: 22 Lipiec 16, 14:06   

Czyli przyjąłeś, że bić można tylko do przodu? To wyjaśnia, dlaczego nie spodobało mi się, że na pierwszym gifie jedno bicie nie było wykonywane. Wybacz, że się czepiam, ale akurat te szczegóły wydały mi się znacznie ciekawsze, niż sama implementacja przesuwania pionków na ukos.

Jeśli i tak nie chcesz z tym nic więcej robić, a walory dydaktyczne rzeczywiście mają być mizerne, to nie wstawiaj.
 
 
DarnokOk 
Rekrut

Wiek: 24
Posty: 359
Skąd: Kraków
Medale: Brak

Wysłany: 22 Lipiec 16, 14:17   

Różne są zasady warcabów, sam myślałem np. nad biciem i ruchem damki o dowolną ilość pól, ale padło akurat na te [zasady]. Do tyłu może ruszyć się i bić tylko damka (no i do przodu jak zwykły pionek oczywiście też).
Może napiszę kiedyś warcaby zawierające możliwość wyboru zasad, tak, by każdy mógł grać w ulubiony wariant z tych najpopularniejszych. (Ale nie zrobię tego teraz, bo przy obecnej umiejętności pisania kodu zakatowałbym się, więc lepiej zostanę przy mniejszych projektach.)

W porządku, "czepiaj się", bo sprawdzasz w ten sposób, czy o czymś nie zapomniałem.

[ Dodano: 14 Sierpień 16, 01:48 ]
Mogę zaktualizować posta.

Ostatnio odpocząłem na wycieczkach jednodniowych. Wróciłem do programowania dopiero dziś. De facto wczoraj, ale zrobiłem tak mało, że nie liczę tego jako powrotu.

Jeszcze przed wyjazdem zacząłem Javę. Podoba mi się pełna obiektowość, dokumentacja i liczba API.

Nadal piszę jak kaleka. :P Muszę w końcu zająć się wzorcami projektowymi, bo zabieram się jeszcze od czasów warcabów.

Używam obecnie Eclipse i nie wiem, jak mogłem katować się Code::Blocksem. Tu mam natychmiastowe podpowiedzi dot. metod, a opcja quick fix usprawnia rutynowe czynności. GUI jest obszerniejsze, ale łatwiej się przyzwyczaić. A te wbudowane pluginy i inne dostępne do pobrania są świetne. :)

Dziś poznałem budowę XMLa. Nie jest to nic trudnego, więc od razu zabrałem się do wczytywania tego typu plików za pomocą Javy. I trochę to zajęło, bo niestety, z mojej winy, w pliku znalazły się białe znaki, które były odczytywane jako #text. Pojawiały się one wśród Node'ów, więc nie dało się sensownie wczytać tych danych. Trochę czasu zajęło mi odnalezienie tego błędu, nie obyło się bez System.out.println(), ale gdy już odnalazłem, to sukcesywnie wczytywałem tylko Node'y, już bez #text.

Teraz piszę, jak podpowiedział mi SIwy, "katalog". I zdecydowałem na pokazywanie światów i poziomów do przyszłych gier. Nie wiem czy mi się to przyda, ale piszę, żeby się uczyć. Dane przechowywane są właśnie w XMLu, a program wygląda mniej więcej tak: 2 listy (świat i poziom), po wybraniu po prawej informacje o nim, takie jak nazwa, liczba przeciwników, może kiedyś jak mi się będzie nudziło minimapa, a na dole przyciski; opcje usuwania poziomów, dodawania nowych i edytowania obecnych. Analogicznie takie same do światów.

Zanim ten katalog pisałem, to projektowałem kalkulator. Ale takie klasy stworzyłem, że się aż przeraziłem i lepiej, że go porzuciłem. Tu macie przepiękny GridLayout w środku BorderLayout, w wersji kompaktowej dzięki pack():



Przyciski i pole tekstowe nic nie robią. xd

Pozdrawiam.

[ Dodano: 26 Sierpień 16, 20:57 ]
No to po dwóch tygodniach (Jak ten czas zleciał!) skończyłem ten "katalog". Oczywiście nie robiłem go dzień w dzień, może w sumie zajął mi 15h. Niestety, tak to bywa, że wakacje rozleniwiają człowieka i długo się do niego nie chciałem zebrać.



Wybaczcie przekleństwa w języku angielskim. Mam nadzieję, że to nikogo nie zrazi. :P Lepiej angielskie, niż polskie!

Rozkład klas wygląda następująco: (klik to powiększenie)



Widać więc, że możnaby tu wprowadzić mnóstwo poprawek i zajmie mi wiele czasu przyswojenie sobie zasad projektowania programów obiektowych! Ale zamiast refaktoryzować (w tym przypadku znowu byłoby to pisanie od nowa), lepiej będzie napisać ładniej kolejny projekt.

Co teraz? Myślę nad Androidem, ale zanim to zrobię, może czas wrócić do teorii, by troszkę się zanudzić; dawno tego nie robiłem. :P A przydałoby się! Wzorce projektowe nadal nie są ruszone... Ponownie, jeśli macie pomysł na projekt, nie bójcie się go tu napisać. Potrzebuję pisać i pisać, obojętne co. W ten sposób będę coraz lepiej programował; tak jak ten program wypadł mi dużo lepiej niż poprzedni "katalog" więźniów z Berezy Kartuskiej, ale wiem, że daleko mu do ideału.

P.S. Zbliża się Olimpiada Informatyczna. Wezmę udział, ale nie liczę na wysoki wynik, bo ostatnio nie przygotowywałem się do tego konkursu i raczej nie zamierzam. :) Chyba, że niewiele braknie mi w tym roku do drugiego etapu, albo dostanę się do niego!
_________________
Mam tyle lat, a nadal czuję się jak dziecko. I git 🤡
 
 
Lord Smerf 
Skryba

Gra w: grę
Wiek: 27
Posty: 1208
Medale: Brak

Wysłany: 27 Sierpień 16, 02:32   

Co do katalogu, to brakuje mi trochę obsługi ,,rozgałęzionych" światów, w których byłby np. jeden pierwszy poziom, dwa drugie i jeden trzeci - w każdym razie nie zauważyłem takiej opcji.

DarnokOk napisał/a:
Ponownie, jeśli macie pomysł na projekt, nie bójcie się go tu napisać.

Może program obsługujący turniej ,,1 z 10", z naciskiem na:
-wyświetlanie informacji o uczestnikach(w wersjach przed pierwszą rundą i przed trzecią rundą)
-korzystanie z przygotowanego w formie pliku zestawu pytań; pytanie powinno składać się z kategorii, samego pytania, dopuszczalnych odpowiedzi(w formie ciągu znaków - mile widziana tolerancja dla odpowiedzi typu ,,Największym zbrodniarzem powojennym był x" zamiast po prostu ,,x" i ,,X." zamiast ,,x") i komentarza zależnego od udzielonej odpowiedzi. Pytania muszą być losowane, ale tak, żeby żadne z nich się nie powtarzało i żeby kategorie były wystarczająco różnorodne w każdym odcinku. Dodatkowe punkty za napisanie narzędzia pozwalającego na tworzenie takich pytań. Jeszcze kilka dodatkowych punktów za obsługę pytań muzycznych.
-przenoszenie szans z rundy na rundę, dodawanie punktów za zachowane szanse
-dodawanie zwycięzcy odcinka na listę zwycięzców odcinków
-inne zasady w trzeciej rundzie: uczestnicy muszą się zgłaszać, jeśli nikt nie wyznacza odpowiadającego lub ktoś odpowie niepoprawnie po wskazaniu siebie
-przyjmowanie odpowiedzi; wystarczająca abstrakcja, żeby bezboleśnie można było pobierać te odpowiedzi z zewnątrz
-losowanie kończącego rozgrywkę komentarza o Pani Sylwii

DarnokOk napisał/a:
P.S. Zbliża się Olimpiada Informatyczna. Wezmę udział, ale nie liczę na wysoki wynik, bo ostatnio nie przygotowywałem się do tego konkursu i raczej nie zamierzam. Chyba, że niewiele braknie mi w tym roku do drugiego etapu, albo dostanę się do niego!

Jeśli jeszcze tego nie robiłeś, to polecam zajrzeć na codility.com. Mają tam parę ciekawych zadań; wydaje mi się, że niektóre są właśnie tego typu, co na OI.
 
 
DarnokOk 
Rekrut

Wiek: 24
Posty: 359
Skąd: Kraków
Medale: Brak

Wysłany: 27 Sierpień 16, 12:03   

Tak, rzeczywiście nie dodałem takiej opcji. Nie wiem czy kiedykolwiek z tego katalogu będę korzystał, ale tworzyłem go z myślą o jakiejś przyszłej platformówce. (Mam nawet zaprojektowaną pixel artem postać, bloki po których ma chodzić, obiekty które będą dekoracją i inne, ale na razie nie wrzucam tego nigdzie i ten projekt - miejmy nadzieję, że tylko chwilowo - zawiesiłem.) Ta gra nie powinna być zbytnio skomplikowana i raczej nie będzie posiadać wyborów wpływających na późne poziomy. Ale to też jest ciekawa rzecz do przemyślenia; wystarczy bazę poziomu zrobić taką samą, ale Twoje decyzje powodują np. większy spawn przeciwników! Aż sobie to zapiszę, zbieram innowacyjne rozwiązania.

Na upartego takie rozgałęzienia można po prostu dodać z prefixem A: i B:, ale wiem, nie wygląda to dobrze.

Teraz zauważyłem, że zapomniałem dodać edycję nazwy świata.

Przydałoby się zaprojektować też w przyszłym "katalogu" jeśli jakiś jeszcze będę robił możliwość zmieniania kolejności przedmiotów na zasadzie drag and drop.

Nie nadmieniłem też, że potrzebne mi były w jednej sytuacji wyrażenia regularne, więc je liznąłem. Poznałem dzięki temu stronę, która na pewno mi się przyda w przyszłości, bo regexy to temat, z którym będę się spotykał często. :)
http://regexr.com/

1 z 10 to naprawdę dobry pomysł i zacznę tym razem od dokładnego rozplanowania klas.
Muszę sobie go uprościć - nie chcę zbytnio tracić czasu na utworzenie wielu sensownych pytań. Pewnie skończy się jak tu; mnóstwo placeholderów typu Unspecified, z odpowiedziami: Dobra odpowiedź, Zła, Zła, Zła.
Losowanie pytań bez powtórzeń będzie bardzo proste. :)
Mam nawet pomysł na przechowanie tego; tak jak i te światy, plik XML. Jednak jego minusem jest łatwa ingerencja i możliwość odczytania odpowiedzi (wystarczy przeglądarka albo edytor tekstowy). Znasz może lepszy format, albo jakiś sposób zaszyfrowania?
Zaimplementowanie możliwości wpisania odpowiedzi będzie łatwe. Po prostu najpierw zmienię wszystkie litery w stringu na małe, a następnie wyszukam odpowiedź (może być jedna poprawna albo kilka, tak jak "XVIII" i "18" oznaczają ten sam wiek i oba zapisy powinny być dozwolone). Jest tylko jeden problem z takim rozwiązaniem - korzystający z programu może popełnić literówkę i zamiast Kraków wpisze Krakuw, albo po prostu źle naciśnie klawisze i wyjdzie mu Krsków.
Tworzenie własnych pytań też nie powinno być trudne, skoro tu można dodawać poziomy i całe światy. Te pytania mogłyby być dodawane do pliku "userQuestions" czy tam o innej nazwie i po prostu w opcjach można wybrać, czy chce się korzystać z pytań użytkownika.
Pytania muzyczne to dość ciekawa sprawa i dla mnie nowość. Musiałbym mieć folder z plikami muzycznymi w wybranym formacie i po prostu gdyby trafiono na to pytanie, to po wyświetleniu informacji "Pytanie będzie muzyczne" albo "Proszę posłuchać" odtwarzałby się ten plik, a po całości (jakieś 15 sekund czy tam ile w programie to trwa) pojawiałoby się pytanie.
Szansy, punkty, lista zwycięzców odcinków - do zrobienia!
Czy to, że każdy może się zgłosić w trzeciej rundzie, wymaga utworzenia prostego AI? To już może być trudne. Ale wszystko jest do zrobienia. Żeby zasymulować AI, ono wpierw ustalałoby, czy włączy brzęczyk. Jeśli tak, to po ustalonym czasie (mógłby być losowany pomiędzy 3s a 10s) włączałoby i miałoby jakąś szansę w procentach (też losowaną, ale na początku programu - byłaby to symulacja "inteligencji") na poprawną odpowiedź.
Abstrakcja przyjmowania odpowiedzi? Rozwiń ten podpunkt, chyba, że dobrze go zinterpretowałem wyżej.
Ten komentarz też jest do zrobienia.

To wszystko wydaje się być czasochłonne, ale postaram się coś stworzyć. Może niektóre features będę musiał porzucić, ze względu na małe walory edukacyjne dla mnie, a wymagające dużej pracy do zaimplementowania. To jest naprawdę duży projekt i tak jak tam pod sam koniec dodawanie kolejnych funkcjonalności było utrudnione, tak tu będzie jeszcze trudniejsze. Ale cóż, wtedy mogę zawsze porzucić projekt, tak jak to zrobiłem z kalkulatorem i liczyć na to, że wyniosłem jakąś lekcję z tego błędu na temat projektowania obiektowego.
Sam robiłeś podobny program? :)

Co do codility, sprawdzę!
_________________
Mam tyle lat, a nadal czuję się jak dziecko. I git 🤡
 
 
Lord Smerf 
Skryba

Gra w: grę
Wiek: 27
Posty: 1208
Medale: Brak

Wysłany: 27 Sierpień 16, 12:45   

DarnokOk napisał/a:
Abstrakcja przyjmowania odpowiedzi? Rozwiń ten podpunkt, chyba, że dobrze go zinterpretowałem wyżej.

Chodzi o to, że testowanie przebiegu całego turnieju, z dziesięcioma graczami byłoby bardzo żmudne, a mimo to należy rozpatrywać rożne możliwości. Na pewno testowanie interfejsu należy robić właśnie tak, jak napisaleś:
DarnokOk napisał/a:
Muszę sobie go uprościć - nie chcę zbytnio tracić czasu na utworzenie wielu sensownych pytań. Pewnie skończy się jak tu; mnóstwo placeholderów typu Unspecified, z odpowiedziami: Dobra odpowiedź, Zła, Zła, Zła.

Zabawa polega na tym, żeby przewidzieć rożne możliwości: np. czasami poprawność odpowiedzi zależy od tego, czy zapisano ją wielką literą, czy nie, a czasami czepianie się wszystkich zasad pisowni byłoby po prostu wredne. A co, jeśli np. na pytanie ,,W jakiej dziewiętnastowiecznej powieści, która jest obowiązkową lekturą szkolną, główny bohater zabija lichwiarkę?" uczestnik odpowie ,,<<Zbrodnia i kara>> Dostojewskiego"? Czy należy akceptować odpowiedź, jeśli poza poprawnym rozwiązaniem zagadki znajdą się w niej pewne słowa związane z tematem(które musiałaby podać osoba tworząca pytanie), czy może zażądać, żeby wszystkie takie możliwości były z góry podane w zbiorze prawidłowych odpowiedzi?

Wszystkiego nie można sprawdzić, zabawa może tutaj polegać na przewidywaniu wszystkich możliwości i wybieraniu optymalnych rozwiązań - z pewnością rozpoczęcie kodowania od razu nie jest tu dobrym pomysłem. Możesz kierować się tą ideą, żeby pod względem jakościowym(w abstrakcji od implementacji) taki projekt mógł być równie dobrze grą wieloosobową rozgrywaną przez Internet. O to też chodziło mi w komentarzu z ,,abstrakcją" - żeby odpowiedzi z założenia mogły być obsługiwane jako napływające z zewnątrz, a nie wpisywane w tym samym okienku, gdzie pojawiają się wszystkie informacje o grze.

Cytat:
To wszystko wydaje się być czasochłonne, ale postaram się coś stworzyć. Może niektóre features będę musiał porzucić, ze względu na małe walory edukacyjne dla mnie, a wymagające dużej pracy do zaimplementowania. To jest naprawdę duży projekt i tak jak tam pod sam koniec dodawanie kolejnych funkcjonalności było utrudnione, tak tu będzie jeszcze trudniejsze.

Zaproponowałem coś takiego, bo zaciekawiło mnie, jak poradziłbyś sobie z projektem, który wymaga większego planowania i w którym prawdopodobnie nie dasz rady dopiąć wszystkiego na ostatni guzik; wydaje mi się, że to wpisuje się dobrze w ideę programowania obiektowego, które nastawione jest na podział pracy - nie zrobisz wszystkiego, ale możesz skupić się na tym, żeby struktura całości była przejrzysta, a kod pozbawiony ,,hacków" i gotowy na bezbolesne dodanie brakujących modułów.

DarnokOk napisał/a:
Sam robiłeś podobny program?

Nie, niedawno wpadłem na taki pomysł. Sam ostatnio robię głównie takie zadania, jak na tym codility i jeszcze nikomu nie udało się mnie zagonić do pracy z graficznymi interfejsami. Przy odrobinie szczęścia, może za parę miesięcy się to zmieni.
 
 
DarnokOk 
Rekrut

Wiek: 24
Posty: 359
Skąd: Kraków
Medale: Brak

Wysłany: 27 Sierpień 16, 14:59   

Rzeczywiście, taki "za duży" projekt dobrze wpisuje się w ideę programowania obiektowego. Może zostawię go na "po godzinach", żeby czasem coś w nim podłubać; dodać kolejną funkcjonalność. W międzyczasie będę robił mniejsze projekty, bo wiem, że teraz nie byłbym w stanie ładnie zaprogramować tego teleturnieju, by dodawanie kolejnych modułów było proste. Przy katalogu narobiłem zbyt dużo zależności, szczególnie to widać przy ActionListenerach. Żeby było potrzebne okno główne i to do edytowania? To trochę porażka była z mojej strony, ale teraz już mam pomysł, jak to mogłem rozwiązać. W teorii wyszłoby na to samo, ale mam nadzieję, że byłoby bardziej otwarte na modyfikacje.

Jak chodzi o ten przykład ze Zbrodnią i Karą, moim zdaniem na to pytanie poprawną odpowiedzią jest tylko tytuł, obojętne, czy napisany w cudzysłowie, znakach <<>>, czy bez niczego. Akceptowalny jest też pisany dużymi literami, małymi, albo PoKeMoNiAsTo, dzięki właśnie przerobieniu odpowiedzi na małe litery. A dodatkowe słowa, typu autor, albo dodatkowy opis "Odpowiedzią jest: "; cóż. Można by zaprogramować jakąś funkcjonalność, która dzięki poprawnej odpowiedzi wraz z nazwiskiem (obojętne gdzie w tekście), sprawia, że Sznuk opowiada jakąś ciekawostkę na temat tego autora. Ale nie wiem, czy do takich działań nie nadawałoby się lepiej jakieś Big Data, które by "inteligentnie" wyszukiwało informacji o danej rzeczy i ją umieszczało w odpowiednim miejscu. (Nie wiem czy m.in. do tego jest wykorzystywana Big Data, bo nie znam się na tym pojęciu całkowicie XD)

A gdy jest kilka odpowiedzi na dane pytanie, to niestety już każda musi być zapisana w pliku. Możliwe, że przydadzą się w tym momencie wyrażenia regularne, np. do wieków właśnie.

Jeślibyś chciał kiedyś coś wspólnie napisać (robię teraz jak mówiłem w Javie), to można założyć projekt na GitHubie i działać. Jak piszę samemu, to powielam swoje błędy, a tak byś mnie czegoś nauczył, może czegoś ja Ciebie. ;) Nawet przy projektowaniu każdy ma inne patrzenie i można znaleźć wiele rzeczy, których się nie wzięło pod uwagę. Sam widzę po tym "1 z 10"; czasami musi mi dłuższą chwilę zająć zrozumienie Twojego punktu widzenia, a i tak pewnie nie robię tego idealnie. :D

I w końcu czas się zmusić do poczytania wzorców projektowych i zasad! Najlepiej zanim zacznę ubogo pisać kolejny projekt...
_________________
Mam tyle lat, a nadal czuję się jak dziecko. I git 🤡
 
 
Lord Smerf 
Skryba

Gra w: grę
Wiek: 27
Posty: 1208
Medale: Brak

Wysłany: 29 Sierpień 16, 12:34   

DarnokOk napisał/a:
Jak chodzi o ten przykład ze Zbrodnią i Karą, moim zdaniem na to pytanie poprawną odpowiedzią jest tylko tytuł, obojętne, czy napisany w cudzysłowie, znakach <<>>, czy bez niczego. Akceptowalny jest też pisany dużymi literami, małymi, albo PoKeMoNiAsTo, dzięki właśnie przerobieniu odpowiedzi na małe litery. A dodatkowe słowa, typu autor, albo dodatkowy opis "Odpowiedzią jest: "; cóż. Można by zaprogramować jakąś funkcjonalność, która dzięki poprawnej odpowiedzi wraz z nazwiskiem (obojętne gdzie w tekście), sprawia, że Sznuk opowiada jakąś ciekawostkę na temat tego autora. Ale nie wiem, czy do takich działań nie nadawałoby się lepiej jakieś Big Data, które by "inteligentnie" wyszukiwało informacji o danej rzeczy i ją umieszczało w odpowiednim miejscu. (Nie wiem czy m.in. do tego jest wykorzystywana Big Data, bo nie znam się na tym pojęciu całkowicie XD)

To nie jest nie do zrobienia, chyba nietrudno byłoby sprawdzać odpowiedzi, klasyfikując poszczególne wyrazy(ciągi znaków zakończone spacją lub końcem linii) jako ,,wymagane" - elementy poprawnej odpowiedzi, ,,dozwolone" - związane z odpowiedzią i nieprzekreślające jej poprawności, lecz niewystarczające do zaliczenia pytania lub ,,pozostałe", których wystąpienie oznacza błędną odpowiedź. Nie ma chyba sensu przejmować się tutaj złożonością obliczeniową, można badać te stringi wzdłuż i wszerz i wyciągnąć z nich tyle informacji, ile trzeba.

Możemy coś razem napisać, zwłaszcza, póki nie zaczął się rok akademicki. Ostrzegam tylko, że z nas dwóch to ja jestem mniej obyty z praktyką programistyczną.
 
 
DarnokOk 
Rekrut

Wiek: 24
Posty: 359
Skąd: Kraków
Medale: Brak

Wysłany: 29 Sierpień 16, 12:54   

To jak, zaczynamy pisać "1 z 10", czy zajmiemy się czymś prostszym? :) Myślę, że skoro programujemy razem, to warto zająć się GUI; przy tekstowej aplikacji byłoby troszkę nudno. Spring i do boju!

Proponuję GitHub jako miejsce w którym będziemy pracować nad projektem, dodaj https://github.com/DarnokOk (zafollowuj albo daj znać w jakiś inny sposób), a ja założę projekt i Cię dodam. Albo jeśli jeszcze nigdy nie zakładałeś projektu na GitHubie to Ty to zrób, byś się czegoś nauczył.

Ja od Gita odpocząłem 3 miesiące, więc część rzeczy pozapominałem, ale jak wpiszę komendę jeden raz, drugi, to mi się wszystko przypomni. :)

Nie masz czym się przejmować, czy umiesz gorzej, czy lepiej programować. Ja nie programowałem jeszcze niczego wspólnie, więc będzie na pewno ciekawie. xd A GitHub pozwala na edycję kodu, również cudzego, więc będziemy mogli coś optymalniejszego, a raczej, ładniejszego, nawzajem od siebie dorzucać.
No i piszemy w Javie, jeśli ją już zacząłeś.

Btw. można dyskusje na temat projektu przenieść na priw, a potem na samego GitHuba. Jak dobrze pamiętam, jest możliwość komentowania commitów.

[ Dodano: 25 Wrzesień 16, 18:24 ]
Nie próżnowaliśmy ze Smerfem i stworzyliśmy (w zasadzie; to on stworzył, bo odwalił większy kawał ciężkiej roboty)... no właśnie! Nie wiem czy ten sekretny i oryginalny projekt mogę ujawnić XD; decyzja należy do Smerfa! Pisaliśmy go w Javie ze Swingiem, commitując do prywatnego repozytorium na GitHub. Wiele się nauczyliśmy, również co nieco o rozwiązywaniu konfliktów w plikach, a ta wiedza nie zginie.

Ja teraz uczę się Androida, korzystając głównie z tego: https://www.udacity.com/c...oid-apps--ud853
Podoba mi się; jest sporo nowego materiału, w tym multithreading, ale nie jest to coś, czego bym nie był w stanie zrozumieć. Pisze się naprawdę przyjemnie, a natychmiastowe efekty tylko motywują do pracy.
Czy wrócę kiedyś do robienia gier? Nie wiem; wątpię jednak, bym tworzył gry sam. Chciałbym znaleźć pasjonatów i razem z nimi coś stworzyć, bo samemu można się zapracować, a efekt i tak będzie mizerny.

Mam już pomysł na 2 appki do portfolio. Nie są oryginalne, ale na razie trzeba się uczyć. Będę musiał wydać 25 dolców i kupić konto developerskie w sklepie play, ale myślę, że warto, bo to jednorazowa wpłata, która umożliwia umieszczenie kolejnych aplikacji z tego konta i ew. zarobek na nich.
Jak zrobię te 2 aplikacje, to możliwe, że wrócę do Springa i dołączę do niego Hibernate. To taki zapasowy plan, gdybym nie wyrwał pracy jako Junior Android Dev, a i znajomość takich baz danych i serwerów może się przydać przy projektowaniu aplikacji mobilnej.

A na razie nie zanosi się na bankructwo Google, więc chyba warto w tym kierunku iść.

[ Dodano: 28 Wrzesień 16, 23:03 ]
No to może wrzucę co dotychczas zrobiłem, bo tak sam suchy tekst pewnie przeczytają dwie osoby. :P



Nie ma to być ładne; na razie się uczę. Większość rzeczy zrobiłem sam; korzystając z przykładów rozwiązania danego problemu na stack overflow, albo z dokumentacją. W opcjach powinien być wybór miasta, a nie id znane tylko temu api od pogody; jednak nie widzę sensu w traceniu na to czasu - wiem jak to zrobić, ale to czasochłonne i można czas lepiej spożytkować.

Zobaczymy, co zapamiętałem, gdy zacznę pisać moje aplikacje! A póki co jeszcze trochę tych lekcji na udemy zostało.

[ Dodano: 26 Listopad 16, 15:20 ]
https://imgur.com/a/80jEe
Tu podsumowanie tego nad czym dotychczas pracowałem. Prawie 2 miesiące, a nie jest tego w zasadzie dużo - to obrazuje, jak ciężko czasem bywa. A muszę zajmować się zarówno back-endem, jak i front-endem. Wygląd jeszcze się pozmienia na pewno, bo mi się póki co nie podoba. Przydałoby się podpatrzeć trochę aplikacji w sklepie play, by ładny design odgapić. xd
No i logo jest tylko placeholderem. Takiego na pewno do Sklepu Play nie wrzucę. XD
A! Byłbym zapomniał. Musicie mi uwierzyć na słowo, że horyzontalna orientacja też działa.
_________________
Mam tyle lat, a nadal czuję się jak dziecko. I git 🤡
 
 
Siwy 
Moderator


Wiek: 27
Posty: 1480
Skąd: Nowogród Bobrzański
Medale: 1 (Więcej...)
Srebrny szachista (Ilość: 1)

Wysłany: 7 Grudzień 16, 00:55   

Całkiem ładnie, kolego. Kod pewnie beznadziejny, ale aplikacja wygląda dobrze ;)
 
 
DarnokOk 
Rekrut

Wiek: 24
Posty: 359
Skąd: Kraków
Medale: Brak

Wysłany: 11 Grudzień 16, 19:28   

Zgadza się, kod nie jest najlepszy. :)
Choć świadome używanie interfejsów uznaję za swój duży krok w dobrym kierunku.

Zainteresowało mnie zadanie Siwego z jego uczelni, gdzie trzeba było napisać własną interpretację Gold Diggera. Więc od 17 godziny do 2 w nocy z przerwami go pisałem. Jestem zadowolony z efektu i czasu, w jakim go osiągnąłem. Była to też dobra odskocznia od mojego głównego projektu, tj. MoneyManagera.

(Można kliknąć, by powiększyć)

Pierwszy raz pisałem grę w czasie rzeczywistym. Można powiedzieć, że pierwszą grą w czasie rzeczywistym były warcaby; ale tam nie używałem dodatkowych wątków, bo nie potrzebowałem - jedynie sprawdzałem w głównym to, gdzie aktualnie znajduje się mysz, czy jest wciśnięta itp.
Nie używałem żadnych zewnętrznych bibliotek; wszystko jest rysowane dzięki Graphics2D i bardzo prostej inteligencji obiektów, którą im nadałem.
3 rozmiary bryłek złota (użyjcie wyboraźni :P ) + kontrolowane losowe rozmieszczenie - to znaczy podzieliłem planszę na rzędy i kolumny, i każdy obiekt znajduje się mniej więcej w swoim prostokącie, ew. na początku sąsiadującego. Gdybym tego nie zrobił, istnieje możliwość - bardzo rzadka, ale jednak - że wszystkie obiekty zgrupują się wspólnie i gra nie będzie aż tak ciekawa. O ile można nazwać ją ciekawą. XD Koncept jest fajny, ale by wciągał wymaga wielu features.

Dziś trochę porozwijałem i póki co efekt jest taki.

Bomby zabierają 50 punktów i pojawiają się tylko na brzegach, by zniwelować możliwość zasłonięcia przez nie bryłki. Choć nadal się to zdarza.
Zobaczę, czy jeszcze przy tym podłubię i dodam grę na czas, może kolejne poziomy. Możliwe też, że umieszczę kod na GitHubie - dam wtedy tu znać.

[ Dodano: 12 Luty 17, 21:24 ]
Źeby nie było, że nic nie robię. XD
http://imgur.com/a/6DQ1s
Krótkie dotknięcie transakcji to edycja, długie to zaznaczenie (Wtedy już każde kolejne krótkie dotknięcie dowolnej transakcji zaznacza/odznacza ją, zamiast przejść do ekranu edycji - do momentu, aż żadna transakcja nie jest zaznaczona)
Krótkie dotknięcie obrazka to powiększenie, długie to usunięcie.
Przy długim dotyku mamy ripple effect.
Nie pokazałem tu wszystkiego co zrobiłem od ostatniego czasu, bo mi się po prostu nie chce. :P

[ Dodano: 24 Marzec 17, 00:15 ]
W MoneyManagerze trochę się pozmieniało i coraz bardziej jestem pewny, że w końcu go skończę. :D

Tymczasem napisałem symulator spamera. XD
http://imgur.com/a/WLZgE

Dlaczego? Mamy na angielski nagrać recenzję gadżetu, nawet zmyślonego. Pomyślałem, że użyję powerbanka do przedstawienia urządzenia do blokowania niechcianych wiadomości - wszystkie otrzymane będą przechowywane właśnie na takim, nazwijmy to, "dysku" zewnętrznym.
Na początku będę nawijał, w pewnym momencie wyliczonym podłączę powerbank, a na ekranie niby dzięki temu podłączeniu ukaże się kłódka. Trzeba sobie jakoś radzić, gdy zadanie jest dziwne. :P
Ale za to tu nauczyłem się właśnie jak zrobić animację dodawania elementu do listy.
Poza tym pisząc to miałem pełno frajdy.
_________________
Mam tyle lat, a nadal czuję się jak dziecko. I git 🤡
 
 
Tay 
Wojownik


Gra w: życie
Wiek: 27
Posty: 652
Skąd: Nowy Sącz
Medale: 1 (Więcej...)
Brązowy szachista (Ilość: 1)

Wysłany: 28 Marzec 17, 13:37   

Czemu nie mówiłeś, że byłeś na SFI? :D
_________________
https://www.speedrun.com/stronghold/run/zgn8770y
 
 
 
DarnokOk 
Rekrut

Wiek: 24
Posty: 359
Skąd: Kraków
Medale: Brak

Wysłany: 28 Marzec 17, 17:25   

Haha, ano chciałem sobie zobaczyć jak wygląda AGH, dostać autograf Grębosza i przy okazji dowiedzieć się czegoś o Scrumie, bo udało mi się na te warsztaty dostać. :)

Wypadło mi całkiem z głowy zapytanie się Ciebie, czy przypadkiem się tam nie pojawisz, przepraszam. :D Może inaczej by to wyglądało, gdyby koledzy nie chcieli iść.

Za rok też będę, bo to fajna odskocznia od nudnego LO.
_________________
Mam tyle lat, a nadal czuję się jak dziecko. I git 🤡
 
 
Tay 
Wojownik


Gra w: życie
Wiek: 27
Posty: 652
Skąd: Nowy Sącz
Medale: 1 (Więcej...)
Brązowy szachista (Ilość: 1)

Wysłany: 31 Marzec 17, 13:31   

A byłeś na wykładzie Cormena? I co ciekawego sie dowiedzialeś o scrumie? xD
_________________
https://www.speedrun.com/stronghold/run/zgn8770y
 
 
 
DarnokOk 
Rekrut

Wiek: 24
Posty: 359
Skąd: Kraków
Medale: Brak

Wysłany: 31 Marzec 17, 16:25   

Byłem, robiłem nawet notatki, a na końcu się okazało, że to wiedza czysto teoretyczna i nie ma póki co zastosowania w praktyce. :P

Przede wszystkim to, że jeszcze trochę będzie trzeba się douczyć. To bardzo dobry framework (też się zdziwiłem jak to usłyszałem), po teorii mieliśmy za zadanie przygotować grę planszową w 2 sprintach. W praktyce to wygląda zupełnie inaczej - zwykle nad produktem nie zastanawia się team developerski, a po prostu z product ownerem ustala, co sprint, ile będzie w stanie zrobić.
Celem takiego sprintu (zwykle trwającego 2 tygodnie, ale może to być 1-4 tygodni) jest wydanie już gotowego, działającego produktu. Product owner po sprincie podejmuje decyzję - przedłuża projekt o kolejny sprint albo stwierdza, że produkt nie potrzebuje już zmian.
Po każdym sprincie może też zadecydować o wrzuceniu tego na rynek. I tak - wersja 1.0 np. prostego forum z bazą użytkowników może zostać wrzucona po dwóch sprintach (przykład mało realny, bo pewnie to zajmuje mniej czasu, ale niech będzie), a już kolejna wersja np. 1.1 doda możliwość reagowania na posty, po prostu jakieś features, albo 2.0 która zmieni całkowicie wygląd i zachowanie forum, o ile będą kolejne sprinty. O wszystkim decyduje product owner.

I dlaczego to lepsze od stylu Waterfall? Rynek ciągle się zmienia i nie każda funkcjonalność będzie potrzebna za miesiąc, albo zrodzi się nowa pilna potrzeba. To pozwala na w miarę szybkie reakcje i uniknięcie utraty rynku - prowadzące za przykład dawały jakiś portal, chyba Ludzie, który w dniu premiery był o wiele bardziej zaawansowany niż Nasza-Klasa, ale przez to że został wydany kilka miesięcy po tamtym nie zyskał rozgłosu.

W zasadzie to tylko część tego czego się nauczyłem, jeśli chcesz dowiedzieć się więcej to mów - lepiej jak rozłożę sobie to na raty, niż zamęczę siebie i Ciebie ścianą tekstu.
_________________
Mam tyle lat, a nadal czuję się jak dziecko. I git 🤡
 
 
Tay 
Wojownik


Gra w: życie
Wiek: 27
Posty: 652
Skąd: Nowy Sącz
Medale: 1 (Więcej...)
Brązowy szachista (Ilość: 1)

Wysłany: 3 Kwiecień 17, 21:28   

Nie no, mi nie musisz tłumaczyć, korzystałem z scruma :D Chciałem tylko zobaczyć co Ty o tym myślisz :)
_________________
https://www.speedrun.com/stronghold/run/zgn8770y
 
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group | Template DarkMW created by razz