Ile można pomieścić w 1200 bajtach kodu C?
Roemer B. Lievaart, startując w 1987 w IOCCC (International Obfuscated C Code Contest) zmieścił cały program grający w Othello (Reversi)!
Program wykorzystuje algorytm alfa-beta, siłę pozycji określa na podstawie mobilności (czyli nie tak źle) i potrafi rozegrać całkiem dobrą partię.
Oryginalna wersja (wysłana na konkurs) miała 1024 bajty długości i "ficzery" wymienione powyżej. Dostępna w interwebie wersja ma (aż!) 1200 bajtów, za to potrafi dodatkowo:
- lepiej grać końcówki
- wyświetlać planszę po każdym ruchu
Więcej (+ kod źródłowy) tutaj: http://www.cise.ufl.edu/~manuel/obfuscate/othello
Niestety nie udało mi się skompilować tego kodu pod żadnym kompilatorem (Visual C++ w trybie C, GCC, Digital Mars C, Open Watcom C, Pacific C, Turbo C, DeSmet C ...). Główny problem to
#define D define
i używanie potem #D zamiast #define ;) Jeżeli komuś się uda niech da znać ;)
wtorek, 19 stycznia 2010
Subskrybuj:
Komentarze do posta (Atom)
Brak komentarzy:
Prześlij komentarz