wtorek, 30 marca 2010

Bloxorz

Jedna z lepszych gier logicznych w jakie grałem. Bloxorz wciąga jak nic :)

Sterujesz podłużnym klockiem, a Twoim celem jest wrzucenie go od otworu. Ale uwaga - poruszasz się po wąskich platformach, a kiedy klocek straci równowagę i spadnie, to zaczynamy od nowa :)

niedziela, 28 marca 2010

Wyszukiwanie binarne

Jeden z wydawać by się mogło z prostszych algorytmów - przecież nie ma tu nic trudnego. Znalezienie środkowego elementu tablicy, porównanie go z tym wyszukiwanym i wykonanie tego samego kroku dla odpowiedniej pozostałej części tablicy. Nic trudnego?

Jon Bentley w "Perełkach oprogramowania" (1986) podkreśla, że o ile powyższy algorytm został opisany w druku w 1946r., to pierwsza wersja bez błędów ukazała się w 1962r. (bite 16 lat). Autor przy okazji wspomina, że kiedy na prowadzonym przez niego szkoleniu zadanie napisania wyszukiwania binarnego w ciągu paru godzin dostali zawodowi programiści, to 90% z nich skończyło z błędami.

Następnie w swojej książce Bentley opisuje prawidłową wersję algorytmu i na 30 stronach formalnie dowodzi jej poprawności oraz poprawności implementacji w C. W drugim wydaniu (2000) nie wprowadził żadnych zmian w swoim wyszukiwaniu binarnym.

W 2006r. został odnaleziony w nim błąd.

piątek, 26 marca 2010

Jak osiągnąć -46ºC w domu?

Dzisiaj w warunkach domowych (a dokładniej w kuchni) osiągniemy temperaturę -46ºC - jest to temperatura niższa, niż ostra zima na Biegunie Północnym ;)

Będziemy potrzebowali paru rzeczy, które każdy znajdzie w domu:

1. Termometr alkoholowy z odpowiednią skalą.
2. Ręczniki, ścierki.
3. Łyżka.
4. Puszka skompresowanego powietrza - środek do kupienia w każdym sklepie komputerowym za kilkaście złotych.
5. Aparat fotograficzny, aby dokumentować ;)

Mając gotowe te przedmioty - ruszamy :)

środa, 24 marca 2010

Anagramy w języku polskim

Zastanawialiście się kiedyś, jaka jest najfajniejsza grupa anagramów w języku polskim? Ja też nie, aż do wczoraj ;)

Na wypadek jeżeli ktoś nie wie - anagram to wyraz powstały poprzez zmianę kolejności liter innego wyrazu, np. "kot" i "tok". Anagramy tworzą całe zbiory (klasy równoważności :P) - np. "kot", "tok" i "kto" to jedna klasa.

Zacząć musimy oczywiście od listy wyrazów. Ja wykorzystałem darmowy słownik SJP przystosowany do gier słownych (takich jak Scrabble bądź Literaki): http://www.sjp.pl/slownik/growy/. Ma on 35 MB i zawiera 2,7 miliona słów. Czyli nie powinno być źle :)

Odpalamy swoje wybrane środowisko C++ i do roboty :)

poniedziałek, 22 marca 2010

Time FCUK

Pikselowate gry flash są w modzie. A takie oparte mniej lub bardziej na fizyce tym bardziej.

Gra logiczna Time FCUK, jak sama nazwa wskazuje, miesza czasem (a może przestrzenią)?

sobota, 20 marca 2010

Zawód: Lektor

Głosy tych Panów zna każdy Polak. Ale mało który wie, jak wyglądają posiadacze Głosów - czyli lektorzy.

Zawód lektora to polska fanaberia, taki stan pośredni pomiędzy dubbingiem a napisami - standardami w TV zarówno na Zachodzie, jak i na Wschodzie.

W tym dokumencie autorstwa TVP można zobaczyć (i oczywiście posłuchać) najsłynniejszych polskich lektorów: Tomasza Knapika, Janusza Szydłowskiego, Macieja Gudowskiego i innych. Jako bonus zobaczymy też młodziutką Matyldę Damięcką.

