Podstawy programowania, Poniedziałek , 8-10 Projekt, część 3

Podobne dokumenty
Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

Budowa i generowanie planszy

lekcja 8a Gry komputerowe MasterMind

Instrukcja obsługi. Helpdesk. Styczeń 2018

Podstawy Programowania (PRM) projekt Specyfikacja strukturalna (techniczna)

Propozycje tematów zadań

Podstawy Programowania Podstawowa składnia języka C++

Projekt Śnieżna wojna

void Pobierz(Student &a); void Wypisz(Student a); void Ustaw_zaliczenia(Student t[],int r); void Wypisz_najlepszych(Student t[],int r, float prog);

Integracja z Subiekt GT

Programowanie obiektowe - zadania

UMOWY INSTRUKCJA STANOWISKOWA

Jak przesłać mapę do urządzenia lub na kartę pamięci?

Rozwiązanie przygotowane z myślą o użytkownikach programu Symfonia Handel, którzy zajmują się sprzedażą węgla, różnego sortu

MIKROKONTROLERY ARM DOKUMENTACJA WSTĘPNA PROJEKTU GRA PONG

Tytuł: Instrukcja robocza. Cel Zastosuj tę procedurę, aby utworzyć wniosek o wynagrodzenie uzupełniające.

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup

REJESTRACJA PROJEKTÓW

Instrukcja zgłaszania błędu

Gra logiczna dla 2 5 osób Czas rozgrywki około 45 minut Wiek od 7 lat

Scenariusz zajęć. Moduł VI. Projekt Gra logiczna zgadywanie liczby

Opis postępowania dla uczestników aukcji

Pzetestuj działanie pętli while i do...while na poniższym przykładzie:

Kl-1-3 Szkoła Podstawowa

przedmiot kilka razy, wystarczy kliknąć przycisk Wyczaruj ostatni,

Pomorski Czarodziej 2016 Zadania. Kategoria C

58 Zjazd Naukowy PTChem. Zgłaszanie abstraktów

Opis implementacji: Implementacja przedstawia Grę w życie jako przykład prostej symulacji opartej na automatach.

Opis postępowania dla uczestników aukcji zwykłych

INSTRUCJA WERYFIKACJI PLANÓW ZAJĘĆ W SYSTEMIE UNITIME

Instrukcja do konfiguracji sieci WiFi w Akademii Leona Koźmińskiego dla systemu Windows XP

Zarządzanie kontami użytkowników w JSA przez Administratora JSA

Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

Spis treści REJESTRACJA NOWEGO KONTA UŻYTKOWNIKA PANEL ZMIANY HASŁA PANEL EDYCJI DANYCH UŻYTKOWNIKA EXTRANET.NET...

Skrócona instrukcja pracy z Generatorem Wniosków

INFORMATYKA Z MERMIDONEM. Programowanie. Moduł 5 / Notatki

Tytuł: Instrukcja robocza

Magiczny ogródek INSTRUKCJA GRA DLA 2 OSÓB WIEK DZIECKA 4+

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Opis postępowania dla uczestników aukcji zwykłych

Tworzenie książeczek w Storybird

Jak złożyć wniosek na szkolenie w SMK

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

W powyższym kodzie utworzono wyliczenie dni tygodnia.

edycja szablonu za pomocą serwisu allegro.pl

Górażdże Cement S. A. Instrukcja obsługi platformy zakupowej dla dostawców

PLANSZA. Plansza składa się z następujących pól:

Instrukcja konfigurowania sieci WiFi w Akademii Leona Koźmińskiego dla systemu Windows XP

REGULAMIN I MIĘDZYKLASOWEGO TURNIEJU W SCRABBLE 2016/2017

Programowanie gry Smerf w labiryncie

1 Wielokrotne powtarzanie tych samych operacji

Warsztaty dla nauczycieli

1. Opis postępowania dla uczestników aukcji z umów ramowych- szkody górnicze Opis postępowania dla uczestników aukcji z umów ramowych- szkody

1 Podstawowe informacje 2. 2 Tworzenie gry Rejestracja do gry Lista gier 7. 4 Gry Archiwalne 8. 5 Lista Graczy 9

Programowanie komputerowe. Zajęcia 4

Instrukcja obsługi ekranu dotykowego ruchome dno (tryb MANAGER)

Opis postępowania dla uczestników aukcji na sprzedaż złomu

Dokumentacja projektu Makao karciana gra sieciowa

LOGOWANIE DO SUBKONTA

Palety by CTI. Instrukcja

Platforma zakupowa GRUPY TAURON

