Tematy projektów C++ Programowanie obiektowe Mateusz Cicheński
Nazwa projektu Typ Wymaga GUI? Max. liczba osób Single-User Dungeon Gra Nie 2 Okręty Gra Nie 1 Scorched Earth Gra Nie 2 Labirynt Gra Nie 1 Gra karciana Gra Nie 1 Generator wierszy Aplikacja użytkowa Nie 2 Kalkulator w ONP Aplikacja użytkowa Nie 1 Manager zasobów Aplikacja Użytkowa Nie 1 Kalendarz Aplikacja użytkowa Nie 1 Arkanoid Gra Tak 2 Gra platformowa Gra Tak 3 Wyścigi Gra Tak 2 Spis projektów
Możliwość wydawania poleceń, które wpływają na osiągane postępy w grze Możliwość zapisania/odczytania stanu gry Tematyka gry dowolna Hero Monster Goblin Troll Single-User Dungeon
Popularna gra w statki Możliwość zapisania/odczytania stanu gry Prosta sztuczna inteligencja Board Ship Cruiser Battleship Okręty
Obliczanie trajektorii pocisku Możliwość zapisania/odczytania stanu gry Prosta sztuczna inteligencja Tank Weapon Cannon Laser Scorched Earth - wariacja
Generowanie losowych labiryntów Możliwość zapisania/odczytania stanu gry Wprowadzenie statystki: liczba ruchów gracza względem minimalnej liczby ruchów Maze Item Rope Key Labirynt
Dowolna gra karciana np. makao Możliwość zapisania/odczytania stanu gry Player Card Standard King Ace Gra karciana
Możliwość wczytania słownika, z którego mają powstać wiersze Określanie parametrów wiersza Zastosowanie zasad gramatyki przy konstrukcji zdań Poem Word Adjective Adverb Generator wierszy
Zapisywanie historii sesji Tworzenie zmiennych i możliwość wykorzystania ich w kolejnych operacjach Zachowanie składni zgodnie z zasadami Odwrotnej Notacji Polskiej Trace Operand Number UserVariable Kalkulator ONP ab+cde*-*
Np. ewidencja pracowników firmy, katalogowanie zbiorów muzycznych Możliwość zapisania/odczytania stanu aplikacji (np. zawartość katalogu) Catalogue Element Album ExtendedPlay Manager zasobów
Zarządzanie wpisami w kalendarzu Możliwość zapisania/wczytania wydarzeń (format ical) Day Event SingleTimeEvent ContinousEvent Kalendarz
Możliwość tworzenia własnych poziomów (prosty format pliku lub edytor) Zapisywanie listy rekordów Sterowanie klawiaturą Racket Block NormalBlock MovingBlock Arkanoid
Możliwość tworzenia własnych poziomów (prosty format plików lub edytor) Sterowanie klawiaturą Możliwość zapisania/wczytania stanu gry Wykrywanie kolizji Player Enemy WorldBlock DestructibleBlock SolidBlock Gra platformowa
Wykrywanie kolizji Tryb ducha powtórzenie przejazdu gracza przez komputer Sterowanie klawiaturą Obstacle Vehicle SmallCar SportCar Wyścigi
Można: używać grafiki z Internetu używać bibliotek zewnętrznych wzorować się na istniejących programach Nie można: wykorzystywać cudzego kodu Warunki realizacji projektu
Sprawozdanie powinno zawierać: Imiona i nazwiska autorów z numerami indeksu Krótki opis projektu Wymagane biblioteki Diagram klas wykorzystywanych w aplikacji Spis wymagań (specyfikacja projektu) Wymagania
Finalny projekt powinien zawierać: Kod źródłowy aplikacji Skompilowane biblioteki używane przez aplikację (.dll) Sposób kompilacji (zwłaszcza gdy nietypowy) Zaktualizowane sprawozdanie Opis działania aplikacji (np. opis interakcji z użytkownikiem, opis sztucznej inteligencji) Wymagania c.d.
Sprawozdanie [3 pkt], w tym: [2 pkt] diagram klas [1 pkt] spis wymagań Finalny projekt [6 pkt], w tym: [1 pkt] zgodność z wymaganiami [2 pkt] zastosowanie paradygmatu PO (abstrakcja, enkapsulacja, dziedziczenie, polimorfizm) [2 pkt] wykorzystanie mechanizmów języka C++ (wskaźniki, konstruktory, destruktory, metody wirtualne, późne wiązanie, dyrektywy preprocesora, wyjątki, przestrzenie nazw, wzorce, STL etc.) [1 pkt] bezawaryjna praca aplikacji, formatowanie kodu, komentarze w kodzie Dodatkowe walory [bonus, max 1 pkt] Punktacja