% http://pimli.se/ego-nonogram.php % House % fztini: 5.1 sec % minizinc: 6.3 sec % ic: solution after 18 sec % fz: 11 sec % lazy: 2 sec %% ROW RULES row_max = 15; row_states = array2d(1..row_total_states, 1..2, [ % pattern 0,0,0,0,0,1, % 1,2, 2,0, % pattern 0,0,0,0,2,3, % 1,2, 0,3, 4,0, 4,5, 0,6, 0,7, 7,0, % pattern 0,0,0,0,0,7, % 1,2, 0,3, 0,4, 0,5, 0,6, 0,7, 0,8, 8,0, % pattern 0,0,0,0,0,8, % 1,2, 0,3, 0,4, 0,5, 0,6, 0,7, 0,8, 0,9, 9,0, % pattern 0,0,0,0,0,9, % 1,2, 0,3, 0,4, 0,5, 0,6, 0,7, 0,8, 0,9, 0,10, 10,0, % pattern 0,0,0,0,0,11, % 1,2, 0,3, 0,4, 0,5, 0,6, 0,7, 0,8, 0,9, 0,10, 0,11, 0,12, 12,0, % pattern 0,0,0,0,0,13, % 1,2, 0,3, 0,4, 0,5, 0,6, 0,7, 0,8, 0,9, 0,10, 0,11, 0,12, 0,13, 0,14, 14,0, % pattern 0,0,0,0,0,15, % 1,2, 0,3, 0,4, 0,5, 0,6, 0,7, 0,8, 0,9, 0,10, 0,11, 0,12, 0,13, 0,14, 0,15, 0,16, 16,0, % pattern 0,0,0,0,1,1, % 1,2, 3,0, 3,4, 4,0, % pattern 0,0,1,3,4,1, % 1,2, 3,0, 3,4, 0,5, 0,6, 7,0, 7,8, 0,9, 0,10, 0,11, 12,0, 12,13, 13,0, % pattern 1,1,1,1,1,1, % 1,2, 3,0, 3,4, 5,0, 5,6, 7,0, 7,8, 9,0, 9,10, 11,0, 11,12, 12,0, % pattern 0,1,3,1,1,1, % 1,2, 3,0, 3,4, 0,5, 0,6, 7,0, 7,8, 9,0, 9,10, 11,0, 11,12, 12,0, % pattern 0,0,1,1,1,1, % 1,2, 3,0, 3,4, 5,0, 5,6, 7,0, 7,8, 8,0, % pattern 0,0,1,1,1,1, % 1,2, 3,0, 3,4, 5,0, 5,6, 7,0, 7,8, 8,0, % pattern 0,0,0,0,0,13, % 1,2, 0,3, 0,4, 0,5, 0,6, 0,7, 0,8, 0,9, 0,10, 0,11, 0,12, 0,13, 0,14, 14,0, ]); row_max_state = 16; row_total_states = 149; row_num_patterns = 15; row_num_states = [2,7,8,9,10,12,14,16,4,13,12,12,8,8,14]; % this is also the final state row_start_where = [1,3,10,18,27,37,49,63,79,83,96,108,120,128,136]; % COL_RULES: col_max = 15; col_states = array2d(1..col_total_states, 1..2, [ % pattern 0,0,0,1, 1,2, 2,0, % pattern 0,0,0,9, 1,2, 0,3, 0,4, 0,5, 0,6, 0,7, 0,8, 0,9, 0,10, 10,0, % pattern 0,0,3,1, 1,2, 0,3, 0,4, 5,0, 5,6, 6,0, % pattern 0,7,3,1, 1,2, 0,3, 0,4, 0,5, 0,6, 0,7, 0,8, 9,0, 9,10, 0,11, 0,12, 13,0, 13,14, 14,0, % pattern 7,1,1,1, 1,2, 0,3, 0,4, 0,5, 0,6, 0,7, 0,8, 9,0, 9,10, 11,0, 11,12, 13,0, 13,14, 14,0, % pattern 0,6,3,1, 1,2, 0,3, 0,4, 0,5, 0,6, 0,7, 8,0, 8,9, 0,10, 0,11, 12,0, 12,13, 13,0, % pattern 0,0,7,1, 1,2, 0,3, 0,4, 0,5, 0,6, 0,7, 0,8, 9,0, 9,10, 10,0, % pattern 0,0,8,1, 1,2, 0,3, 0,4, 0,5, 0,6, 0,7, 0,8, 0,9, 10,0, 10,11, 11,0, % pattern 0,0,7,6, 1,2, 0,3, 0,4, 0,5, 0,6, 0,7, 0,8, 9,0, 9,10, 0,11, 0,12, 0,13, 0,14, 0,15, 15,0, % pattern 0,6,1,1, 1,2, 0,3, 0,4, 0,5, 0,6, 0,7, 8,0, 8,9, 10,0, 10,11, 11,0, % pattern 0,5,1,1, 1,2, 0,3, 0,4, 0,5, 0,6, 7,0, 7,8, 9,0, 9,10, 10,0, % pattern 0,0,4,6, 1,2, 0,3, 0,4, 0,5, 6,0, 6,7, 0,8, 0,9, 0,10, 0,11, 0,12, 12,0, % pattern 0,0,3,1, 1,2, 0,3, 0,4, 5,0, 5,6, 6,0, % pattern 0,0,0,9, 1,2, 0,3, 0,4, 0,5, 0,6, 0,7, 0,8, 0,9, 0,10, 10,0, % pattern 0,0,0,1, 1,2, 2,0, ]); col_num_patterns = 15; col_max_state = 15; col_total_states = 146; col_num_states = [2,10,6,14,14,13,10,11,15,11,10,12,6,10,2]; % this is also the final state col_start_where = [1,3,13,19,33,47,60,70,81,96,107,117,129,135,145];