wtorek, 19 stycznia 2010

Othello w 1200 bajtach C

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ć ;)

Brak komentarzy:

Prześlij komentarz