pecet jogger

cokolwiek o czymkolwiek

Miniblog: 'nuff said

Archiwum, Kategorie, O autorze, RSS

Knytt Stories

28/08/2007, 16:02:27 | 6 komentarzy | Gry i gierki

Co to dużo mówić, świetna platformówka, bardziej nastawiona na eksplorację poziomu, niż akcję, ale oczywiście elementy zręcznościowe się tutaj także znajdą. Polecam, mimo że grę przeszedłem w około 1h i to razem z tutorialem (jednak na easy). Natomiast z tego co widzę na stronie gry są już dostępne dodatkowe plansze. Gra może się wydawać infantylna i rzeczywiście taka jest, jeśli jednak komuś to nie przeszkadza - jak mi, to polecam jeszcze raz.

Knytt Stories

knytt stories
knytt stories
knytt stories

C++, nie całkiem trywialny sposób zapisu danych w formie binarnej

28/08/2007, 12:48:46 | 4 komentarze | Programowanie, Techblog

Ostatnio jakoś, kończąc mój pewien program, chciałem zapisać dane w pliku w formie binarnej. Jakoś mimo że bawię się C++ już od paru lat, nigdy mi nie potrzebna taka opcja była, a jak już to korzystałem z instrukcji put oraz get. Będąc zmuszony pisać w czystym ANSI-C, korzystałem natomiast z dość ciekawych funkcji fread oraz fwrite, które w bardzo prosty sposób pozwalają zapisać dowolną strukturę, w formacie binarnych, w pliku oraz równie prosto ją odczytać, np. (przyjmujemy że hs jest jakąś strukturą, a highscorelist 5 elementową tablicą o typie tej struktury)
FILE *plik;
plik = fopen("highscores.dat", "w");
fwrite(highscorelist, sizeof(struct hs), 5, plik);
fclose(plik);
oraz
int a;
FILE *plik;
plik = fopen("highscores.dat", "r");
if(plik != NULL) /* jeśli plik istnieje i prawidlowo sie otwarł */
{
     fread(highscorelist, sizeof(struct hs), 5, plik);
     fclose(plik);
}

Chciałem jednak skorzystać z "czysto ceplusplusowych" konstrukcji. Standardowe operatory << oraz >> z klasy fstream, odpadały ponieważ zapisywały one dane na wyjście w sposób tekstowy - sformatowany. Zacząłem coś kombinować z instrukcjami write oraz read. Niestety z nie wiadomych, mi, przyczyn obie funkcje używały do zapisu oraz odczytu typu char, a dokładniej wskaźnika na tablicę z tym typem oraz długością. Próbowałem więc zwykłego rzutowania zmiennej int na zmienną char *, bezskutecznie. Na szczęście korzytając z dobrodziejstw pewnej wyszukiwarki, po jakimś czasie, udało mi się znaleźć rozwiązanie. Tak więc należało użyć zamiast "zwykłego" rzutowania operator reinterpret_cast, specjalnie stworzony do konwertowania niekompatybilnych wskaźników... Korzystając więc z wiedzy przedstawionej w tamtym dokumencie zapis w postaci binarnej, dowolnej zmiennej, w tym przypadku int, wygląda następująco:
plik.write(reinterpret_cast(&naszint), sizeof(naszint)); natomiast odczyt, jak można łatwo wywnioskować
char tmp[4];
plik1.read(tmp, 4);
int naszint = reinterpret_cast(tmp);
Zasadniczo obie czwórki (4) można by zastąpić, i jest to wskazane, siezof(int) lub sizeof(naszint), czego tutaj nie zrobiłem aby sprawy nie komplikować.

Stare polskie gry DOSowe.

22/08/2007, 23:07:30 | 10 komentarzy | Gry i gierki

W tej notce chciałbym przybliżyć niektórym, stare i może mniej znane gry DOSowe, stworzone przez Polaków i polskie firmy wydające gry. Mniej znane, dlatego że zapewne większość czytelników urodzonych po latach 80 i posiadajcych komputer klasy PC, kojarzy np. gry przygodowe firmy L.K. Avalon (Sołtys) czy Metropolis Software (Teenagent!). Oczywiście sam jest także lubiłem, ale tutaj bardziej skupie się na grach akcji.

