Logo
Zostań autorem

Koszyk jest pusty

0

Kategorie

  • Chcesz się dzielić wiedzą?

Zaloguj się

Nie pamiętasz hasła? Kliknij tutaj

C# – Zbuduj Własnego Tetrisa! Kompletny Przewodnik

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

Ostatnia aktualizacja: 25/07/2025
59
40

40 % taniej

99.00 zł

To najniższa cena z ostatnich 30 dni!

Ikona kalendarza30 dni gwarancji zwrotu pieniędzy
Ikona zegaraRozpocznij teraz za darmo, zapłać do 30 dni
Flaga PolskiPolska obsługa i faktura

Masz pytania dotyczące tego szkolenia ?

questionZadaj pytanie autorowi

W cenie szkolenia otrzymasz

calendar_clockBezterminowy dostęp
licenseCertyfikat ukończenia
currency_exchange30 dni gwarancji zwrotu
headset_micWsparcie autora
forumDostęp do grupy dyskusyjnej
database_uploadRegularne aktualizacje
acute 9 godz. 31 min. materiału
play_circle104 nagrania wideo

W skrócie

Zbudujesz w C# własnego Tetrisa: od wersji MVP do gry z dodatkowymi mechanikami i optymalizacją.
Poznasz architekturę warstwową (Domain, Application, Infrastructure, Presentation w WPF) i rozdział odpowiedzialności.
Przećwiczysz SOLID, SoC, KISS, DRY, YAGNI oraz pojęcia spójności i sprzężenia w praktycznym projekcie.
Wdrożysz TDD z xUnit, Moq, FluentAssertions oraz dodasz typy klocków, rotacje i wzorzec Factory Method.

Dlaczego warto wybrać to szkolenie

Zbudujesz Tetrisa krok po kroku, zaczynając od MVP. Uporządkujemy kod w warstwach i od początku będziemy trzymać dobre praktyki. Dzięki temu zobaczysz, jak przeprowadzić projekt od idei do działającej gry.

Nauczysz się testów jednostkowych i iteracyjnego rozwoju. Dodasz różne klocki, rotację i fabrykę obiektów. To praktyczne ćwiczenie, które uczy myślenia o jakości, czytelności i łatwej rozbudowie kodu.

  • Projekt krok po kroku – Od MVP do zaawansowanych mechanik i optymalizacji.
  • Architektura w praktyce – Warstwy Domain/Application/Infrastructure/Presentation (WPF).
  • Testy od początku (TDD) – xUnit, Moq i FluentAssertions na komponentach gry.
  • Łatwe rozszerzanie kodu – Factory Method i strategie rotacji dla różnych klocków.

Czego się nauczysz?

  1. 1
    Warstwowy projekt w Visual StudioUtworzysz Domain, Application, Infrastructure i Presentation (WPF).
  2. 2
    MVP gry TetrisZaimplementujesz siatkę planszy, jeden klocek, opadanie i podstawowe wyświetlanie.
  3. 3
    Dobre praktyki projektoweZastosujesz SOLID, SoC, KISS, DRY, YAGNI oraz zadbasz o spójność i ograniczysz sprzężenia.
  4. 4
    Testy jednostkowe (TDD)Napiszesz testy w xUnit, użyjesz Moq i FluentAssertions dla GameBoard i GameService.
  5. 5
    Polimorfizm dla klockówObsłużysz różne typy bloków (I, O, T, S, Z, J, L) z użyciem polimorfizmu.
  6. 6
    Wzorzec Factory MethodWydzielisz tworzenie klocków do IGameBlockFactory i GameBlockFactory.
  7. 7
    Obracanie i kolizjeZaimplementujesz rotacje z uwzględnieniem ścian i innych bloków oraz obsługę klawiatury.
  8. 8
    Strategie rotacjiDodasz IRotationStrategy: standardową, brak rotacji, 180°, przeciwną i losową.
Zobacz więcej Zobacz mniej

Dla kogo jest to szkolenie

  • Osoby zaczynające z C#, chcące zbudować pierwszą grę.
  • Studenci chcący przećwiczyć SOLID i rozdział odpowiedzialności.
  • Programiści .NET porządkujący architekturę projektu.
  • Ci, którzy chcą zacząć pisać testy: xUnit, Moq, FluentAssertions.
  • Hobbyści gier zainteresowani WPF i mechaniką Tetrisa.
  • Uczący się TDD w praktyce, na małym projekcie.
  • Każdy, kto woli naukę przez realizację konkretnego celu.

Wymagania

Brak formalnych wymagań wstępnych. W trakcie pracy korzystamy z Visual Studio i WPF, więc przyda się dostęp do tego środowiska oraz chęć systematycznej nauki.

Opis szkolenia

Zbuduj własnego Tetrisa w C#. Przejdziesz pełną ścieżkę tworzenia gry: od minimalnej wersji (MVP) po rozbudowane mechaniki i optymalizację. Projekt uporządkujemy w warstwach Domain, Application, Infrastructure i Presentation (WPF). Po drodze zastosujesz SOLID, SoC, KISS, DRY, YAGNI oraz zadbasz o spójność i niskie sprzężenia. Dodasz testy z xUnit, Moq i FluentAssertions, a następnie rozszerzysz grę o typy klocków, rotacje i wzorzec Factory Method.

Start: projekt i warstwy

Na starcie utworzysz rozwiązanie w Visual Studio i podzielisz kod na warstwy, aby od początku panować nad złożonością. W Tetris.Domain powstanie logika gry i modele. Warstwa Tetris.Application skupi się na zasadach działania i operacjach aplikacji. Tetris.Infrastructure pozostanie miejscem integracji z zewnętrznymi komponentami, gdy będą potrzebne. Interfejs przygotujesz w Tetris.Presentation z użyciem WPF. Taki układ ułatwi rozdział odpowiedzialności, testowanie i dalszą rozbudowę, a każda część będzie miała jasną rolę.

