W produkcji: Klasyczny snake

Kto nie zna tej wciągającej gry, charakterystycznej dla telefonów nokii bez kolorowego wyświetlacza ? Postanawiając wykorzystać czas w którym jestem chory, rozpocząłem prace nad klonem tej gry, zresztą nie pierwszym. Małe FAQ:

  1. Dlaczego to pisze? Bo mam chwilowo ochotę napisać coś praktycznego w porównaniu zadaniami z archiwów OI.
  2. Jakie są założenia gry ? Założeniem gry jest posiadać wszystkie “fiuczery” jakie posiadał stary dobry Snake.
  3. W czym jest pisana gra ? W języku Vala, przy użyciu bibliotek GLib, Cairo, Gtk.
  4. Jaki jest status implementacji “fiuczerów” ? Snake potrafi się na dzień w którym to pisze poruszać się, jeść i rosnąć.  Pierwszy screenshot:zrzut_ekranu-snake
  5. Czy zostanie opublikowany kod źródłowy gry ? Tak, swojego kodu się nie wstydzę.

PS. To już 100 post na blogu…

Szachy

Ostatnio nauczyłem się grać w Szachy. Zawsze ta gra wydawała mi się bardzo żmudna i trudna, jednak okazało się to tylko pozorem. Rozgrywka bardzo wciąga i daje ogromne możliwości taktyczne, a ponadto zmusza mózg do intensywnego myślenia co daje dużą satysfakcje nawet jak się przegra.  Najczęściej gram z Anią lub komputerem. Jednak jak dotychczas udało mi się jedynie 2 razy zmatować króla armii dowodzonej przez sztuczną inteligencję.  Poniżej przedstawiam screeny moich matów:

Update: ok. godziny 22.37 – kolejny mat króla przeciwnika komputerowego…

[22.09.09] Debian Pulpit

Mój Debianowy pulpit, mimo nieskonfigurowania jeszcze wszystkiego wg. zamierzeń uważam że wygląda nieźle. Ale oceńcie sami:

  • System: Debian “Lenny”
  • Środowisko: Gnome
  • Tapeta: ???
  • Motyw: DarkTurrican
  • Obramówka: Apfel

Debian na pokładzie

“Nie ważne od jakiej dystrybucji zaczynasz, ważne że kończysz na Debanie”

Z dniem 10.09.2009 roku stałem się użytkownikiem Debiana, przechodząc z Ubuntu. Postanowiłem spróbować swoich sił na tym nieco bardziej ambitnym polu, po zepsuciu się środowiska graficznego w poprzednim systemie, z mojej winy. Z Ubuntu nie  rezygnuje całkowicie, z pewnością będę śledził kolejne wydania.

Po pierwszych dniach użytkowania nowego systemu jestem zadowolony ze zmiany, ale do załatwienia została mi już/aż tylko sprawa sterownika do karty graficznej i wi-fi…

debian-logo

Matura zbliża się wielkimi krokami…

Ten rok szkolny z pewnością będzie należał do tych w których dzieje się dużo i szybko, a to za sprawą egzaminu maturalnego. W wakacje nie leniuchowałem przeczuwając że będzie nerwowo, razem z Anią powtarzaliśmy już Matematykę przez całe wakacje.

Z czego będę zdawał egzamin? Oprócz tego co musi każdy tegoroczny maturzysta to Matematykę na poziomie Rozszerzonym i Informatykę. Szczególnie muszę się zając szlifowaniem swoich umiejętności z tego pierwszego, co jak wspomniałem już rozpocząłem. Z planu początkowego wykruszyła się tylko Fizyka, niestety z braku czasu na jej zgłębienie.

Całość niesie za sobą jeden wielki minus: pomysły są przelewane póki co na papier mojego “Hińskiego” notesiku a nie w okno IDE. Ale już po egzaminach, przez 4 miesiące wolnego między szkołą średnią a studiami odrobię z pewnością sobie to odrobię…

Walkę, przede wszystkim, z czasem czas zacząć, więc życzcie mi połamania w wskazówek w zegarku…