czwartek, 18 marca 2010

Żółta Książka

Ktoś się mnie kiedyś zapytał, dlaczego czytam książki informatyczne od deski do deski.*

Ponieważ nie zrobiłem tego z pierwszą książką informatyczną jaką czytałem. I, jak się później okazało, sporo straciłem. Nie trzymam już w niepewności - chodzi właśnie o Żółtą Książkę, czyli "Turbo Pascal 7.0 z elementami programowania. Część I" Andrzeja Marciniaka. Chociaż kolor nie może być wyróżnikiem, wszystkie książki z serii BUM (Biblioteka Użytkownika Mikrokomputerów) są żółte.

Książkę kupiłem w 1998 roku, pod koniec podstawówki. I, jak już wiadomo, nie przeczytałem jej w całości (w sumie to nadal tego nie zrobiłem) - co więc takiego straciłem?

wtorek, 16 marca 2010

Program w Javie bez main() i średników

Ostatnio padło wyzwanie - napisać program bez użycia funkcji main w Javie. Taki komentarz pojawił się przy okazji programu w C bez średników - http://wojtek-m.blogspot.com/2010/03/program-w-cc-bez-uzycia-srednikow.html ;)

Hm, stwierdziłem że podbije poziom trudności i w Javie też ani jeden średnik nie zagości! Co będzie trudniejsze niż w C, bo Java jest bardziej "uporządkowana".

Oryginalny program (do znanej już gry w "bum" - osoby nie w temacie niech zerkną do powyżej podanego posta):

public class BumGame {
  public static void main(String[] args) {
    for (int i = 1; i <= 100; i++) {
      if (i % 3 == 0 || i % 5 == 0) {
        System.out.println("BUM");
        continue;
      }
      int j;
      for (j = 1; j <= i; j *= 10) {
        int digit = (i / j) % 10;
        if (digit == 3 || digit == 5) {
          System.out.println("BUM");
          break;
        }
      }
      if (j > i) {
        System.out.println(i);
      }
    }
  }
}

niedziela, 14 marca 2010

Shift

Czarno-biała gra logiczna.

OK, ale co w tym takiego specjalnego, że czarno-biała? Ano to, że normalnie nasza postać jest czarna na białym, ale po naciśnięciu pewnego klawisza (ciekawego jakiego?) plansza obraca się o 180 stopni, a my jako biała postać poruszamy się po czarnym - bardzo fajny pomysł.

Uwagę zwraca muzyka, która pasuje do czarno-białego klimatu gry - mi kojarzy się z klubami z lat 30-tych, kiedy wszystko było czarno-białe (przynajmniej wg. filmów z tamtego okresu).

piątek, 12 marca 2010

Internet Explorer i typy MIME

Internet Explorer nie zawsze trzyma się standardów, co za niespodzianka.

Jeżeli w Waszej aplikacji webowej użytkownicy także mają możliwość umieszczania zdjęć wgrywanych z dysku twardego (np. awatarów) i wykorzystujecie to tego input type="file", to sprawdzcie to pod Internet Explorerem.

Otóż nasz stary kumpel IE (nawet w najnowszej, 8 edycji) czasami niestandardowo traktuje typy MIME wysyłanych plików graficznych.

środa, 10 marca 2010

Vanvcouver 2010

Zimowe Igrzyska Olimpijskie 2010 w Vancouver zakończyły się już jakiś czas temu, ale ten blog ma swój cykl wydawniczy :P

Na początku trochę statystyk - dla Polski była to najlepsza zimowa olimpiada EVER. No i po raz pierwszy od 38 lat zdobyliśmy złoty medal. Widać, że od paru lat coś się dzieje w polskich sportach zimowych - na 14 medali zdobytych, 10 zdobyliśmy w ciągu ostatnich 8 lat. A z tych 10 medali 8 krążków zdobyły 2 osoby, czyli to chyba one ciągną nas w klasyfikacji medalowej w górę ;)