MVP gry Tetris

W pierwszym kroku zbudujesz minimalną wersję gry. Planszę zaimplementujesz jako siatkę, a na początek użyjesz jednego prostego klocka. Dodasz mechanikę opadania w dół oraz podstawowy interfejs w WPF do wyświetlania planszy. Nie wprowadzamy na razie różnych kształtów, poziomów trudności ani złożonych interakcji gracza, bo najpierw liczy się poprawne działanie podstaw. Gdy MVP spełni oczekiwania, stanie się solidnym fundamentem do stopniowego rozwijania funkcjonalności i usprawnień.

Dobre praktyki i analiza kodu

Po uruchomieniu MVP przeanalizujesz kod pod kątem najlepszych praktyk. Skupisz się na zasadach SOLID: pojedynczej odpowiedzialności, otwartości/zamkniętości, podstawienia Liskov, segregacji interfejsów i odwrócenia zależności. Zadbamy też o Separation of Concerns, prostotę (KISS), brak powtórzeń (DRY) i podejście YAGNI. Ważnym elementem będzie spójność modułów i ograniczanie sprzężeń. Dzięki temu projekt stanie się czytelny, łatwiejszy w utrzymaniu i gotowy na kolejne kroki.

Testy jednostkowe (TDD)

Następnie dodasz testy jednostkowe zgodnie z TDD. Dla planszy, czyli klasy GameBoard, przygotujesz testy konstruktora, sprawdzanie pustych komórek (IsCellEmpty), umieszczanie bloków (PlaceBlock) oraz warunki brzegowe. Dla serwisu gry, klasy GameService, zweryfikujesz tworzenie nowych bloków (SpawnBlock), ruch w dół (MoveBlockDown), zachowanie przy osiągnięciu dna i pobieranie bloków (GetBlocks). Wykorzystasz xUnit jako framework, Moq do mockowania zależności oraz FluentAssertions dla czytelnych asercji.

Nowe klocki i Factory Method

Kolejny etap to dodanie różnych typów klocków i zastosowanie polimorfizmu. Wprowadzisz wyliczenie GameBlockType dla kształtów I, O, T, S, Z, J, L oraz wydzielisz interfejs IGameBlockFactory, który zdefiniuje sposób tworzenia obiektów. Zaimplementujesz GameBlockFactory z metodami CreateGameBlock oraz CreateRandomGameBlock. Dla porządku przeniesiesz IGameBoard do folderu Interfaces. Taki układ oddziela tworzenie klocków od reszty kodu, poprawia czytelność i ułatwia przyszłe rozszerzenia bez dotykania wielu miejsc.

Rotacje, kolizje i strategie

Na koniec dodasz obracanie klocków z klawiatury z pełną obsługą kolizji. Zmodyfikujesz klasę GameBlock tak, aby metoda Rotate zwracała obrócony kształt. W GameService pojawią się CanRotate do sprawdzania możliwości rotacji oraz RotateCurrentBlock do jej wykonania, a także metody MoveBlockLeft i MoveBlockRight w kontekście obrotów. Wprowadzisz IRotationStrategy i przygotujesz strategie: standardową o 90° w prawo, brak rotacji, obrót o 180°, przeciwnie do wskazówek zegara oraz losową, która wybiera jedną z dostępnych opcji.

Zobacz więcej Zobacz mniej

To szkolenie w liczbach

9 godz. 31 min. materiału
104 nagrania wideo

Spis treści

Czas trwania: 09:31:15Liczba wykładów: 104
downMVP Tetris
16 wykładów
  • Rozpoczecie Projektu - Podział Na Warstwy|09:39
  • Rozpoczynamy Kodowanie - warstwa Domain - klasa Block|02:39
  • Warstwa Domain - klasa GameBoard|11:56
  • Warstwa Application - klasa GameService02:49
  • GameService dodajemy metodę Utworzenie Nowego Klocka02:41
  • GameService dodajemy metodę do Przesuwania Klocka w dół06:40
  • GameService dodajemy metodę do Pobierania Bloków Na Planszy07:13
  • Warstwa Presentation - klasa MainWindow11:19
  • MainWindow dodajemy metodę do Aktualizowania Stanu Gry01:42
  • MainWindow dodajemy metodę do Rysowania Elementów Gry07:05
  • Zagadka02:47
  • MainWindow dodajemy metodę do Pobierania Koloru02:41
  • Analiza kodu pod kątem Najlepszych Praktyk i Zasad SOLID08:24
  • Rozwiązanie Zagadki01:07
  • Dwa Podejścia do kolejności wymiarów w tablicy 2D05:47
  • Optymalizacja Renderowania02:18
downUnit Tests
17 wykładów
downDodanie Różnych Typów Klocków
10 wykładów
downZastosowanie Wzorca Factory Method
16 wykładów
downDodanie Obsługi Obracania Klocków za pomocą klawiatury
15 wykładów
downDodanie Logiki Detekcji i Usuwania pełnych linii i dodanie punktacji
17 wykładów
downDodanie zapisywania wyników i wyświetlania Top 5
13 wykładów

O autorze

avatar
Mariusz JurczenkoWeb developer, programista C#

Publikacje: 12

Ocena autora: 3.9

O mnie
Posiadam wieloletnie doświadczenie w pracy z C# a programowanie w tym języku traktuje jako życiową pasję. Chętnie dzieli się swoją wiedzą i zdobytym doświadczeniem. Zawsze staram s...Czytaj więcej
59
40

40 % taniej

99.00 zł

To najniższa cena z ostatnich 30 dni!