niedziela, listopada 23, 2008

Cthulhu nonogram

Na stronie Unspeakable Vault of Doom http://www.macguff.fr/goomi/unspeakable/weblog.html znajduje się zagadka - nonogram:



Rozwiązanie jest proste - szczególnie gdy ma się program który jest w stanie to zrobić :-) Napisałem go na programowanie logiczne. Działa całkiem dobrze, rozwiązanie znajduje bardzo szybko.


| ?- cthulhu(R,W), nono(R,W,O), rysuj(O).
####################
#####.##########..##
#.######.####.###..#
######.....######..#
#####.......####..##
##.##.......########
####.........#####.#
####.........#######
...#....#....###....
...#..#.#....###....
.#..#.#.#....###..#.
###.#.......###..###
#.##.#......###.##.#
.#.###.#....#####.#.
.#.##...#..##.##..#.
####..#.#..#..##.###
#.##.##.##..#..###.#
...#..#.#.#.#..##...
..#.###.#.#.#..##...
..#....#.#.##..##...

O = [[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1],[1,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,0,0,1],[1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,0,0,1],[1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,0,0,1,1],[1,1,0,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1],[1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,1],[1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1],[0,0,0,1,0,0,0,0,1,0,0,0,0,1,1,1,0,0,0,0],[0,0,0,1,0,0,1,0,1,0,0,0,0,1,1,1,0,0,0,0],[0,1,0,0,1,0,1,0,1,0,0,0,0,1,1,1,0,0,1,0],[1,1,1,0,1,0,0,0,0,0,0,0,1,1,1,0,0,1,1,1],[1,0,1,1,0,1,0,0,0,0,0,0,1,1,1,0,1,1,0,1],[0,1,0,1,1,1,0,1,0,0,0,0,1,1,1,1,1,0,1,0],[0,1,0,1,1,0,0,0,1,0,0,1,1,0,1,1,0,0,1,0],[1,1,1,1,0,0,1,0,1,0,0,1,0,0,1,1,0,1,1,1],[1,0,1,1,0,1,1,0,1,1,0,0,1,0,0,1,1,1,0,1],[0,0,0,1,0,0,1,0,1,0,1,0,1,0,0,1,1,0,0,0],[0,0,1,0,1,1,1,0,1,0,1,0,1,0,0,1,1,0,0,0],[0,0,1,0,0,0,0,1,0,1,0,1,1,0,0,1,1,0,0,0]]
R = [[20],[5,10,2],[1,6,4,3,1],[6,6,1],[5,4,2],[2,2,8],[4,5,1],[4,7],[1,1,3],[1,1,1,3],[1,1,1,1,3,1],[3,1,3,3],[1,2,1,3,2,1],[1,3,1,5,1],[1,2,1,2,2,1],[4,1,1,1,2,3],[1,2,2,2,1,3,1],[1,1,1,1,1,2],[1,3,1,1,1,2],[1,1,1,2,2]]
W = [[8,2,2],[2,5,2,3],[5,2,2,2,2],[10,6],[6,2,2,1],[1,2,2,1,1],[3,2,4],[3,1,1],[2,3,5],[3,1,1],[3,2],[4,2,1],[6,4,4],[2,11],[16],[11,7],[1,2,3,2,4],[1,3,2,2],[2,2,1,2,3],[8,2,2]] ? ;

(74 ms) no


Po przekształceniu rozwiązania na bitmapę:

1 komentarz:

  1. drogi kolego, czy byłbyś tak miły, żeby udostępnić źródło swojego programiku? właśnie mam napisać coś takiego jako zadanie dodatkowe, niestety nie mam zbyt dużo a czasu a moje pomysły niestety do zrealizowania wymagają go sporo, a myślę, że Twój algorytm musi być jakiś taki przystępny i łatwiej byłoby mi oprzeć się na nim ... jeśli się zdecydujesz to dhmisieq@gmail.com
    ;)

    OdpowiedzUsuń