25. NIE TYLKO WORECZKI CZYLI O ROZUMIENIU SYSTEMU DZIESIĘTNEGO, CZ. I

NOWY SZABLON IMPORTU PLIKÓW

Instrukcja postępowania dla kontrahentów biorących udział w aukcjach na zakup

33. NIE TYLKO WORECZKI CZYLI O ROZUMIENIU SYSTEMU DZIESIĘTNEGO, CZ. I

Tworzenie płatności. Celem tego dokumentu jest opisanie, jak tworzyć płatności w Business Online włączając:

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel

Instrukcja wypełniania formularza Ankieta Trwałości

Pong to dwuwymiarowy symulator tenisa sportowego. Gracz, poruszając prostokątem symulującym paletkę, stara się zdobyć punkt poprzez posłanie piłki

Dopasowywanie czasu dla poszczególnych zasobów

Laboratorium - Tworzenie partycji w Windows XP

NOWY SZABLON IMPORTU PLIKÓW

Funkcje standardowe. Filtrowanie

1. Logowanie do Systemu BCW

OBSŁUGA PRACY DYPLOMOWEJ W APD PRZEZ STUDENTA

System Informatyczny CELAB. Terminy, alarmy

Informacje o członkach WSRM na

PyGame Gra w Kółko i Krzyżyk

Musimy do naszej gry załadować materiały. Są to trzy obrazki:

Zakładanie konta w JSA przez administratora JSA. Rozpocznij

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

WOJEWÓDZTWO PODKARPACKIE

Opis postępowania dla uczestników aukcji. Aukcje z postępowań- typ aukcji: japoński

I N S T R U K C J A O B S Ł U G I P L AT F O R M Y E N E R G I A S P O Ł E C Z N A. Spis treści

1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb.

Instrukcja użytkownika TALENTplus

Realizacja algorytmu z warunkiem czy Twój uczeń lubi programować? Grażyna Koba

Serwis jest dostępny w internecie pod adresem Rysunek 1: Strona startowa solidnego serwisu

Kurs obsługi CMS. 1. Dodawanie kolejnych podstron 2. Obsługa wielojęzycznej witryny

Wstęp do informatyki- wykład 7

REFERAT PRACY DYPLOMOWEJ Temat pracy: SUDOKU - Algorytmy tworzenia i rozwiązywania

PODRĘCZNIK UŻYTKOWNIKA PRACOWNIK SPZOZ

Papyrus. Papyrus. Katedra Cybernetyki i Robotyki Politechnika Wrocławska

Tytuł: Instrukcja robocza. Cel Zastosuj tę procedurę, aby zaksięgować wstępnie wprowadzoną fakturę bez zamówienia.

SCENARIUSZE ZAJĘĆ KLASA 1 DIDASKO Ewa Kapczyńska, Krystyna Tomecka

Program EWIDENCJA ODZIEŻY ROBOCZEJ INSTRUKCJA UŻYTKOWNIKA Przejdź do strony producenta programu

Podręcznik użytkownika formularza wniosku aplikacyjnego

Informacje o aktualizacji Wersja 2.3

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Transkrypt:

Podstawy programowania, Poniedziałek 13.05.2015, 8-10 Projekt, część 3 1. Zadanie Projekt polega na stworzeniu logicznej gry komputerowej działającej w trybie tekstowym o nazwie Minefield. 2. Cele Celem projektu jest napisanie bardziej rozbudowanego programu niż było to możliwe na pojedynczych zajęciach i przećwiczenie wcześniej nauczonych mechanizmów języka C. Ponieważ jest to projekt, wymagana jest również własna kreatywność oraz inwencja nie wszystko w treści zadania będzie napisane krok po kroku jak to zrobić. Uwaga! Zalecane jest szerokie stosowanie zewnętrznych funkcji w dobrym projekcie funkcja main powinna być jak najkrótsza. 3. Sprawdzanie min Zadaniem poprzednich zajęć było stworzenie planszy, na której rozmieściliśmy miny oraz sapera. Dzisiaj dokończymy grę dając saperowi umiejętność wykrywania min oraz dodamy zakończenie gry. Celem samej gry jest przejście sapera z lewego dolnego rogu planszy do prawego górnego roku planszy, omijając miny. Wejście na minę oznacza przegraną i kończy grę. W jaki sposób zatem saper sprawdza miny? Saper ma możliwość sprawdzenia jedynie najbliższych pól. Zauważmy, że punkt, w którym saper się znajduje ma 8 pól sąsiadujących. Zatem dla każdej pozycji sapera (po każdym jego ruchu) sprawdzamy, czy któraś z min nie znajduje się na jednym z 8 pól sąsiednich jeśli nie znajduje się, na ekranie wypisywany jest tekst Brak min!, jeśli zaś na jednym z 8 pól sąsiadujących znajduje się jedna lub więcej min, wypisywany jest tekst Miny!. W naszym projekcie miny są widoczne na ekranie, ale nie stanowi to żadnego problemu, aby dla finalnego gracza wyłączyć ich rysowanie na planszy. Zadaniem gracza jest zatem przejście z jednego do drugiego rogu planszy omijając miny na podstawie informacji posiadanej przez sapera (zauważmy, że gracz nie wie, na którym z 8 pól sąsiadujących mina się znajduje!). Wprowadzona na ostatnich zajęciach ścieżka bezpieczeństwa pozwala graczowi na bezpieczne cofnięcie się na odwiedzone wcześniej, bezpieczne (bez min), pola. Ponieważ są to ostatnie zajęcia, oczekuję pokazania działającego programu po każdym etapie. Przykład informacji o minach jest pokazany na obrazkach poniżej.

