Witam Cię ponownie!
Ten tydzień okazał się dużym wyzwaniem pod względem znalezienia czasu na naukę. Jak to często bywa, nawet najbardziej starannie zaplanowany grafik może zostać brutalnie zaweryfikowany przez życie 😉 Na mojej drodze do osiągnięcia wszystkich tygodniowych celów związanych z programowaniem pojawił się długi, bo trwający aż 4 dni wyjazd służbowy.
Nadal pracuję nad projektem gry w Warcaby w języku Java. Nawiasem mówiąc, za tydzień Święta! Mam nadzieję, że uda mi się ukończyć całość do Wigilii 🎄 🎅 ❄️
Podsumowanie tygodnia
🚀 Programowanie
2h dziennie na pisanie Warcabów
10 stron/dzień książki Java Head First 3rd Edition - serializacja i operacje wejścia/wyjścia (I/O)
🚀 Blog / marka własna
Poniedziałkowa publikacja na LinkedIn
Poprawić profil na LinkedIn
Artykuł na Blog - pisać min. 1 akapit dziennie
🚀 Szlifowanie skilli:
Praca głęboka - minimum 2h dziennie
Zasada 30% teorii / 70% pisania kodu
Praca nad KISS
Angielski / Hiszpański (wymiennie, minimum 30 min dziennie)
Postęp
- Logika ruchu Królówki w klasie Player -
done
- Udoskonalenie profilu na LinkedIn -
done
- Logika ruchu pionów komputera -
in progress
- Nowy spis na blog -
done
Napotkane trudności
- Spędzilem tylko 8h z zaplanowanych 12h z kodem
- Odpuściłem naukę serializacji na rzecz pisania Warcabów
- Metoda
isQueenMovementDiagonal()
- sprawdza, czy ruch Królówki jest wykonywany po skosie - Wyrzucało mi
ArithmeticException
, kiedy próbujałem wskoczyć Królówką na pole w “zerowym” wierszu, np. zboard [1][1]
doboard[0][2]
. To samo tyczyło się kolumny “zerowej”
Wersja poprzednia:
boolean isQueenMovementDiagonal() { boolean isDiagonal = false; if ((movementRow / movementColumn) == ((pawnRow + 1) / (pawnColumn + 1)) || (movementRow / movementColumn) == ((pawnRow + 1) / (pawnColumn - 1)) || (movementRow / movementColumn) == ((pawnRow - 1) / (pawnColumn - 1)) || (movementRow / movementColumn) == ((pawnRow - 1) / (pawnColumn + 1))) { isDiagonal = true; } return isDiagonal; }
Math
. Unikam tym samym błedu ArithmeticException
i przymusu obsługi wyjątku Wersja poprawiona:
boolean isQueenMoveDiagonal() { int rowDifference = Math.abs(movementRow - pawnRow); int colDifference = Math.abs(movementColumn - pawnColumn); return rowDifference == colDifference; }
Math.abs
to metodą, która zwraca wartość bezwzględną liczby (zawsze zwraca nieujemną wartość, niezależnie od tego, czy liczba wejściowa jest dodatnia czy ujemna)int rowDifference = Math.abs(movementRow - pawnRow);
oblicza różnicę w rzędach pomiędzy pozycją docelową movementRow
i aktualną pozycją pionka pawnRow
. int colDifference = Math.abs(movementColumn - pawnColumn);
oblicza różnicę w kolumnach pomiędzy pozycją docelową pionka movementColumn
i aktualną pozycją pionka pawnColumn
return rowDifference == colDifference;
zwraca true
, jeśli różnica w rzędach jest równa różnicy w kolumnach ( sprawdza, czy ruch jest wykonany po przekątnej, ponieważ na przekątnej różnica w rzędach musi być równa różnicy w kolumnachNarzędzia i materiały
- Wspieranie się ChatemGPT
Reflekcje i wnioski
- Stosować
Keep it Simple, Stupid
, upraszczać kod jak tylko się da, unikać powtarzania tych samych linijek i izolować fragmenty do osobnych metod
- Mój plan zawiera zbyt dużo czasochłonnych zadań jednocześnie. James Clear w książce "Atomowe nawyki" sugeruje, aby zadania rozbijać na mniejsze. To ułatwia planowanie
- Zbyt złożone zadania mogą stać się przytłaczające i trudne do zarządzania
- Mając zaplanowane mniejsze zadania, możesz łatwiej dostosować się do zmieniających się warunków i dodawać nowe taski, jeśli zajdzie taka potrzeba. To elastyczne podejście pomaga radzić sobie z niespodziewanymi sytuacjami
Cele - kolejny tydzień
🚀 Programowanie
2h dziennie na pisanie Warcabów
5 stron / dzień Java Head First 3rd Edition - serializacja i operacje wejścia/wyjścia (I/O)
🚀 Blog / marka własna
Pierwsza oficjalna publikacja na LinkedIn pod własnym nazwiskiem 🚀
Artykuł na Blog - pisać min. 1 akapit dziennie
🚀 Szlifowanie skilli:
Praca głęboka - minimum 2h dziennie
Zasada 30% teorii / 70% pisania kodu
Praca nad KISS
Angielski / Hiszpański (wymiennie, minimum 30 min dziennie)
Śledź mnie na LinkedIn:
Newsletter:
Jeśli masz jakieś sugestie lub pytania, proszę napisz do mnie wiadomość: kuba@javampokaze.pl