Gra w życie – ciąg dalszy zabawy z interfacem

newinterfacePo przeczytaniu artykułu “Styling Buttons and Toolbars with the jQuery UI CSS Framework” postanowiłem wdrożyć zdobytą wiedzę w interface Gry w życie.

Kontrolki UI wyglądają teraz znacznie schludniej i są bardziej zintegrowane z oknami dialogowymi oraz siatką komórek. Kolejną zmianą jest wyeliminowanie okien “Narzędzia” i “Menu główne”  i zastąpienie ich menu “z prawdziwego zdarzenia” (za pomocy skryptu, podobnie jak powyższy artykuł, autorstwa filament group).

Inną niewielką zmianą jest licznik żywych komórek i automatyczna pauza gry w momencie wymarcia wszystkich komórek.

Gra w życie – update

Prosto z mostu: co nowego ?

Przede wszystkim obsługa 3 formatów plików służących do zapisywania układów komórek:

  • Plaintext w którym komórki reprezentowane są za pomocą znaku kropki (nieżywa komórka) i znaku O (duże O jak Ola) do reprezentowania żywych komórek, przykładowo Glider wygląda w nim tak:

    .O.
    ..O
    OOO

  • Life w wersji 1.05 i 1.06 w którym stan jest reprezentowany, w zależności od wersji, jako lista pojedynczych bloków i ich współrzędnych lub jako lista współrzędnych żywych komórek. Format obsługiwany tylko w trybie “do odczytu”.
  • Run Length Encoded, w skrócie rle, najbardziej skompresowany format, ale chyba najpopularniejszy obok Plaintext. Glider w tym formacie wygląda tak:

    x = 3, y = 3
    bo$2bo$3o!

Pozatym:

  • Po rozpoczęciu ewolucji układu, zapisywany jest stan początkowy układu w ciasteczkach przeglądarki. Gra po ponownym uruchomieniu proponuje przywrócenie ostatniego układu początkowego.
  • Narzędzie do wyśrodkowywania wzoru.
  • Kilka zmian w interfacesie: zintegrowana pausa z przyciskiem start, pasek narzędziowy może zostać przeniesiony w dowolne miejsce na ekranie, a także po rozpoczęciu ewolucji znika gdy nie jest potrzebny.

Jeśli ktoś ma uwagi, propozycje lub znalazł błąd w grze proszę o kontakt :)

playlife

Vala

Vala to język programowania stworzony na potrzeby środowiska Gnome i mocno z nim związany. Powstał dla wszystkich programistów chcących pisać aplikacje przy użyciu bibliotek opartych o GObject z użyciem konstrukcji charakteryzujących nowe języki programowania.

Cechuje się między innymi składnią wzorowaną na C# (zmodyfikowaną na potrzeby GObject),  pełną obiektowością z wbudowaną obsługa sygnałów, właściwości,  wyrażeń lambda czy pętli foreach, zarządzaniem pamięcią.

Czy odróżnia się on od innych języków programowania ? Pliki źródłowe są kompilowane do C. Dzięki temu  twórcy uniknęli wynajdywania na nowo koła, jednocześnie ułatwiając do maksimum użycie kodu napisanego w tym języku w C i vice versa.

To tak krótko o samym języku, o którym obiecałem kiedyś że napisze coś więcej. Osobiście bardzo przyjemnie mi się w nim programuje, więc zachęcam do zapoznania się z nim.

Gra w życie

Ostatnio miałem ochotę napisać sobie prostą grę, więc napisałem “Grę w życie”.  Co się ukrywa pod tym tytułem ?

Gra w życie to bez wątpienia najpopularniejszy przykład automatu komórkowego.  Zabawa najprościej mówiąc polega na odkrywaniu nowych form życia w świecie gry. Zadaniem gracza jest tylko ustawienie początkowego układu żywych komórek i … oglądanie jak ewoluują z czasem. Oryginalne zasady mutacji układu wymyślił John Conway w 1970 roku, a brzmią one następująco:

  • komórka pozostaje przy życiu jeśli ma 2 lub 3 żywych sąsiadów, w przeciwnym wypadku umiera albo z samotności albo z przeludnienia
  • komórka rodzi się gdy ma 3 żywych sąsiadów