4. Wygrana Jeżeli saper dojdzie do prawego górnego rogu planszy gra powinna się skończyć i wyświetlić komunikat o wygranej. Celem gry jest przejście planszy w jak najmniejszej liczbie ruchów. Należy zatem do pętli while wprowadzić zmienną zliczającą liczbę naciśnięć przycisków w, s, a, d. Dojście do prawego górnego rogu przerywa grę (analogicznie jak wejście na minę), z tą różnicą, że wypisywany jest komunikat o wygranej i podawana liczba wykonanych ruchów. Górny górny róg, cel naszej rozgrywki, literką W.

Dodatkowo, po osiągnięciu prawego górnego rogu planszy przez sapera i wygraniu gry, program powinien się nas zapytać o to, czy chcemy zapisać wynik gry do pliku. Jeśli tak, to program pyta się o nazwę użytkownika i zapisuje ją do pliku razem z informacją o liczbie wykonanych ruchów. Przykład implementacji na obrazku poniżej. 4. Wejście na minę W przypadku wejścia sapera na minę gracz przegrywa. Gra się kończy i wraca do menu głównego. Przykład implementacji na poniższym obrazku.

Ta część kończy cały projekt! Nie będziemy obsługiwać wczytywania najlepszych wyników z pliku i wyświetlania ich na ekran. Szczegóły implementacji 1) Sprawdzanie min: W celu sprawdzenia min najprościej jest napisać funkcję typu bool CzyMiny(Punkt saper, bool **poleminowe), która jest wywoływana w funkcji rysującej planszę. W funkcji znajduje się pętla for po tablicy min, która dla każdej miny sprawdza, czy znajduje się ona w jednym z 8 punktów sąsiadujących z Punktem saper. Jeśli choć jedna mina się znajduje na takim polu, funkcja zwraca true, jeśli nie, funkcja zwraca false. W funkcji rysującej planszę sprawdzamy co zwróciła funkcja CzyMiny i wypisujemy odpowiednią informację na ekran.

2) Wejście na minę: Tworzymy funkcję analogiczną do funkcji powyższej (zwracającą bool), która z kolei sprawdza, czy pozycja x,y sapera zgadza się z którąś z min z tablicy min (znowu iterujemy po tablicy pole minowe). Jeśli zgadza się, funkcja zwraca true, jeśli nie, zwraca false. Funkcję wykorzystujemy w pętli nieskończonej while odpowiadającej za ruch. Jeśli funkcja zwraca false, to nic się nie dzieje, jeśli zwraca true, to przerywamy pętlę while i wypisujemy odpowiedni komunikat o przegranej na ekran. Gra wraca do menu głównego. 3) Wygrana: Funkcja działa identycznie jak wejście na minę, z tą różnicą, że sprawdzamy tylko czy pozycja sapera nie jest równa prawemu górnemu punktowi planszy. Jeśli tak, funkcja zwraca true i przerywa pętlę while wypisując odpowiedni komunikat na ekran. Dodatkowo (po przerwaniu pętli) program pyta się użytkownika, czy zapisać wynik do pliku oraz prosi o podanie nazwy użytkownika. Na koniec gra wraca do menu głównego. Punktacja: 1. Obsłużenie sprawdzania min na 8 sąsiednich polach (4 p.) 2. Obsłużenie sytuacji przegranej wejścia na minę (4 p.) 3. Obsłużenie sytuacji wygranej (prawy górny róg planszy) (2 p.)