Pierwszą grą o której chciałbym wspomnieć jest sharewarowa gra Kret. W grze, jak sama nazwa wskazuje, kierujemy poczynianami kreta, które zadaniem jest zdobyć jak najwięcej punktów. Aby to osiągniąć musi zjadać klocki o kształcie przypominającym trochę standardowe figury tetrisowe. Możemy wychodzić coraz wyżej planszy, ale nie możemy się już wrócić, natomiast im wyżej tyj łatwiej jest zapanować nad spadającymi klockami i przewidzieć ich kolejny ruch. Punkty dostajemy także za każdą sekundę naszego życia.

Screeny:
kret kret

Film z gry:

Kolejną grą akcji z polski, o której warto wspomnieć jest PHOBOS'99. No dobra może nie całkiem jest to gra akcji, i przypomina w pewnym sensie PacMana - zbieramy białe kulki; unikamy duchów, grafika w rzucie izometrycznym. Muszę się przyznać że obecnie nie daje mi już takiej satysfakcji jak parę lat temu, nie mniej ze względu na sentyment - wspominam o niej ;). Demo do pobrania tutaj.

Screeny:
phobos 99 phobos 99

Film z gry

Ostatnią grą o której chcę wspominieć, i jednocześnie jest to być może bardziej znana gra, jest gra pod tytułem Electro Body. Jest to platformówka w której sterujemy niejako polskim Robocopem, i w którym musimy zabijać roboty i inne tego typu kreatury ;). Minusem śrubującym poziom trudności,, mianowicie już po jednym strzale giniemy, a punkty kontrolne od których zaczynami rozgrywkę są oddalone daleko od siebie.

Screeny
electro body electro body

Filmik z pierwszej planszy:


Filmik z innej planszy:

Własny serwer OpenID? Dlaczego nie

21/08/2007, 22:03:59 | 1 komentarz | Software, Szpan, WWW

Wszystko proste jak barszcz i tanie jak drut z pomocą phpMyID - po ściągnięciu, plik README wyjaśnia wszelkie aspekty dostosowania skryptu do własnych potrzeb, więc nie będę się tutaj rozpisywał po za - wyrazami zachwytu. Niestety pewnym minusem dla niektórych może być fakt że hash MD5 trzeba sobie ręcznie wygenerować do hasła, co trudne jednak nie jest. Dodatkowo dla pełnego szpanu polecam zrobienie przekierowania na serwer OpenID z joggera, tak aby przy dodawaniu komentarza np. na Wordpressowych blogach, zamiast adresu naszego serwera - pojawił się adres naszego blogaska na joggerze - opisane jest to w wiki joggerowym.

Polecam jeszcze raz, dla wszystkich paranoików, którzy tak jak ja boją się że inny serwer OpenID nagle zniknie - "must have".

Podróże w czasie i .. czasie

16/08/2007, 20:28:23 | 2 komentarze | WWW

Wymiatam, a wy nie..

Ciekawe zwłaszcza że...

MyBlogLog (MBL) - amerykańska strona internetowa, założona w 2004 roku, umożliwiająca blogerom i czytelnikom blogów wzajemne poznawanie się, wymienianie opiniami i łączenie w społeczności, budowane wokół poszczególnych stron i blogów.
Błąd zauważyłem już jakiś czas temu, ale myślałem ze się ustabilizuje a tu jednak nie, w kaźym razie wymiatam i mogę szpanować datą założenia...

Jako wiadomość bonusową powiem za to że MBL nie akceptuje mi awatarów, zarówno jeśli wysłam je jako JPG jak i w formacie GIF... Albo akceptuje tylko pokazuje tylko na stronie głównej, a w ustawieniach już nie... - sam nie wiem.

Konwencja jakaś? W PHP?

15/08/2007, 15:15:49 | 3 komentarze | Programowanie

Lubię PHP jako język programownia, jednak nie lubię w nim konwencji zapisu nazw funkcji bibliotecznych. Dlaczego jest urlencode i htmlspecialchars, ale także file_get_contents i preg_match_all?
Dlaczego raz do oddzielania poszczególnych członów nazwy funkcji używają "_", a raz nie używają niczego pisząc je łącznie? Niby małe coś, ale trudno mi się jest przyzwyczaić że nawet jeśli pamiętam nazwę funkcji to nie pamiętam czym jest pooddzielana...

