Zbuduj od podstaw kultowego Tetrisa i poznaj kluczowe koncepcje programowania! W tym kursie przeprowadzimy Cię przez cały proces – od minimalnej wersji gry MVP
Stworzony przez Mariusz Jurczenko
Darmowe lekcje
Zobacz darmowe fragmenty tego szkolenia przed zakupem.
40 % taniej
99.00 zł
To najniższa cena z ostatnich 30 dni!
Szkolenie obejmuje
Masz pytania dotyczące tego szkolenia ?
Podstawowa znajomość C# – warto znać zmienne, pętle, warunki i funkcje.
Chcesz nauczyć się programowania gier w C#?
Zbuduj od podstaw kultowego Tetrisa i poznaj kluczowe koncepcje programowania! W tym kursie przeprowadzimy Cię przez cały proces – od minimalnej wersji gry (MVP) po bardziej zaawansowane mechaniki i optymalizację.
Czego się nauczysz?
Rozpoczniemy od implementacji z podziałem na warstwy i utrzymaniem najlepszych praktyk programowania.
Zaczniemy od utworzenie projektu w Visual Studio z odpowiednimi warstwami:
Krok 1. MVP naszej gry Tetris, skupiamy się na najbardziej podstawowych elementach gry, takich jak:
Nie dodajemy od razu zaawansowanych funkcji, takich jak różne kształty klocków, poziomy trudności czy interakcje gracza, ponieważ najważniejsze jest przetestowanie podstawowej mechaniki. Gdy MVP działa poprawnie i spełnia oczekiwania,
możemy zacząć rozwijać bardziej zaawansowane funkcjonalności.
Następnie przeanalizujemy kod pod kątem zgodności z najlepszymi praktykami i zasadami:
1. SOLID
· Single Responsibility Principle (SRP):
· Open/Closed Principle (OCP):
· Liskov Substitution Principle (LSP):
· Interface Segregation Principle (ISP):
· Dependency Inversion Principle (DIP):
2. Separation of Concerns (SoC)
3. KISS (Keep It Simple, Stupid)
4. DRY (Don’t Repeat Yourself)
5. YAGNI (You Aren’t Gonna Need It)
6. Cohesion i Coupling
Krok 2. Dodamy testy jednostkowe zgodnie z podejściem TDD dla naszego kodu gry Tetris.
Stworzymy testy dla głównych komponentów, zaczynając od podstawowych funkcjonalności.
Testy będą wykorzystywać:
Krok 3 Dodanie różnych typów bloków
Dodanie różnych typów bloków w projekcie wymaga wprowadzenia odpowiednich modyfikacji w kodzie, które będą zgodne z zasadami projektowymi. W szczególności zastosujemy polimorfizm, co pozwoli na efektywne zarządzanie różnymi kształtami bloków. Dzięki temu nasz kod stanie się bardziej czytelny, elastyczny i zgodny z najlepszymi praktykami programowania.
Krok 4 Zastosowanie wzorca Factory Method.
Cel wzorca :
Plan działań:
Dzięki temu jeśli w przyszłości dodamy nowe typy klocków, wystarczy zmodyfikować fabrykę, zamiast zmieniać kod w wielu miejscach!
Krok 5 Dodanie obsługi obracania klocków za pomocą klawiatury.
Aby poprawnie zaimplementować obrót klocków w grze, należy uwzględnić kolizje zarówno ze ścianami planszy, jak i innymi blokami. Jeśli obrót nie jest możliwy, kształt klocka powinien pozostać bez zmian.
Plan Implementacji:
1. Modyfikacja klasy GameBlock
- Istniejąca metoda Rotate zostanie dostosowana tak, aby zwracała obrócony kształt klocka.
2. Aktualizacja klasy GameService
- Dodanie metody CanRotate, która sprawdzi, czy obrót jest możliwy.
- Implementacja RotateCurrentBlock do obsługi rotacji klocka.
- Dodanie metod MoveBlockLeft i MoveBlockRight w kontekście obrotów.
3. Dodanie Strategi
- Dodamy interfejs IRotationStrategy.
- Dodamy implementację strategii standardowej rotacji klocka o 90 stopni w prawo.
- Dodamy implementacja braku rotacji dla klocka.
- Dodamy Rotacja o 180 stopni
- Dodamy Obracanie klocek przeciwnie do ruchu wskazówek zegara
- Dodamy Rotację Losową, wybiera jedną z dostępnych strategii rotacji
Przystąp do szkolenia i oceń go jako pierwszy!
40 % taniej
99.00 zł
To najniższa cena z ostatnich 30 dni!