Sziasztok!

Mellekelten kuldom a mini_nat multkor bemutatott "jobbitott" valtozatait, valamint a teglalapkirako "keretrendszer" bovitett valtozatat (fill.pl). Ez utobbiban az az ujdonsag, hogy karaktergrafikaval ki is tudja rajzolni a megoldasokat. Izelitoul a fill.pl vegerol idemasolok nehagy futast (az eqsq opcio azt jelenti, hogy egyenlo oldalu negyzeteket is megengedunk).

-Peter


| ?- test(4, _, Width, Ss, [eqsq]), show_rect(Width, Ss, 4).
4 4 4 4 2 2 2 2 2 2 2 2 2 2 2 2
4     4 2                     2
4     4 2                     2
4 4 4 4 2                     2
3 3 3 3 2                     2
3     3 2                     2
3     3 2                     2
3 3 3 3 2                     2
1 1 1 1 2                     2
1     1 2                     2
1     1 2                     2
1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2
Ss = [1/3,1,1/3,1/3],
Width = 4/3 ? ;
3 3 3 3 4 4 4 4
3     3 4     4
3     3 4     4
3 3 3 3 4 4 4 4
1 1 1 1 2 2 2 2
1     1 2     2
1     1 2     2
1 1 1 1 2 2 2 2
Ss = [1/2,1/2,1/2,1/2],
Width = 1 ? ;
3 3 3 3 4 4 4 4 2 2 2 2 2 2 2 2 2 2 2 2
3     3 4     4 2                     2
3     3 4     4 2                     2
3 3 3 3 4 4 4 4 2                     2
1 1 1 1 1 1 1 1 2                     2
1             1 2                     2
1             1 2                     2
1             1 2                     2
1             1 2                     2
1             1 2                     2
1             1 2                     2
1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2
Ss = [2/3,1,1/3,1/3],
Width = 5/3 ? ;
1 1 1 1 1 1 1 1 1 1 1 1 4 4 4 4
1                     1 4     4
1                     1 4     4
1                     1 4 4 4 4
1                     1 3 3 3 3
1                     1 3     3
1                     1 3     3
1                     1 3 3 3 3
1                     1 2 2 2 2
1                     1 2     2
1                     1 2     2
1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2
Ss = [1,1/3,1/3,1/3],
Width = 4/3 ? ;
1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 4 4 4 4
1                     1 3     3 4     4
1                     1 3     3 4     4
1                     1 3 3 3 3 4 4 4 4
1                     1 2 2 2 2 2 2 2 2
1                     1 2             2
1                     1 2             2
1                     1 2             2
1                     1 2             2
1                     1 2             2
1                     1 2             2
1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2
Ss = [1,2/3,1/3,1/3],
Width = 5/3 ? ;
4 4 4 4 4 4 4 4 3 3 3 3 3 3 3 3 3 3 3 3
4             4 3                     3
4             4 3                     3
4             4 3                     3
4             4 3                     3
4             4 3                     3
4             4 3                     3
4 4 4 4 4 4 4 4 3                     3
1 1 1 1 2 2 2 2 3                     3
1     1 2     2 3                     3
1     1 2     2 3                     3
1 1 1 1 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3
Ss = [1/3,1/3,1,2/3],
Width = 5/3 ? ;
4 4 4 4 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3
4     4 2             2 3             3
4     4 2             2 3             3
4 4 4 4 2             2 3             3
1 1 1 1 2             2 3             3
1     1 2             2 3             3
1     1 2             2 3             3
1 1 1 1 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3
Ss = [1/2,1,1,1/2],
Width = 5/2 ? ;
1 1 1 1 1 1 1 1 1 1 1 1 4 4 4 4 4 4 4 4
1                     1 4             4
1                     1 4             4
1                     1 4             4
1                     1 4             4
1                     1 4             4
1                     1 4             4
1                     1 4 4 4 4 4 4 4 4
1                     1 2 2 2 2 3 3 3 3
1                     1 2     2 3     3
1                     1 2     2 3     3
1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 3 3 3 3
Ss = [1,1/3,1/3,2/3],
Width = 5/3 ? ;
1 1 1 1 1 1 1 1 4 4 4 4 3 3 3 3 3 3 3 3
1             1 4     4 3             3
1             1 4     4 3             3
1             1 4 4 4 4 3             3
1             1 2 2 2 2 3             3
1             1 2     2 3             3
1             1 2     2 3             3
1 1 1 1 1 1 1 1 2 2 2 2 3 3 3 3 3 3 3 3
Ss = [1,1/2,1,1/2],
Width = 5/2 ? ;
1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 4 4 4 4
1             1 2             2 4     4
1             1 2             2 4     4
1             1 2             2 4 4 4 4
1             1 2             2 3 3 3 3
1             1 2             2 3     3
1             1 2             2 3     3
1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 3 3 3 3
Ss = [1,1,1/2,1/2],
Width = 5/2 ? ;
1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4
1     1 2     2 3     3 4     4
1     1 2     2 3     3 4     4
1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4
Ss = [1,1,1,1],
Width = 4 ? ;
no
| ?- test(9, _, Width, Ss), show_rect(Width, Ss, 1).
9 9 9 9 9 9 9 9 9 8 8 8 8 8 8 8 8 8 8 6 6 6 6 6 6 6 6 6 6 6 6 6 6
9               9 8                 8 6                         6
9               9 8                 8 6                         6
9               9 8                 8 6                         6
9               9 8                 8 6                         6
9               9 8                 8 6                         6
9               9 8                 8 6                         6
9               9 8                 8 6                         6
9 9 9 9 9 9 9 9 9 8                 8 6                         6
3 3 3 3 3 3 3 3 7 8 8 8 8 8 8 8 8 8 8 6                         6
3             3 4 4 4 4 4 4 4 5 5 5 5 6                         6
3             3 4           4 5     5 6                         6
3             3 4           4 5     5 6                         6
3             3 4           4 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6
3             3 4           4 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
3             3 4           4 2                                 2
3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 2                                 2
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2                                 2
1                           1 2                                 2
1                           1 2                                 2
1                           1 2                                 2
1                           1 2                                 2
1                           1 2                                 2
1                           1 2                                 2
1                           1 2                                 2
1                           1 2                                 2
1                           1 2                                 2
1                           1 2                                 2
1                           1 2                                 2
1                           1 2                                 2
1                           1 2                                 2
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
Ss = [15/32,9/16,1/4,7/32,1/8,7/16,1/32,5/16,9/32],
Width = 33/32 ?
yes
| ?-