Podobnie dziwnie jest z funkcjami print albo echo, które jako jedyne nie wymagają użycia nawiasów w ich składni, co jednak jest już wytłumaczone w manualu php:

print() is not actually a real function (it is a language construct) so you are not required to use parentheses with its argument list.

Captcha w Google Groups

13/08/2007, 14:52:06 | 6 komentarzy | WWW

Czytałem o tym już dawno temu, jednak nigdy na to nie trafiłem, no i stało się to przed chwilą. Captcha w Google, i to nie w wyszukiwarce samej, ale w Google Groups... Enjoy...

Google Groups captcha >

Antyreklama pewnej firmy hostingowej z polski której nazwy nie będę dla celów informacyjnych ujawniał

11/08/2007, 21:28:56 | 7 komentarzy | WWW

Otóż wyobraźmy sobie taką sytuację. Za górami za lasami żył sobie pewien koder. I ten oto koder zrobił sobie pewną stronę, ale nagle stwierdził że sobie tą stronę przeniesie na inny tańszy hosting. Znalazł sobie ten hosting i sobie przeniósł, i nadal wszystko działało i wszyscy byli szczęśliwi, pszczółki latały i się zapładniały, a sarny były zabijane i wypychane przez myśliwych.

Sielanka trwała by dłużej, lecz wtem, pojawił się zły znak! To były ostrzeżenia zapewne, warningi sypały się na lewo i prawo. Nasz bohater nie móc ignorować tych znaków swoistych, zabrał swój magiczny ołówek, i zaczął naprawiać ołóweczkiem owym błędy na stronie. Udało się, jednak zmartwił się nasz bohater, gdy okazało się że jednak to nie jego wina była! Pętelka na szyi już była, żyły lekko podcięte, ale niestety, to nie była jego wina! Zły czarnoksiężnik bowiem włączył rejestracje globalną! Taaak, register_globals zostało włączone. Na szczęście nasz bohater przypomniał sobie że nazwał pewną tablicę podobnie jak zmienną przekazywaną przez GET! Cóż za zdziwienie było zatem jego. Bohater powrócił do swojej sielanki raz jeszcze...

Dobra pomijając już pseudo poetycko bajkowe pierdoły. Jeszcze gdyby to był pierwszy raz. Wcześniej natomiast okazało się że "nasz wspaniały" hosting nagle zmienił kodowanie z nieokreślonego zapewne na ISO-8859-2 - tak.., mimo że sama strona miała kodowanie UTF-8, serwer wysyłał na siłę kodowanie ISO, na szczęście po użyciu PHP'owego headera wszystko wróciło do normy. Jeszcze nie dawniej, bo wczoraj (opisana sytuacja wcześniej miała miejsce dzisiaj) okazało się że serwer nagle przestał akceptować ini_set, ze względów bezpieczeństwa, jak głosił warningowy komunikat, eh... Na stronie hostingu ani widu ani słychu o jakichkolwiek informacjach, bo tam po prostu żadnych ogłoszeń nie ma! Już nie wspominając o tak przydatnej rzeczy dla hostingobiorców jak forum danego hostingodawcy...

Ech.. (Sytuacja opisana na początku w bajce różni się trochę od rzeczywistości, bo tak naprawdę to nie ja wykupiłem ten czy inny hosting, ja tu tylko koduje.)

Jump by Neodelight

10/08/2007, 20:11:24 | Dodaj komentarz | Gry i gierki

jump, neodelight

Gra w nawet bardziej klasycznej oprawie niż wspominany wczoraj Toxic, w stylu bardzo 8-bitowym. Strzelaj do przeciwników, idź przed siebie, skacz po windach i unikaj tego co chce cię zabić. Atutem gry są także globalne wyniki (High-score) - polecam na parę chwil - niestety minusem jest brak "pauzy".

Jump.
jump, neodelight

Budapest Defenders

09/08/2007, 21:31:05 | 6 komentarzy | Gry i gierki

Dobry TowerDefense tym razem w realiach trochę jakby historycznych....

Budapest Defenders

Toxic - nowa gra od Nitrome

09/08/2007, 14:04:42 | 5 komentarzy | Gry i gierki

