% https://prof.ti.bfh.ch/hew1/informatik3/prolog/p-99/p98.pl % 'Hen' % fztini: 0.5 sec % Gecode/fz: 0.7 sec % MiniZinc: 1 sec %% ROW RULES row_max = 9; row_states = array2d(1..row_total_states, 1..2, [ % pattern 0,3, % tmp: dummy 0 1 1 1 % 1,2, 0,3, 0,4, 4,0, % pattern 2,1, % tmp: dummy 0 1 1 0 1 % 1,2, 0,3, 4,0, 4,5, 5,0, % pattern 3,2, % tmp: dummy 0 1 1 1 0 1 1 % 1,2, 0,3, 0,4, 5,0, 5,6, 0,7, 7,0, % pattern 2,2, % tmp: dummy 0 1 1 0 1 1 % 1,2, 0,3, 4,0, 4,5, 0,6, 6,0, % pattern 0,6, % tmp: dummy 0 1 1 1 1 1 1 % 1,2, 0,3, 0,4, 0,5, 0,6, 0,7, 7,0, % pattern 1,5, % tmp: dummy 0 1 0 1 1 1 1 1 % 1,2, 3,0, 3,4, 0,5, 0,6, 0,7, 0,8, 8,0, % pattern 0,6, % tmp: dummy 0 1 1 1 1 1 1 % 1,2, 0,3, 0,4, 0,5, 0,6, 0,7, 7,0, % pattern 0,1, % tmp: dummy 0 1 % 1,2, 2,0, % pattern 0,2 % tmp: dummy 0 1 1 % 1,2, 0,3, 3,0, ]); row_max_state = 8; row_total_states = 49; row_num_patterns = 9; row_num_states = [4,5,7,6,7,8,7,2,3]; % this is also the final state row_start_where = [1,5,10,17,23,30,38,45,47]; % COL_RULES: col_max = 8; col_states = array2d(1..col_total_states, 1..2, [ % pattern 1,2, % tmp: dummy 0 1 0 1 1 1,2, 3,0, 3,4, 0,5, 5,0, % pattern 3,1, % tmp: dummy 0 1 1 1 0 1 1,2, 0,3, 0,4, 5,0, 5,6, 6,0, % pattern 1,5, % tmp: dummy 0 1 0 1 1 1 1 1 1,2, 3,0, 3,4, 0,5, 0,6, 0,7, 0,8, 8,0, % pattern 7,1, % tmp: dummy 0 1 1 1 1 1 1 1 0 1 1,2, 0,3, 0,4, 0,5, 0,6, 0,7, 0,8, 9,0, 9,10, 10,0, % pattern 0,5, % tmp: dummy 0 1 1 1 1 1 1,2, 0,3, 0,4, 0,5, 0,6, 6,0, % pattern 0,3, % tmp: dummy 0 1 1 1 1,2, 0,3, 0,4, 4,0, % pattern 0,4, % tmp: dummy 0 1 1 1 1 1,2, 0,3, 0,4, 0,5, 5,0, % pattern 0,3 % tmp: dummy 0 1 1 1 1,2, 0,3, 0,4, 4,0, ]); col_num_patterns = 8; col_max_state = 10; col_total_states = 48; col_num_states = [5,6,8,10,6,4,5,4]; % this is also the final state col_start_where = [1,6,12,20,30,36,40,45];