Zapewniam że mimo tak prostych reguł, braku efektów dźwiękowych i mizernej oprawie graficznej, gra potrafi wciągnąć. Dowodem na to są pojawiające się od początku istnienia gry odkrycia w postaci nowych oscylatorów (czyli układy zmieniające się okresowo), statków (oscylatorów które się poruszają w jakimś kierunku) czy też dział (oscylatorów “produkujących” statki). Wymienione rodzaje form życia są najczęściej celem gracza.

Dwie ciekawostki związane z grą:

  1. Jedna z układów Gry w życie, będącym najprostszym do tej pory odkrytym statkiem, Glider, jest emblematem społeczności hakerskiej.
  2. W roku 2000 Paul Rendell skonstruował układ komórek będący Maszyną Turniga, czyli modelem komputera, który może wykonać dowolny algorytm czy symulować inny komputer!

Od strony technicznej gra została napisana w JavaScripcie z pomocą jQuery, więc wymagana do niej jest tylko dobra przeglądarka. Źródła gry oczywiście są dostępne publicznie, patrz zakładka “O grze”. W grę można zagrać w tym miejscu.

Pomysł na wakacje: RPG

Nie samą informatyka i matematyką człowiek żyje, potrzebuje też trochę rozrywki. Ale kreatywnej rozrywki na wyższym poziomie niż programy z serii “Gwiazdy recytują wiersze na deszczu”, w dodatku nie kosztującej zbyt dużo i pozwalającej spędzić trochę czasu z znajomymi. I tu dochodzimy do pojęcia gier fabularnych…

RPG (z ang. role-playing game), zwana po polsku grą fabularną, a złośliwie tłumaczona jako “Rabuj, Pal i Gwałć”, to gra polegająca w bardzo dużym skrócie, na ogrywaniu przez graczy wymyślonych przez siebie postaci w wyimaginowanym świecie tworzonym przez Mistrza Gry, prowadzona w formie dialogu między graczami a Mistrzem Gry.

Postaciami graczy mogą być, dla przykładu świata fantasy,  praworządny rycerz, zadufany w sobie czarodziej, rzezimieszek pragnący tylko podebrać komuś sakiewkę, fanatyczny kapłan czy nieroztropny bard, bez przerwy pakujący się w kłopoty po zabawach z niewiastami, zapewniam że kombinacji jest nieskończoność. A kto to “Mistrz Gry” ? To gracz u którego najczęściej w domu odbywa się sesja (spotkanie graczy), a tak na serio, to gracz który kreuje świat w okół graczy.

Odpowiedź na pytanie “Co to jest RPG ?” jest materiałem na artykuł i wiele już takich powstało, dlatego żeby nie wynajdywać po raz kolejny koła, odsyłam do artykułu z serwisu Poltergeist.

Wymagania gier RPG to przede wszystkim wyobraźnia, grupa 3-5 osób, parę kartek papieru i ołówków, zestaw kostek i opcjonalnie podręcznik do jakiegoś systemu (jeśli nie chcemy wymyślać wszystkiego od zera).

Być może spotkałeś się z komputerowymi adaptacjami RPG, poprzez tytuły takie jaka Baldur’s Gate, Icewind Dale, Neverwinter Nights czy Gothic, Diablo, Fallout, gry z serii “The Elder Scrolls” (Morrowind, Oblivion), Word of Warcraft itd. Być może jesteś fanem książek z gatunku fantasy, od dla przykładu Władcy Pierścieni, Wiedźmina czy Harrego Potera. Jeśli tak to z pewnością RPG przypadnie Ci do gustu i zapewni Ci niezapomniane przeżycia.

Osobiście zaczynałem od autorskiego systemu mojego przyjaciela, który nosił nazwę “Łowcy Cieni”, zresztą przez niego również zostałem zwerbowany do grania. A było to już ponad 6 lat temu jak i nie więcej… więc jak widać potrafi wciągnąć ;)

Następna strona »