Niestety pod względem organizacyjnym można było się dopatrzyć wieeelu niedociągnięć. Jakość realizacji TV jest może subiektywnym odczuciem, więc jej nie będę omawiał (a było średnio, np. Ole Einar Bjørndalen nie był w ogóle pokazywany przez realizatora, a i finisze paru medalistów biatlonu zostały "przegapione"). Ale parę faktów pokazuje poziom organizacji igrzysk - będę pisał tylko o tym, co sam widziałem, pewnie to tylko wierzchołek góry lodowej.

poniedziałek, 8 marca 2010

fr-033: like there's no tomorrow

Sie sehen den neuen Farbrausch - czyli najnowsza produkcja mistrzów (IMHO) demosceny.

Jest to zaproszenie na Breakpoint 2010, które wygląda jak... fr-041: debris. Nawet muzyka to jest tylko remix debrisowego utworu - z dodanymi fragmentami z fr-025: the.popular.demo. O tak, racja, disco-postaci z popular demo też się pojawiają...

Demo mówi o końcu demosceny itd. - no ale tą produkcją grupa zza naszej zachodniej granicy się zdecydowanie nie popisała, więc nie wiem czy to oni odrodzą demoscenę...

Zresztą zobaczcie sami.

sobota, 6 marca 2010

Vox Populi, Vox Dei

...czyli wilkołaczy thriller.

Wilkołaki, teraz na topie z okazji filmu "Wilkołak" (The Wolfman) w kinie. Ale ta prosta gra chyba nie ma nic wspólnego z filmem ;)

Grafika jest w 8-bitowym stylu, dodatkowo czarno-biało-szara. Jedyny kolor to nasz (niebieski) bohater. I czerwona krew. Duuużo (pikselowatej) krwi.

Niestety muzyki brak, gra jest bardzo krótka, ale... walka z wilkołakami wręcz to po prostu czysty fun.

czwartek, 4 marca 2010

Usuwanie katalogu .svn w Windows

Pracując nad uczelnianymi projektami pojawia się problem - kiedy przychodzi pora nagrać płytę CD z wynikami, a my wykorzystywaliśmy SVN do synchronizowania pracy zespołowej. Mamy wtedy dwa wyjścia:

a) nagrać płytę CD wraz z ukrytymi katalogami ".svn" - niezbyt profesjonalne, poza tym zielony ptaszek z Tortoise na płycie CD mnie osobiście razi
b) kasować foldery ".svn" ręcznie - no cóż, przy projekcie mającym wiele katalogów to powodzenia (ja tylko raz znalazłem upór aby to zrobić)

Poza tym warto wykasować te ukryte katalogi z folderów z zakończonych już projektów - pozwoli to zaoszczędzić całkiem sporo miejsca. Często ukrytych danych jest prawie tyle samo co tych widocznych!

Więc jest jakiś szybki, sprytny sposób aby to zrobić? Jest.

wtorek, 2 marca 2010

Program w C/C++ bez użycia średników

Czy dostaliście kiedyś zadanie napisać program w C++ (lub C) tak, aby nie użyć ani jednego średnika?

Jak to możliwe? Przecież średnik w prawie każdym języku zajmuje ważne miejsce - a to rozdziela instrukcje (SQL, Pascal, Perl), a to musi kończyć każdą instrukcję (C, C++, C#, Java) - jak więc sobie dać radę bez niego.

Jak zobaczymy - bez problemowo można. Jako przykładowy program-pomocnik do gry w "BUM". Jeżeli ktoś nie zna tej gry (zna ktoś?), to krótki przypomnienie:

1. Grają dwaj gracze. Na przemian mówią kolejne liczby naturalne.
2. Jeżeli gracz ma wypowiedzieć liczbę podzielną przez 3 lub przez 5 to zamiast tej liczby gracz mówi "BUM".
3. Tak samo jeżeli liczba do wypowiedzenia zawiera w sobie cyfrę 3 lub 5 to zamiast tej liczby gracz mówi "BUM".