niedziela, 15 kwietnia 2012

Moja twórczość - Wisielec

Lubie programować, jednak bardziej wolę tworzyć strony internetowe czy zarządzać serwerem niż programować tradycyjnie. Nie mniej, muszę się pochwalić swoimi umiejętnościami na informatyce rozszerzonej, a Pan ostatnio zażyczył sobie grę, w którą pewnie każdy z nas za młodu grał, czyli "Wisielec".

Ogólnie, podejrzewam, że nauczycielowi nie chodziło o tak rozbudowany projekt jakim ja go uczyniłem - mógłbym to wszystko co napisałem, skrócić do prostego programiku, jednak gdzie w tym momencie pojawia się wyzwanie?

Postawiłem sobie za cel napisanie w miarę ciekawej aplikacji działającej w oknie konsoli, może kiedyś pokuszę się o okienka. Jednak najpierw zacznę od tego co zrobiłem i co mam dalej w planach, jak znajdę czas.

Ogólnie, to jak na razie wszystko działa dobrze - np. odczyty z prostej bazy danych, o ile można to tak nazwać. Jest to po prostu plik tekstowy, z którego program najpierw pobiera ilość linii, bo co linia, to słowo, które program może użyć w grze (maks. 255), a potem losując liczbę z przedziału 1 - Ilość linii wybierając słowo, które następnie jest szyfrowane (na zasadzie, że wyświetlana jest pierwsza litera, potem znaki '_' aż do ostatniej litery, która jest wyświetlana normalnie) i przedstawiane użytkownikowi do odgadnięcia. Proste, jak budowa cepa, ale po drodze napotkałem parę ciekawych i interesujących problemów - dla przykładu, miałem problem z tym jak napisać algorytm sprawdzający poprawne odpowiedzi. Męczyłem się z tym ustrojstwem kilka godzin, ale w końcu doszedłem do w miarę szybkiego i dość eleganckiego rozwiązania. W następnych wpisach opisze wszystkie algorytmy, które stworzyłem na rzecz tego programu.

Teraz, w planach do swojej gry mam jeszcze:
  • Możliwość zagrania więcej, niż jeden raz. Teraz po przegraniu lub wygraniu trzeba grę wyłączyć i włączyć z powrotem.
  • Zapisywanie wszystkiego tego co się dzieje w logu. 
  • Trochę bardziej przyjemny interfejs, może nawet proste menu.
  • Uproszczenie samego kodu aplikacji, na razie jest to Sodoma i Gomora. 
  • Przejście z byte'ów na integer'ry. Znaczy to mniej więcej tyle, że będzie można zapisać w bazie danych, zamiast 255 rekordów to około 2 miliardów rekordów.
  • Obsługa polski znaków - jak na razie po wpisaniu jakiejkolwiek typowo polskiej litery skutkuje pojawieniem się nieprzyjemnych dla oka krzaczków.
  • Opcje konfiguracyjne programu.
  • Zapis do bazy danych z poziomu programu.
To na razie tylko, jak wpadnę jeszcze na jakiś pomysł lub jakiś z powyżej napisanych dodam do gry, to zaktualizuje ten wpis. Co do rzeczy, które są już w programie, to:
  • Obsługa prostej bazy danych.
  • Sprawdzanie odpowiedzi użytkownika.
  • Rysowanie wisielca w miarę tego, jak użytkownika nie zgaduje literek (jest 9 prób).
  • Punktowanie poprawnych odpowiedzi.
Jeżeli ktoś chce na własne oczy zobaczyć program lub przyjrzeć się kodowi, to tutaj są linki (Wszystko napisane w Pascal'u, kompilator - Free Pascal):

Brak komentarzy:

Prześlij komentarz