Zapewnie niektórzy z graczy "flashowych" znają firmę/grupę Nitrome, która tworzy wysokiej jakości gry Flashowe w starym dobrym stylu retro, i z równie dobrą - przypominająca muzykę chipową - muzyką...

Nie inaczej jest z ich najnowszą grą - Toxic. Gra również jest stylizowana na hit z wczesnych czasów rozrywki komputerowej. Jeśli chodzi o typ gry, jest to platformówka, w której aby uratować środowisko, należy pozbierać radioaktywne elementy z mapy, a następnie dojść całym do wyjścia zaznaczonego na kolor czerwony. Aby tego dokonać korzystamy z bomb, które nie tylko pozwalają zabijać przeciwków, ale także - w pewnym stopniu - niszczyć przeszkadzające nam ściany oraz "wykopywać doły" w mapie. Występuje tutaj parę różnych typ bomb, od zwykłych, poprzez "przylepiające się do przeciwnika", aż do bomb specjalnie kopiących dziury w ziemi - poprzez serię wybuchów. Sterowanie w grze jest równie klasyczne, bez niepotrzebnych udziwnień, korzystamy z klawiszy kursora oraz spacji. Bardziej zaawansowane aspekty rozgrywki wyjaśnione są w pierwszych etapach gry.

toxic by nitrome

Podsumowując generalnie, moją powyższą wypowiedź - warto spróbować w grze swoich sił, na pewno nic nie tracimy oprócz samego czasu, który moglibyśmy przeznaczyć na bardziej kreatywne rzeczy niż granie w Toxic ;).

PHP - Usuwanie zer. (Czyli taki micro-tip, którego zapewne każdy zna, i którego nikt nie potrzebuje)

03/08/2007, 10:36:51 | 3 komentarze | Programowanie

Q: Najprostszy sposób aby usunąć niepotrzebne zera w zmiennej w PHP?
A: Dodać do tego numeru 0 Np.
$a = '07'; $a += 0; print $a;
zwróci 7 a nie 07 — przydatne w niektórych zastosowaniach, np. przy dostępie do PHP'owych tablic indeks [7] != ['07'].

Nota: Zapewne jest to spowodowane także tym że zmienna po dodaniu liczby, staje się także zmienną liczbową, a nie tekstową, chociaż teoretycznie w PHP nie ma typów danych - być może sam operator+, pełni tutaj rolę konwertera.

Mam się już bać że mi wywalili konto jabberowe?

02/08/2007, 09:29:58 | Dodaj komentarz | Inne inności

---------------------------
autocom: Server Error
---------------------------
There was an error communicating with the server.
Details: Authentication error: Not authorized
---------------------------
OK
---------------------------

Ok, sekunda strachu po prostu, widzę że już działa, za wyjątkiem transportu GG....

Ninjah

01/08/2007, 12:27:15 | 7 komentarzy | Gry i gierki

Ninjah jest czysto zręcznościową grą akcji. Sterujemy małym białym ninja, którego należy doprowadzić do celu - korzystając z klawiszy WSAD, lub też myszki - a co za tym idzie linki lub tez strzałów, które dodają odrzutu w kierunku przeciwnym do ich wystrzeliwywania. Gra posiada 50 etapów, posortowanych w miarę poziomu trudności, jednak można się spodziewać że po przejściu etapu trudniejszego, znajdzie się także łatwiejszy dla relaksu ;). Można bić rekordy na jednym komputerze, także swoje, gdyż gra zapisuje 'ducha' najlepszej rozgrywki, niestety nie ma opcji typu najlepsze wyniki ogólnie (globalnie)... Natomiast do gry dołączony jest edytor plansz, także jeśli znudzi nam się przechodzenie standardowo dołączonych można się pobawić także w inne, dostępne na stronie twórcy ;).

Gra jest dostępna dla systemu Windows, oraz od niedawna także dla Linuksa (bez kodu źródłowego, co może bardziej ortodoksyjnych Linuksowców zapewne zaszokować [!]). Polecam - gra potrafi zrelaksować, chociaż potrafi także dostarczyć takiej dawki adrenaliny, że przy kolejnym podejściu do tej samej planszy, na usta same cisną się słowa na znane przez wszystkich litery...

<< Wcześniejsze wpisy        Późniejsze wpisy >>