You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Na wstępną wersję gry online potrzeba przede wszystkim przycisku do logowania (plus ekran do podania nazwy użytkownika). Przy kliknięciu "graj online" będzie się odpalało połączenie z losowym graczem (chyba, że od razu dodamy ekran z podaniem nazwy przeciwnika).
Poszukajcie czcionki z polskimi znakami, chyba taka istnieje :D
PS. Wstawiłem do "new-ui" aktualny model gry. Zmieniłem Game tak, że nie powinno być remisów.
Chyba jest drobny błąd, bo mogę kliknąć płytkę niepodświetloną (niepasującą) i wstawić (oczywiście wywala wyjątek).
Można dodać takie coś do ClickListener i działa: if (((Button) e.getTarget()).isDisabled()) return;
W niedzielę zdołałem stworzyć kod, który pilnuje, aby użytkownik nie przesunął za bardzo planszy (jak ktoś przesunie planszę bardzo daleko, to potem jest mała szansa, że zdoła przyciągnąć płytki z powrotem). Dalej można wyrzucić płytki poza ekran, ale nie za daleko. Jest to wykorzystanie tych metod getMaxX()... Boarda. Wstawia się cztery warunki ograniczające do metody touchDragged...
W zasadzie potrzebne jest tylko wprowadzanie koniecznych danych (pewnie przy rejestracji hasło dwa razy) i przycisk. Powinno się dać wyświetlić informację o niepowodzeniu (i to najlepiej różnego typu: "problem z połączeniem", "nazwa użytkownika zajęta", ...). Wg. mojej wizji ekrany powinny implementować ConnectionListener, ale to chyba my będziemy zapewniać.
Interfejs powinien w jakiś sposób powiązać graczy z kolorem linii. Może nazwy niech wyświetlają/podświetlają się w dobrym kolorze (o ile wiem, to po lewej jest biały, a po prawej czarny, zgodnie z numeracją w Game). Można też ustalić domyślne nazwy graczy na "Biały" i "Czarny" chyba, że przypisanie do kolorów (w przypadku offline) będzie losowe (Ale może lepiej, żeby losowe było kto zaczyna, a nie jaki ma kolor).
poszedł push, zostawiłem ekrany logowania i rejestracji z todo, żebyście spokojnie mogli podpiąć. gdyby ktoś sprawdził czy działa przycisk cofania dobrze na androidzie - byłoby miło
PS. wiem, że wywala exception przy zakończeniu gry, poprawię to jeszcze dziś
cofanie działa (chociaż nie zawsze, trzeba zobaczyć na innych urządzeniach. U mnie jest tak, że register chyba zawsze działa, ale po cofnięciu nie da się już wyjść z gry poprzez naciśnięcie back, a np. wyjście z opcji poprzez back wychodzi z aplikacji)
chowanie klawiatury też działa
jeśli chodzi o ścieżkę wygrywającą to nie potrzebnie wyświetlasz puste komórki
przy zmianie języka na polski wywala się na końcu gry
logo wrzuć na górę menu a nie na środek
udało mi się zrobić ramki dodając
table.add(bv).pad(10).colspan(BUTTONS_AMOUNT).fill();
tylko że tło nie jest wyświetlane tak jakbym chciał
ramki do graczy mozna dodać jako buttony
Chyba dobrą rozdzielczość można uzyskać używając innego obiektu Viewport (np. StretchViewport albo FitViewport). Pojawiają się problemy z widgetem (aktualizacją jego wielkości), ale pewnie jakoś można sobie z nimi poradzić. Na razie mam jakiś problem z testowaniem na androidzie, więc nie widziałem jak to tam zadziała. (W weekend mogę mieć problemy z internetem, ale będę dopracowywał bazę.)
to już było gdzieś robione, ale trzeba zmienić metodę która określa kto wygrywa, bo w obecnej sytuacji jak jest remis to wygrywa biały, a powinien wygrać gracz, którego był ruch
public List getWinLine(){
if (board.isWhiteWin() && currentPlayer==0)
return board.getWinningLine(false);
else
return board.getWinningLine(true);
}
dodałem commita, w którym usunąłem opcje. język dobiera się automatycznie, gdy nie ma tłumaczenia - jest angielski. dodałem też polskie litery. skalowanie nie działa tylko na planszy - zostawmy to na razie tak jak jest. przycisk cofania też zachowuje się dziwnie. reszta działa, możecie mergować i podpinać grę online.
Domergowałem zmiany w UI do online-play (musiałem to zrobić dzisiaj, bo nie miałbym kodu w domu na weekend) i chyba udało mi się poprawić skalowanie planszy.
Można obejść/wyłączyć bazę ustawiając jedno true w konstruktorze LoopServera. Dla pewności można poprawić konstruktor DataBase, gdyby rzucał wyjątkiem przy ładowaniu sterownika (nie powinien).
Activity
maro512 commentedon May 23, 2017
pzjp commentedon May 23, 2017
Na wstępną wersję gry online potrzeba przede wszystkim przycisku do logowania (plus ekran do podania nazwy użytkownika). Przy kliknięciu "graj online" będzie się odpalało połączenie z losowym graczem (chyba, że od razu dodamy ekran z podaniem nazwy przeciwnika).
Poszukajcie czcionki z polskimi znakami, chyba taka istnieje :D
PS. Wstawiłem do "new-ui" aktualny model gry. Zmieniłem
Gametak, że nie powinno być remisów.maro512 commentedon May 25, 2017
tak na szybko, żeby nie zapomnieć
maro512 commentedon May 25, 2017
pzjp commentedon May 25, 2017
Chyba jest drobny błąd, bo mogę kliknąć płytkę niepodświetloną (niepasującą) i wstawić (oczywiście wywala wyjątek).
Można dodać takie coś do
ClickListeneri działa:if (((Button) e.getTarget()).isDisabled()) return;pzjp commentedon May 25, 2017
new-ui można chyba scalić z masterem. Jak ktoś chce, to stary interfejs można zachować w osobnym branchu.
Do jutra.
cieplinski-tobiasz commentedon May 29, 2017
zbieram sobie wszystko w jedno miejsce
pzjp commentedon May 29, 2017
W niedzielę zdołałem stworzyć kod, który pilnuje, aby użytkownik nie przesunął za bardzo planszy (jak ktoś przesunie planszę bardzo daleko, to potem jest mała szansa, że zdoła przyciągnąć płytki z powrotem). Dalej można wyrzucić płytki poza ekran, ale nie za daleko. Jest to wykorzystanie tych metod
getMaxX()... Boarda. Wstawia się cztery warunki ograniczające do metodytouchDragged...cieplinski-tobiasz commentedon May 29, 2017
Jutro chyba pushnę całość, także możesz dorzucić poprawkę. Potem możemy zrobić merge
cieplinski-tobiasz commentedon May 30, 2017
co do ekranu logowania i rejestracji - jakie metody powinny być zapewnione? czy uzupełnicie to przy połączeniu gry z trybem online?
pzjp commentedon May 30, 2017
W zasadzie potrzebne jest tylko wprowadzanie koniecznych danych (pewnie przy rejestracji hasło dwa razy) i przycisk. Powinno się dać wyświetlić informację o niepowodzeniu (i to najlepiej różnego typu: "problem z połączeniem", "nazwa użytkownika zajęta", ...). Wg. mojej wizji ekrany powinny implementować
ConnectionListener, ale to chyba my będziemy zapewniać.pzjp commentedon May 30, 2017
Interfejs powinien w jakiś sposób powiązać graczy z kolorem linii. Może nazwy niech wyświetlają/podświetlają się w dobrym kolorze (o ile wiem, to po lewej jest biały, a po prawej czarny, zgodnie z numeracją w Game). Można też ustalić domyślne nazwy graczy na "Biały" i "Czarny" chyba, że przypisanie do kolorów (w przypadku offline) będzie losowe (Ale może lepiej, żeby losowe było kto zaczyna, a nie jaki ma kolor).
cieplinski-tobiasz commentedon May 30, 2017
poszedł push, zostawiłem ekrany logowania i rejestracji z todo, żebyście spokojnie mogli podpiąć. gdyby ktoś sprawdził czy działa przycisk cofania dobrze na androidzie - byłoby miło
PS. wiem, że wywala exception przy zakończeniu gry, poprawię to jeszcze dziś
7 remaining items
maro512 commentedon May 31, 2017
cofanie działa (chociaż nie zawsze, trzeba zobaczyć na innych urządzeniach. U mnie jest tak, że register chyba zawsze działa, ale po cofnięciu nie da się już wyjść z gry poprzez naciśnięcie back, a np. wyjście z opcji poprzez back wychodzi z aplikacji)
chowanie klawiatury też działa
jeśli chodzi o ścieżkę wygrywającą to nie potrzebnie wyświetlasz puste komórki
przy zmianie języka na polski wywala się na końcu gry
logo wrzuć na górę menu a nie na środek
pzjp commentedon May 31, 2017
Przy kończeniu gry (na emulatorze) czasem się wywala ale zupełnie nie rozumiem od czego to zależy.
maro512 commentedon May 31, 2017
udało mi się zrobić ramki dodając
table.add(bv).pad(10).colspan(BUTTONS_AMOUNT).fill();
tylko że tło nie jest wyświetlane tak jakbym chciał
ramki do graczy mozna dodać jako buttony
pzjp commentedon Jun 1, 2017
Chyba dobrą rozdzielczość można uzyskać używając innego obiektu
Viewport(np.StretchViewportalboFitViewport). Pojawiają się problemy z widgetem (aktualizacją jego wielkości), ale pewnie jakoś można sobie z nimi poradzić. Na razie mam jakiś problem z testowaniem na androidzie, więc nie widziałem jak to tam zadziała. (W weekend mogę mieć problemy z internetem, ale będę dopracowywał bazę.)pzjp commentedon Jun 4, 2017
Mam już wstępny mechanizm zapytań do bazy i typ osłonowy na pozycję w rankingu. Warto przygotować prezentację takiej tabeli w aplikacji.
maro512 commentedon Jun 6, 2017
trzeba ustawić płytki w menu na dole ekranu wg z góry określonej kolejności, bo teraz są losowo i to może być frustrujące przy wielokrotnym graniu
maro512 commentedon Jun 6, 2017
deadTile to jest EmptyCell i przy wyswietlaniu petli wygrywajacej po prostu znika, trzeba by ifa dodać zeby to pole tez się wyświetlało
maro512 commentedon Jun 6, 2017
to już było gdzieś robione, ale trzeba zmienić metodę która określa kto wygrywa, bo w obecnej sytuacji jak jest remis to wygrywa biały, a powinien wygrać gracz, którego był ruch
public List getWinLine(){
if (board.isWhiteWin() && currentPlayer==0)
return board.getWinningLine(false);
else
return board.getWinningLine(true);
}
pzjp commentedon Jun 6, 2017
U mnie jest tak, czyli chyba dobrze:
cieplinski-tobiasz commentedon Jun 8, 2017
dodałem commita, w którym usunąłem opcje. język dobiera się automatycznie, gdy nie ma tłumaczenia - jest angielski. dodałem też polskie litery. skalowanie nie działa tylko na planszy - zostawmy to na razie tak jak jest. przycisk cofania też zachowuje się dziwnie. reszta działa, możecie mergować i podpinać grę online.
pzjp commentedon Jun 8, 2017
Niechcący zmergowałem w drugą stronę (tj. nadpisałem
new-ui). Jak to problem, to jutro to cofnę i zrobię w "dobrą stronę".pzjp commentedon Jun 8, 2017
Domergowałem zmiany w UI do
online-play(musiałem to zrobić dzisiaj, bo nie miałbym kodu w domu na weekend) i chyba udało mi się poprawić skalowanie planszy.sieka44 commentedon Jun 8, 2017
nie da się naszego projektu odpalić bez SQL servera na kompie nie ? :/
pzjp commentedon Jun 9, 2017
Można obejść/wyłączyć bazę ustawiając jedno
truew konstruktorzeLoopServera. Dla pewności można poprawić konstruktorDataBase, gdyby rzucał wyjątkiem przy ładowaniu sterownika (nie powinien).sieka44 commentedon Jun 9, 2017
Właśnie próbowałem ale mi się nie udawało :(