Jeu: Taquin NCxNL avec simple Undo

Description

Bonjour,

Cette nouvelle version du jeu taquin présente les "améliorations" suivantes:
- Le nombre de colonnes et de lignes peuvent être choisis librement.
- L'initialisation "aléatoirement uniforme" ne propose que des jeux solubles.
- Activation d'un simple Undo/Redo (à un niveau de profondeur).

Le code est adapté à partir de ceux des l'articles CodeS-SourceS Jeu: Taquin NxN et Fenêtre instantanément ajustée.

Nous arrangeons la routine de mélange Merge() en nous basant sur la fonction RandPermut de l'article CodeS-SourceS Permutations aléatoires et sur la fonction CoefDesordre de Taquin en désordre:
void RandPermut(int *ent, int n) { // ent[] contient déjà une permutation
  for (int r, i=n; i>0;) {int e=ent[r=rand()%i]; ent[r]=ent[--i]; ent[i]=e;}
} // tiré de CodeS-SourceS: Permutations aléatoires

int CoefDesordre(int nC, int nL, int *jeu) {
  int D = 0, n = nC*nL - 1;
  for (int i = 0; i < n; ++i)
    for (int j = i+1; j <= n; ++j)
      if (jeu[j] < jeu[i]) ++D;
  return D;
} // tiré de CodeS-SourceS: Taquin en désordre

void Merge() { // Ne propose que des jeux solubles
  int e,i=nCol*nLin,n=i-1,r;
  while (i>0) {int e=jeu[r=rand()%i]; jeu[r]=jeu[--i]; jeu[i]=e;}
  for (vide=0; jeu[vide]>0; ++vide) ; // position de la case vide
  if ((1&(n + (n-vide)%nCol + (n-vide)/nCol + Desordre(n)))==0) return;
  if (vide>=2) {e=jeu[0]; jeu[0]=jeu[1]; jeu[1]=e;}
  else {e=jeu[2]; jeu[2]=jeu[3]; jeu[3]=e;}
}
Les 3 dernières lignes de ce code signifient que, si le jeu n'est pas soluble, on permute les deux premières cases, ou, si elles contiennent la case vide, les deux suivantes.

Le fichier TaquinUndo.cpp donne un code "windows" complet muni d'un simple Undo/Redu (comme par exemple dans Bloc-notes), qui ne propose que des configurations solubles, et où la case vide est placée aléatoirement.

Le Undo/Redo adapte les décomptes des déplacements et des actions.

Les nombres de colonnes et de lignes peuvent être changées instantanément (voir Help: H).

Le zip contient également le programme Repartition.cpp qui permet de "vérifier" que la routine Merge() présente bien des jeux solubles et où les numéros sont "uniformément répartis" sur les différentes cases:
2x2,OK:     0    1    2    3

idx= 0:  1024  990 1008  978
idx= 1:  1006  959  986 1049
idx= 2:   996  992 1023  989
idx= 3:   974 1059  983  984


3x2,OK:     0    1    2    3    4    5

idx= 0:   999 1037 1017  969 1018  960
idx= 1:   983  989  999  999  999 1031
idx= 2:  1047  984  951  994 1003 1021
idx= 3:   950 1003 1012 1043  987 1005
idx= 4:  1049  994 1013  997  979  968
idx= 5:   972  993 1008  998 1014 1015


4x2,OK:     0    1    2    3    4    5    6    7

idx= 0:   957 1024 1029  975  992 1042 1022  959
idx= 1:  1019 1007  999 1033  991  985  971  995
idx= 2:  1072  987 1018  990  935 1013  988  997
idx= 3:   973  982 1003 1023 1005  978 1023 1013
idx= 4:   980 1043  953 1018 1015  995  993 1003
idx= 5:   983  988 1010  976 1062 1030  986  965
idx= 6:  1024  938  981  994  996  992 1012 1063
idx= 7:   992 1031 1007  991 1004  965 1005 1005


5x2,OK:     0    1    2    3    4    5    6    7    8    9

idx= 0:  1033 1008  986  991  958  965 1002 1042  980 1035
idx= 1:  1015  985 1029  943  913 1012 1057  980 1016 1050
idx= 2:  1015  971 1010 1025 1020 1001  973 1003 1002  980
idx= 3:   990 1008 1028  989 1021  987 1024  981  974  998
idx= 4:   978  986  991  979 1047 1079 1022  988  933  997
idx= 5:  1023  972  979 1013  979 1028 1003 1021 1004  978
idx= 6:  1012 1020  977 1014 1010  970 1032  978 1016  971
idx= 7:   956 1012  990 1044 1051  975  945  989 1028 1010
idx= 8:   981 1048  991 1025 1043  941  963  996 1008 1004
idx= 9:   997  990 1019  977  958 1042  979 1022 1039  977


6x2,OK:     0    1    2    3    4    5    6    7    8    9   10   11

idx= 0:   985  987  989 1042  989  955 1016  981 1036 1024 1022  974
idx= 1:  1011 1000 1015  989  970  976 1019 1003 1004 1001 1008 1004
idx= 2:   982  960 1016 1020 1007 1017 1009 1042  987  937  974 1049
idx= 3:   987 1007 1000 1028 1042 1031 1030  988  987  947 1017  936
idx= 4:  1045  997  953 1011 1021 1004  983  974 1011 1013  976 1012
idx= 5:  1016  990  988  982  954 1023 1020 1033  957 1030 1020  987
idx= 6:   996 1011 1003  963  988  984  949  986 1060 1056  973 1031
idx= 7:  1010  997 1022  994  995 1023  978 1049 1026  986  976  944
idx= 8:   979 1011 1025  992 1029  949 1030 1004  925 1018 1020 1018
idx= 9:   988 1015  971  965 1003 1031  989 1009 1014  995 1005 1015
idx=10:  1020  985  973 1043  988 1015 1021  970  989 1017  990  989
idx=11:   981 1040 1045  971 1014  992  956  961 1004  976 1019 1041


2x3,OK:     0    1    2    3    4    5

idx= 0:  1000  997 1057  982  973  991
idx= 1:  1018  987  996  988  987 1024
idx= 2:  1052  973 1028  984  983  980
idx= 3:   945 1016  991 1007 1006 1035
idx= 4:   969 1014  980  985 1026 1026
idx= 5:  1016 1013  948 1054 1025  944


3x3,OK:     0    1    2    3    4    5    6    7    8

idx= 0:   951  986 1018  970 1027  981 1060 1019  988
idx= 1:  1024 1074  984 1031  952 1014  996  955  970
idx= 2:  1051  979  948 1012  959  978 1046  975 1052
idx= 3:   956 1001 1015 1036 1018  968 1000 1020  986
idx= 4:   991  947 1051  973  996 1004  974 1051 1013
idx= 5:  1035 1004  955  986  972 1041  993 1020  994
idx= 6:  1021 1038  987  983  986 1003  976  993 1013
idx= 7:   984  971 1031 1020 1042 1028  963  964  997
idx= 8:   987 1000 1011  989 1048  983  992 1003  987


4x3,OK:     0    1    2    3    4    5    6    7    8    9   10   11

idx= 0:   992  998 1010 1060  994  977  987  941 1039  963 1048  991
idx= 1:   969 1031  962  998 1061  978  985  998 1007  987  986 1038
idx= 2:   973  998 1001 1003 1015  948 1052 1026  994 1003  992  995
idx= 3:  1001  978  990 1019 1014  987 1024 1024  971 1008 1024  960
idx= 4:  1024  993 1027  937  979  986 1007 1025  997 1048 1012  965
idx= 5:  1007  998 1019  952  983 1049  991  985 1008 1051  989  968
idx= 6:  1042 1017  972 1014  996 1023 1023  969 1007  963  976  998
idx= 7:   986 1000 1027  973 1014  982 1025 1046 1010  936  991 1010
idx= 8:  1017  986 1002 1017  934 1003  985  965  996 1056 1021 1018
idx= 9:  1013  982  966 1021 1014  991 1013 1040  991  989  975 1005
idx=10:   984 1022 1032 1006 1009 1034  945  962  967  999  984 1056
idx=11:   992  997  992 1000  987 1042  963 1019 1013  997 1002  996


5x3,OK:     0    1    2    3    4    5    6    7    8    9   10   11   12   13   14

idx= 0:  1000  992  982  981 1007 1026  957 1025  994 1032 1020  989 1004 1016  975
idx= 1:   949  991 1010 1011 1000 1018 1010 1011  956 1008  950  986 1018 1042 1040
idx= 2:  1014 1014  980  992 1039 1043 1035  976 1018  963  994 1028 1009  950  945
idx= 3:   972 1069 1008 1033  956  992  965  995 1032  998 1015  980 1004  993  988
idx= 4:  1007  973 1007  939 1000 1037 1005 1009  981 1019  955 1020  992 1042 1014
idx= 5:  1023 1027 1033  972  960  978 1004 1028  985 1011 1001  997 1014 1028  939
idx= 6:   980 1017 1075 1020 1015  964 1019 1031  949  948  986 1026  964 1010  996
idx= 7:  1016  999 1036  983 1010 1015  986  950 1044  998  978 1013  935 1012 1025
idx= 8:  1007  974 1007  987  953  969  971 1051  991 1024 1030 1024  997 1010 1005
idx= 9:  1004 1013  983  964 1013  978 1011  968 1069 1054 1027  962  958  983 1013
idx=10:  1012  977 1033 1051  992  969 1028 1016 1034 1004  946  977 1031  940  990
idx=11:   968 1018  904 1006 1023 1026  991  955  998  997 1058 1037 1063  986  970
idx=12:   996 1014  985 1024  990 1027 1013  978  957 1004 1039  945  990 1005 1033
idx=13:  1024  974 1009 1039 1048  980  985  972 1013  986  996  968  992 1018  996
idx=14:  1028  948  948  998  994  978 1020 1035  979  954 1005 1048 1029  965 1071


6x3,OK:     0    1    2    3    4    5    6    7    8    9   10   11   12   13   14   15   16   17

idx= 0:  1005 1012  971 1005 1003 1003  972 1014 1002  973  994 1034 1034  990 1034  972  973 1009
idx= 1:  1012  995 1034  983 1014 1014  995  994  981  998  983  993 1020  965  999 1018  990 1012
idx= 2:   964 1018 1024 1012 1012 1026  964  942 1002 1041 1028  985  956 1018  991 1002 1045  970
idx= 3:   989 1012  975  983 1032 1018 1039 1020 1019  992  965  977  949 1003 1032  952 1019 1024
idx= 4:   964  978 1029 1023  960  971  982 1010 1025 1005 1003  989  976 1070 1069 1037  984  925
idx= 5:  1032  976  943 1006 1024  956  973  989  970  951 1069 1065  967 1004  997 1034 1034 1010
idx= 6:  1009 1051  968  948  977 1006 1007 1046 1049 1030  956  979 1005 1000  988 1003  979  999
idx= 7:   991  998 1025 1022  964 1014 1004  975  943 1031 1010 1013 1066  973  992  956  971 1052
idx= 8:  1025  971 1016 1032 1071 1031  958  997 1007  965  977  973 1028  974  996 1017  996  966
idx= 9:  1008  995 1022  990 1030 1030 1065  995  985  965  969  982  976 1007  971  971 1040  999
idx=10:  1034  997 1069 1036  990  967 1037 1018  959 1003 1015  940 1060  972  969 1022  948  964
idx=11:  1009  968  941  997  964  988  946 1015 1007 1037 1013 1054  983 1042 1002 1025 1017  992
idx=12:   990 1023  993  980  990  934 1011 1039  990  986 1024 1053 1011  971 1001  979  975 1050
idx=13:  1005  980 1006 1019  965 1018 1056  945  992  965  994 1003 1030  973  969 1003 1076 1001
idx=14:   977  982  951  987 1007 1005 1017  971 1040 1005 1025 1016  996 1001 1046 1008  991  975
idx=15:  1003 1020  983  996  962  999 1003  986  987 1065  969  996  982 1035  969 1035  972 1038
idx=16:   971 1006 1045 1019  995 1018  994 1013  966 1005  969 1011  992 1009  977  959 1023 1028
idx=17:  1012 1018 1005  962 1040 1002  977 1031 1076  983 1037  937  969  993  998 1007  967  986


2x4,OK:     0    1    2    3    4    5    6    7

idx= 0:  1011  996  988 1017  966 1003 1013 1006
idx= 1:   988 1049 1013 1017  994  974  963 1002
idx= 2:   998 1007  973 1008 1002  998 1005 1009
idx= 3:   982 1023 1009 1007  992  984  985 1018
idx= 4:   996 1000 1003  977  982 1036 1001 1005
idx= 5:  1020  959  945  996 1039 1020 1046  975
idx= 6:   990 1002 1027  988 1014  981 1023  975
idx= 7:  1015  964 1042  990 1011 1004  964 1010


3x4,OK:     0    1    2    3    4    5    6    7    8    9   10   11

idx= 0:  1006  994 1030 1015 1021  965 1002  964  988 1017  981 1017
idx= 1:  1013 1016 1011  996  999  984  981 1068  963  957  960 1052
idx= 2:   967  974  960 1022 1046 1003  995 1014  985 1023  990 1021
idx= 3:  1030 1012 1011 1016  987 1045 1027  970 1035  984  959  924
idx= 4:   978 1013  975 1033  995 1016  960  988 1032  983 1017 1010
idx= 5:  1007  948  955  962  988 1001  987 1009 1042 1018 1065 1018
idx= 6:   990 1030 1035  992  947 1018 1029  959  979 1053  991  977
idx= 7:  1017  979  994  970 1001  992 1029 1066  997  958  961 1036
idx= 8:   992  988 1051 1023  936  996 1027 1049 1043  991  959  945
idx= 9:   982 1042 1003  981 1060 1041 1025  914  951  995 1001 1005
idx=10:   990 1024  997 1005 1025  962  987 1014 1011  973 1030  982
idx=11:  1028  980  978  985  995  977  951  985  974 1048 1086 1013


4x4,OK:     0    1    2    3    4    5    6    7    8    9   10   11   12   13   14   15

idx= 0:  1065  943  994  975 1002  991 1034 1050  991 1037  934 1044 1014  995  967  964
idx= 1:   998 1006 1000  949 1033 1010 1046  986 1029 1042 1041  963  986  999  930  982
idx= 2:   987 1030  985 1022  975 1003 1008  995 1007  983 1006 1038  989 1011 1008  953
idx= 3:  1013  984  994  972 1034  984 1017  997  935 1002 1049  988 1002 1040  992  997
idx= 4:  1018 1023 1022  980 1008  983  994 1023  984 1082  972 1008  942  953 1001 1007
idx= 5:   988 1031  966 1001 1025  967 1021 1056 1002  923  974  976 1011 1015  999 1045
idx= 6:   949 1017 1029 1005 1012 1023  996  993 1047  957 1042  958  988  978  992 1014
idx= 7:   964  986 1014 1015 1042 1064  971 1006 1016  982  953  956  974 1034 1042  981
idx= 8:  1036 1010  989 1015  986  990  962  988  960  985 1002  980 1044  999 1048 1006
idx= 9:   979  986 1006 1013  987  958 1020 1014  967 1001 1027 1040  972 1027  973 1030
idx=10:   965  991 1053  978  980 1016  979  969 1014  981  987 1053 1016  995 1038  985
idx=11:  1027  956 1008 1030  949 1015  976  938 1019 1004 1012  970 1027 1007 1048 1014
idx=12:  1003  965 1006 1041 1000 1020 1000 1016  945 1015 1005  977 1005 1009 1000  993
idx=13:  1030  977 1005 1025  994  941  977 1002  996  990  976 1065 1047  969  996 1010
idx=14:  1007 1052  974  969 1008 1043  979  996 1033 1042  978 1001  994  966  983  975
idx=15:   971 1043  955 1010  965  992 1020  971 1055  974 1042  983  989 1003  983 1044


5x4,OK:     0    1    2    3    4    5    6    7    8    9   10   11   12   13   14   15   16   17   18   19

idx= 0:  1018 1003  979  983 1057 1039 1016 1032  959  976 1014  936 1012  946 1020 1035 1021 1012  976  966
idx= 1:  1032 1022 1033 1015 1011  962  962  996  985  993 1015 1042  961 1008  941 1009  986 1026  965 1036
idx= 2:   962  919  988 1005  978 1056 1037 1028  990 1007  973 1020 1003  984  994  975 1022 1076 1003  980
idx= 3:   993  969 1014  991  994  997 1028  954  985  959  963  951 1035 1038 1009 1022 1068  967  992 1071
idx= 4:  1043  960  990  984  997  990 1016 1003  965 1000  964 1023 1031 1006 1038  981 1023  991 1012  983
idx= 5:   945 1037  958  993  991  977  948  966 1019  989 1013  989  987 1035 1045  985 1054 1050 1003 1016
idx= 6:  1006  969 1018  945 1015  966 1005 1001  987  994 1007 1022  974  976 1060 1081  978 1002  990 1004
idx= 7:   976 1057  961 1057 1017 1055 1017  914 1002  993 1010 1022  989 1007  960  997  981  995 1002  988
idx= 8:   990  999  995 1001  993 1023 1001 1000  998 1025  958 1000 1006 1047  950 1018  992  973 1021 1010
idx= 9:   995 1014  999  983 1006  968 1015  998 1014 1012 1011 1005  989 1009 1017  981  990 1002  982 1010
idx=10:  1023  969 1037 1009  985 1043  978 1011 1004  987  999  968 1053  984  974  985 1028  964 1049  950
idx=11:  1029  987  941  968  944 1009 1062  994  978 1032  976  960  986 1024  994 1024  999 1027 1073  993
idx=12:  1013 1045 1019 1044  986  974  944  989 1011  969 1031  984 1001  979  985  998  984 1009 1037  998
idx=13:  1015 1011 1017  984 1039  987  948 1009 1010  974  992 1096  989 1005 1029  959  983  992  963  998
idx=14:  1044 1034  994  998  984  906 1037  959 1014 1017 1048 1007 1005 1011  962 1035 1024  961  947 1013
idx=15:   984  941 1018  989  983 1031 1000 1045 1022  994  965 1002 1012 1017 1009  954  984 1026 1061  963
idx=16:   953 1013  982 1039 1009  990 1010 1049 1036  994 1049 1017  982  984  971  965  922  995 1000 1040
idx=17:  1023 1013 1015  962 1027  979 1022  989  991 1051 1033  988  986 1022 1030  986  943  946 1011  983
idx=18:  1010 1024 1021 1075 1020 1028  954 1032  993 1046  942 1002  970  963 1009  979  992  979  941 1020
idx=19:   946 1014 1021  975  964 1020 1000 1031 1037  988 1037  966 1029  955 1003 1031 1026 1007  972  978


6x4,OK:     0    1    2    3    4    5    6    7    8    9   10   11   12   13   14   15   16   17   18   19   20   21   22   23

idx= 0:  1029  999 1026  971 1033 1028  984  982  952 1002  991  974  987 1002  978 1032  996 1021 1036  978 1010  998  980 1011
idx= 1:  1027  954  975  940 1020  979 1000  973 1020 1070  991 1036  995  960 1028  978 1002 1001  994  992 1008 1014 1030 1013
idx= 2:   974  929  996 1052 1002 1067  962 1078  980  993 1033  958 1030 1031 1016  947  988  988 1000 1025 1000  965 1015  971
idx= 3:  1010 1020 1007 1042  926  949  985  970  988  966 1025 1031  962  991 1051  997  962 1009 1002 1060 1000  969  995 1083
idx= 4:  1054  989 1030  974  993 1003  983 1023 1043 1006 1031 1003  963 1018 1032  952  985  999  988  987  990 1014  990  950
idx= 5:   994 1067  967  983  986  991 1020 1006 1013  960 1021 1006  979  994 1040  987 1005  951 1038 1041  988 1018  971  974
idx= 6:  1057  991 1023  924 1002 1003 1004  951 1010 1027  983 1016 1047  967  992  986  969  969 1018 1042  999  978 1022 1020
idx= 7:   948  976 1001  987  975 1019 1037 1016 1020 1036  969 1038 1000  969  937  999 1020 1040 1011 1037 1033  985  951  996
idx= 8:  1041 1025 1035 1010 1024  969 1002  972 1005 1024 1020  983 1028 1036  980 1017  979  969  953  978  995  961  984 1010
idx= 9:   990  984  941 1017 1024  994  984 1049  968  983 1018 1026 1009 1037  975  999 1025  986  971  931  993 1004 1068 1024
idx=10:   974  979 1011 1004  981  995 1018  944 1022 1026  995  983 1013  966 1020 1043 1044  989 1004  985  993 1013  988 1010
idx=11:   965  977  983 1011 1015  997 1083 1071 1016  990  998  962 1065  993  973  934 1023 1003 1041  963 1024 1000  939  974
idx=12:   964 1011 1008  972  966  964  986 1009  971 1018  962  940 1026 1017  999 1066 1011 1049 1026  975  989 1051  983 1037
idx=13:  1051 1001 1017 1010 1040  990  995  951  950  945 1008  982  893 1019 1023 1047  985  998 1047 1055  953 1032 1008 1000
idx=14:   983 1001 1000 1035  972 1015  950 1017 1026 1042  977  980  994  954 1003  990 1027  992 1006  976 1020 1038 1009  993
idx=15:  1008 1030  988  961 1040 1007  967 1009  960  991 1020 1055  995  988  940 1004 1070 1003  968  993  977 1002 1000 1024
idx=16:   991 1038 1002  994  977  977 1036  934 1004 1009 1001  996 1023  992 1012 1031  972 1006  974  987 1042 1002 1009  991
idx=17:  1014 1003  995 1068  971  994 1018 1056 1027  990  941 1021 1003  961  971  965 1004 1009 1018 1035  971  991 1019  955
idx=18:   992  994  979  995  973  972 1051 1005 1040 1042 1003 1016 1016 1038  961  991  963  996  946  961 1074 1013 1001  978
idx=19:   971  981 1010 1035 1019 1026 1010  956 1022 1026  966  960  995 1026 1017 1009 1043  980 1014  992  999  977  995  971
idx=20:   986 1019  978  998  990 1040 1021 1042  970  956  981  994 1030 1022  964 1030 1020 1011  927 1005 1004 1018 1003  991
idx=21:  1009 1047 1030 1045 1028  961 1010  962  967  932 1072 1036  982 1034 1022 1040  934  999 1012  978  983  942  990  985
idx=22:   979 1003  998  989 1038 1048  943 1019 1049  980  979 1009  968 1003 1034  978  945 1019 1002  980  970  986 1057 1024
idx=23:   989  982 1000  983 1005 1012  951 1005  977  986 1015  995  997  982 1032  978 1028 1013 1004 1044  985 1029  993 1015


2x5,OK:     0    1    2    3    4    5    6    7    8    9

idx= 0:   954  979  999  987 1034 1018 1000 1037 1022  970
idx= 1:  1065 1069 1012  957  949  966  949  986 1002 1045
idx= 2:   974 1063 1022 1005  981  974 1034 1013  966  968
idx= 3:   989  983 1019 1028  996 1017  967  993  988 1020
idx= 4:  1039 1029 1015  998  976  986  954 1009  968 1026
idx= 5:   993  939 1029  960  996  982 1033 1040 1062  966
idx= 6:  1028  960 1006 1039 1009  989 1008  962 1010  989
idx= 7:   983 1002  991 1020  998 1029 1001  968  999 1009
idx= 8:   981 1004  967 1006 1044 1041 1004  981  968 1004
idx= 9:   994  972  940 1000 1017  998 1050 1011 1015 1003


3x5,OK:     0    1    2    3    4    5    6    7    8    9   10   11   12   13   14

idx= 0:  1001 1037  984 1000  967  939  997 1011 1028 1016  950 1012 1008 1031 1019
idx= 1:  1015  944  991 1044  996 1003 1002 1028  985  982  989  969 1008 1019 1025
idx= 2:   930  959 1048  976  954 1048 1043 1008 1016  993 1011 1021 1010 1022  961
idx= 3:   982  993 1001 1026  950 1010 1017  938  988 1013 1035 1016 1033  992 1006
idx= 4:   993 1001 1036 1003  970  948  993 1054  992  950  954 1014 1019 1040 1033
idx= 5:   992 1054  994 1001 1036  967 1010  964 1027  990 1032  960  969 1013  991
idx= 6:  1028  941 1011  993 1018 1001  978  976 1011  993 1006 1044  997  959 1044
idx= 7:  1043  986  979 1000  974  967  997 1035  991 1041 1005  991  944 1005 1042
idx= 8:  1021 1026  977 1031 1084 1002 1018  943  986 1025  929  994 1004  983  977
idx= 9:   964 1060  973 1009 1004 1007  998 1045  971 1051 1007  972  977  980  982
idx=10:  1039  957  992  983 1023  976  962 1020 1023 1004 1031  973 1024 1005  988
idx=11:  1003  993 1024  991 1033 1082  961  999  962 1008 1030 1018  997  968  931
idx=12:   984 1041 1035  977 1031 1051  974  976  997  958  968 1029 1007  984  988
idx=13:   984  974  939  977  976 1001 1064  989 1027  975 1032  994 1012 1003 1053
idx=14:  1021 1034 1016  989  984  998  986 1014  996 1001 1021  993  991  996  960


4x5,OK:     0    1    2    3    4    5    6    7    8    9   10   11   12   13   14   15   16   17   18   19

idx= 0:  1017 1002 1013 1047 1011 1029  975 1001 1031  953  984  976 1048  961 1003 1002  971 1002  994  980
idx= 1:   998 1018 1076 1021 1011 1014  972 1026  996 1003  984  976 1009  932  962 1004 1041  972 1012  973
idx= 2:  1035  992 1000 1057  976  953 1028 1020  966  963  964  991  996 1032 1035 1013  936 1021 1001 1021
idx= 3:  1007 1009 1005 1031  965  981  924 1023 1038 1023 1003 1002 1046  991  967  979 1013 1020  980  993
idx= 4:   992 1005  957  967  992 1078  980  979 1028 1065  995 1025 1018  984 1017  971  992  981  990  984
idx= 5:   959  975  983 1005 1017 1022  975 1013 1016 1034  999 1012 1027 1000 1033 1026  965  997  972  970
idx= 6:   980 1064  946  938 1003 1040  994 1033  947  979 1024 1064  918 1057 1013  964 1038 1023  951 1024
idx= 7:   965 1038 1050  962 1042 1031 1002 1008 1014 1002 1032  954  982  981 1006  999 1005  890 1016 1021
idx= 8:  1050  990  946  979  989 1006 1075 1042 1039  936 1007 1006  953  925  955 1035  997 1036 1016 1018
idx= 9:  1009 1007  986 1043 1014  977 1003  967 1025  951  969  995  995  991 1014  973 1005 1065 1026  985
idx=10:  1043  999 1002  994  986 1010  964  987 1007  991 1008 1001 1015  986 1002 1011  968 1018 1020  988
idx=11:   970 1002  981 1014 1003  961 1041 1006  991 1007  981  993  979 1030  949  975 1004 1036 1021 1056
idx=12:  1046 1025 1034  994 1049  972  984  978  979 1051 1018  970  961  961 1001  974 1046  969 1043  945
idx=13:   952  998 1052 1021  993  996 1009  997  986  999  970 1010  953  990 1036 1009 1008  986  991 1044
idx=14:   978  997  956  978  983 1036 1032  956 1008  998 1014  998  987 1014  979 1068 1028 1016  989  985
idx=15:   971 1018 1008  999  968  979 1001  994  971 1029 1019 1034 1066  992  952  990  992  989 1016 1012
idx=16:  1051 1012  939 1018  978  972 1006 1026  961 1007  970  979 1000 1000 1019 1021  976 1010  995 1060
idx=17:  1016  926 1023  980  980  949 1027  994  991 1037 1021 1010  995 1065  994  961 1036 1028  971  996
idx=18:   986  969 1017  944 1021 1003  982  963 1000  957 1044 1004 1040 1074 1037 1017  978  986 1024  954
idx=19:   975  954 1026 1008 1019  991 1026  987 1006 1015  994 1000 1012 1034 1026 1008 1001  955  972  991


5x5,OK:     0    1    2    3    4    5    6    7    8    9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24

idx= 0:   975  975 1001 1059 1017 1013  995 1012 1042  974  978 1069  915  999  955  975  979  979 1049 1009  967  981 1034 1014 1034
idx= 1:   980  970  978 1008 1031  976 1055  975  978 1025 1013 1038  969 1013  987  982  999 1079  970 1023 1003  982  952 1029  985
idx= 2:   956  976 1016 1014  974  999  979  995  947 1032 1024 1048 1029  974  987  964 1023  964  960 1008 1032 1002 1076 1004 1017
idx= 3:  1029 1012  981 1005 1042  969  989 1013  970  992  931 1028  984 1002 1003 1033 1036 1058  986 1049  981 1006 1005  948  948
idx= 4:  1029  957 1024  957 1012  974 1009 1021 1019 1032  954  933 1005 1014 1003  984 1003  986  979  990 1034 1019 1002 1010 1050
idx= 5:   973  997  964  991 1048 1046 1019 1037  952  954 1043  978 1027 1047 1000  976 1007 1026 1018 1037  941  977  992  977  973
idx= 6:   997  982  967  979  964  984  971 1014 1010 1022  990 1006  999 1002 1074 1071 1039  936  990 1027 1016  973 1016  995  976
idx= 7:  1032 1022  953  952 1008  993 1013  991 1006  967 1038 1001 1033  986 1041  987 1015 1006  967  973 1001 1007  993 1028  987
idx= 8:   986 1026 1001  997  974 1025  973  977  961 1047 1047 1007  987  935 1057 1038 1017  968  995 1007 1021 1008  981  969  996
idx= 9:  1047 1001  954 1038  961 1032 1032 1023 1010 1014  966  974  999  978 1037  952 1009  982 1038 1002  975 1024  955 1012  985
idx=10:   976 1040 1006 1034  955 1030 1018 1025  996 1051  990 1014  969  977 1019 1002  993 1047  959  972  946  990 1002  952 1037
idx=11:   971  974 1032  970 1012  965 1040  999 1029  969  991  992  992 1004  991 1054 1030  972  938  995 1043  965  992 1066 1014
idx=12:  1019 1014 1027 1000 1021  921  977  976 1037  942 1030  991 1026 1003  993 1025  980  983 1001 1026 1013 1005  961  962 1067
idx=13:  1025 1012  985  996  968 1028 1026  955  965 1002 1008  942 1013 1017  958  970 1021 1061 1008 1018  997 1025  969 1052  979
idx=14:  1001 1015  990 1038  990  992 1003  946 1020  970  962  991  995  988 1027 1045  987  973  976  976 1042  989 1062 1043  979
idx=15:   979 1039 1022 1034 1018 1052  933  993 1026 1025 1017 1002 1017  988  963  962  948  995  994 1014  975 1050 1008  998  948
idx=16:  1018  982  994 1059  975  991  944  966  998 1004 1011  983 1057 1009 1000 1007 1002  981  995  989 1008 1004 1017 1027  979
idx=17:  1046 1027 1030  975 1035  998 1020  994  991  994  973  947 1041  997 1027  960 1001  981  995  964  986  966  989 1016 1047
idx=18:   932 1014 1033 1045 1029  978  988 1027  995  982  980 1015 1010  985  993  999  954 1048 1006  923 1024 1011 1021 1020  988
idx=19:   971  990 1006  979 1069 1021  980  999 1013 1028  981  980  931 1023  959  982  950  971 1038 1051 1087  986  960 1015 1030
idx=20:  1012 1028 1019  983  947 1033  952 1041  991  956 1050 1054  960 1007  988 1042  968 1017 1032  985 1003  961 1026  982  963
idx=21:   969 1014  971  992  957 1029 1054 1023  988 1013  942 1048 1052 1004  993  959 1009 1038 1014  987  961 1027  952 1035  969
idx=22:  1048  962  976  975 1012 1015  988 1045 1012 1042 1008  980  966  981  968 1011  994 1010 1051  971  985 1011 1016  942 1031
idx=23:  1009 1005 1058  927  977  982  995  966 1048  979 1010 1001  984 1054 1009 1007  970  997  992 1012  992 1030 1018  955 1023
idx=24:  1020  966 1012  993 1004  954 1047  987  996  984 1063  978 1040 1013  968 1013 1066  942 1049  992  967 1001 1001  949  995


6x5,OK:     0    1    2    3    4    5    6    7    8    9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29

idx= 0:   947  949  997 1015 1033 1001  973 1030 1002  994 1072 1042 1025  975  966  996 1039 1093  976  980 1003 1006 1014 1006  939  993 1016  951  992  975
idx= 1:  1018 1008 1022  972 1009 1009  996  999  980  984  937 1001  977 1029  965 1038  979  976  999 1001 1011  969 1037  987 1017 1026  987  983 1020 1064
idx= 2:   958  967 1007  938  998  967 1019 1020  984  954 1004 1031  992  988 1013 1001  990 1018  974  973 1001  992 1061 1073 1019 1052  971 1002 1037  996
idx= 3:  1003 1017 1027  970  968  992  998 1013  995  996  936 1031  986  957  953 1012  983  932 1045 1012 1007 1021  971 1011  999 1046 1041  997 1027 1054
idx= 4:  1012 1019 1002  938 1004  973  954 1021 1005 1008 1007  998 1027 1039  981  935  952  982 1014 1021  996  973 1006 1053 1026 1000  951 1017 1071 1015
idx= 5:   991  963  959 1000 1043 1041  996  994  987 1042 1060  966  945 1005 1021  985  983  981  987  999  979 1003 1023 1002 1016  972  990 1077  991  999
idx= 6:   954  967  972 1013 1032  984 1005 1057  999  989 1023  953 1036 1008 1106  993  976  958 1015 1006  992 1035 1067  982 1004  964  985  957 1018  950
idx= 7:   958 1015  959 1015 1051 1054 1012  966  970  968 1066  987  994 1001 1023  996 1042  995 1040  999  952  943  984 1011  989 1020 1021  960  981 1028
idx= 8:   949 1068 1022 1008  944 1014 1023 1004 1021 1018 1016  992 1025  979  969 1004  960  974  990 1031 1046  968  976 1007 1008 1016  992  954  970 1052
idx= 9:   972 1052 1044  989  965 1025 1024 1038  950  992 1047 1017 1007 1075  989 1013 1023 1013  954  969 1006 1024  986  997  989  974  998  973  977  918
idx=10:  1015  963  974  979 1017 1024 1021  946 1015 1041  990 1001  964 1022 1021 1032 1021  999 1048 1050  973  941 1023 1022  976  973 1051  967  940  991
idx=11:   964  968 1030  977  985 1052 1045  987 1023  972  989  984 1021 1028 1007 1004 1003  982 1010  975 1037 1043  989 1004  974  972  986 1013  962 1014
idx=12:   993  992  998 1024 1003  975  984 1044  985 1013  961 1031 1015  952  974 1051  962 1003 1008 1005 1026  998 1016  991 1002  994  976  980 1042 1002
idx=13:   977  975 1052  985 1032 1067 1059  967  929 1050  988  968  970  988 1059 1032 1024  977  985  976  989  980 1060  942 1018  990 1011  988  983  979
idx=14:   987 1016 1029 1041 1033  946  963 1036  992 1046  988 1021  931  968 1011  979  989 1007  988  979 1002 1003  979  979 1000 1042 1007 1029  953 1056
idx=15:  1053  952 1010 1031  994  989  992  993 1032  974 1023  961 1045 1030  966  961 1045 1028 1009  985  915 1023  999  999  966 1023  959 1022 1030  991
idx=16:   975  997  951 1018 1018 1006  999  992  985  968  980 1005  930  974 1083  982  973 1022 1006 1000 1016 1043  954 1022  995  966 1002 1053 1022 1063
idx=17:  1026 1018 1015 1031  988 1003  979  917 1021  964  996  985  986  998 1026 1030 1010  986 1067  967  993  994 1014  984 1006 1005 1023  993  943 1032
idx=18:  1053 1029 1000 1029 1001  967  984  994 1001  963  997  991 1061 1017 1019  981 1021  960 1022  977  964  993  956  992 1016 1040 1029  999 1026  918
idx=19:  1003 1009  954 1004  999 1003 1044  989 1053 1044  945 1029 1055  972 1004  938 1011  983  969  994 1041 1041 1003  985 1005  982  988  951 1013  989
idx=20:  1056  994  984 1032  949  986 1024 1011 1015  985 1033 1034 1014 1063  981  985 1039 1032  966 1025  977  999  950  933  938  987 1013  986 1032  977
idx=21:  1051 1019  980 1043 1034  998 1025  978 1016  978 1016  977 1051  966  935  968 1035  981  985  969  957  944 1031 1014 1022 1006 1006  966 1023 1026
idx=22:  1040 1025  994  998 1004  984  991 1027 1038  988  959  983  980 1034  984 1011  974 1008  978 1062  991 1025  982  993 1002 1022  999 1010  960  954
idx=23:   956  986 1017  961 1006  998  938  981 1032 1003  954  989 1047 1007  973 1041  964  969  999 1042 1067 1006 1005  927 1110  968  999 1059 1000  996
idx=24:  1009 1005 1021  974  993 1021  992  994  994 1001 1052  999 1017  965  994  983  998  979  955 1053 1023 1009  977 1025  952  979  989 1046  987 1014
idx=25:  1027 1018 1010 1009 1008 1007 1021  978 1047 1031 1050  919  959  960  986 1014 1021  956 1042 1017 1020 1036  943  986  969  999  956 1046  988  977
idx=26:  1029  973  994  988  993 1022  987 1034  972  984  984 1086  946  992 1004  958 1031 1050  976  972  979  959 1006 1058 1026  989 1036  988  990  994
idx=27:   965 1011  968 1028  999  978  968  977  983 1000  949 1019 1029  986 1017 1033  977 1049  969 1032 1029  973  992 1006  975 1031  984 1022 1050 1001
idx=28:  1053 1022 1000  987  962  960  967 1001  994  984  996  988 1001  965 1007 1073  967  987 1039  892 1008 1034 1015 1026 1015 1016 1027  993  986 1035
idx=29:  1006 1003 1008 1003  935  954 1017 1012  980 1066  982 1012  964 1057  963  971 1008 1120  985 1037 1000 1022  981  983 1027  953 1007 1018  986  940


2x6,OK:     0    1    2    3    4    5    6    7    8    9   10   11

idx= 0:  1031 1020 1035 1003 1057  972  946 1060  981  948  955  992
idx= 1:  1026  987 1026 1011  988  993 1061  962 1037  969 1005  935
idx= 2:   968 1009  943  984  991 1019 1039 1026  988 1018  989 1026
idx= 3:  1010  999  980  962  996 1032 1003  983  979 1069  977 1010
idx= 4:  1026  999  984 1041 1035 1015  960  947 1015 1031  993  954
idx= 5:  1001  975  991 1020  995 1056 1007  995  967  946 1034 1013
idx= 6:  1056 1046 1013  990 1019  957  986  978  952 1057  964  982
idx= 7:   983  981  995  976 1029  996 1015 1032 1005  994 1006  988
idx= 8:   929 1036 1030 1013  986  997 1003 1008 1019  946  986 1047
idx= 9:  1003 1012  974 1006  937  987 1025 1010 1005 1016 1012 1013
idx=10:  1039  937 1046  961  967  961  981  990 1037  997 1030 1054
idx=11:   928  999  983 1033 1000 1015  974 1009 1015 1009 1049  986


3x6,OK:     0    1    2    3    4    5    6    7    8    9   10   11   12   13   14   15   16   17

idx= 0:  1054 1000  998 1029  951  970 1026  997  981 1068 1026  988  994 1070  976  957  975  940
idx= 1:   936 1034  938 1026 1058  987 1016 1069 1002  995  994  929 1024  985  982  959 1053 1013
idx= 2:   941 1006  993 1055  967 1029  973  983 1011  967 1027  911 1021 1052  955 1059  995 1055
idx= 3:   984  975  974 1001 1025 1077  968  952 1036 1031 1034 1004  951  961 1054 1009  945 1019
idx= 4:  1022  983  987  989  962 1034 1008  981  947  996  997  979 1068 1004  981 1039 1013 1010
idx= 5:   979 1007  996  952  981  986 1028 1023 1010  997 1000 1014  983  974 1018 1020  992 1040
idx= 6:   939  967 1027 1021 1069 1009  992  998 1015 1023  950 1046 1031  979  955 1018  977  984
idx= 7:   971  992 1063 1025 1037 1046  931  991 1021  961  967  998  996  976  982 1046  978 1019
idx= 8:  1000 1001  995 1001 1045 1004  992 1010 1023 1051  978 1014  926  963 1041  965 1022  969
idx= 9:  1029 1009  993 1005 1006  970 1038  979  936 1017  953 1022 1029 1028 1031  958 1000  997
idx=10:  1055  980 1023  953  999 1013  983 1057  994 1049 1040  981  962 1027  949 1007  992  936
idx=11:   965  978 1037 1015 1041  963 1061  947  966  961 1007 1020  956 1023 1027  991 1028 1014
idx=12:  1001 1012 1014  947  982  997  996  978 1026  969 1034 1030 1032  988  962 1026 1017  989
idx=13:   995 1056  997 1007  969 1013  960 1006  972 1027 1029 1048  979  979  987  993  976 1007
idx=14:   988 1034 1002 1005  973  923 1058  996 1001  922 1005  986 1032 1008 1036  990 1017 1024
idx=15:  1043  977  962  954  999  996  992  988 1028  968  995  985 1034  963 1018  975 1082 1041
idx=16:  1069  958 1037  998  989  954  994 1030 1026 1009  979  998  979 1040 1002 1002  992  944
idx=17:  1029 1031  964 1017  947 1029  984 1015 1005  989  985 1047 1003  980 1044  986  946  999


4x6,OK:     0    1    2    3    4    5    6    7    8    9   10   11   12   13   14   15   16   17   18   19   20   21   22   23

idx= 0:  1025 1014 1030 1016  968  965  940 1073  977 1016 1003  960  969 1041 1017 1006 1004  990 1031  947  991 1021  995 1001
idx= 1:   979  987  991 1061 1003  995 1045  951  979 1048 1007 1036 1008  968  984  988 1043  992 1017 1004  933 1020 1026  935
idx= 2:   987 1049  982 1012  998  981 1039  948  990 1021 1033 1012  952 1007 1071 1003 1006  959  976 1003  970 1026  981  994
idx= 3:  1003  960  957  958  954 1031 1038 1043  953 1006  985 1011 1058  997  955 1046 1004  938 1042 1034 1110  988  905 1024
idx= 4:   997 1026  935 1026 1094 1015  974 1043  944  995 1061  930  999 1061  983  990  963 1040  980 1001  968  999  976 1000
idx= 5:   983  985 1021  998 1023 1068 1002  987 1041  997  973  949 1025  959  936 1012  967  975  998 1062 1047  986  990 1016
idx= 6:   982 1019  993  913 1016  964  985 1015 1073  988 1035  980  960 1018 1026  948  991 1037  957 1002 1011 1000 1030 1057
idx= 7:   994  986  962 1006 1040 1000 1038  989 1005 1010  994  998 1048  992  997  971 1046  984  991 1018  958  998 1028  947
idx= 8:   936  998 1029  996 1032 1070  961  985  992  989 1014 1002 1051 1006 1025  983  941  989  991 1025 1014  967  974 1030
idx= 9:  1059  959 1000  993  951 1002 1031 1034  933  996  997 1030  944  982  970 1030  954 1039 1073 1023  990 1002  982 1026
idx=10:  1036  985  993 1004 1000 1025 1015 1013 1042  938  976 1002  969  955 1019  976 1005  972 1022  992 1000  993 1031 1037
idx=11:  1051  954 1060 1034 1023  976  989  978  959  975 1011 1000  974  977 1029 1001 1026 1008  978 1034  973  955 1048  987
idx=12:  1036  951  980  990  919  961 1060  954 1035 1001  971 1009 1023 1016 1002 1008  990 1039 1009 1017  997 1021 1015  996
idx=13:   986 1015 1045 1015  943 1027  989 1047  948 1007  956 1003 1004 1045 1021 1037  980  997  980  943  973  990  992 1057
idx=14:   969 1053 1002 1007  970 1004  931  986 1064 1030  997 1007 1010  984  995 1027 1011  959 1026  981 1041  932  998 1016
idx=15:   998 1007  979 1011  985  997 1008 1020  990  968  998 1026 1036  993  971 1011  989 1025  965  997 1036 1015  972 1003
idx=16:   970  967  972  977 1048  953  992  967  977  952 1010 1073 1018  994 1042 1021 1011 1005 1062 1049  962 1000 1012  966
idx=17:   950  995 1023 1027 1046  986 1053  972  993 1043  947 1040  949 1030 1008  959 1002 1043  951  996  966 1077  992  952
idx=18:  1047 1028 1041 1038  987 1070 1008  952 1015  997 1013 1012  978 1016  962  993 1003 1011  961  917  984 1020 1000  947
idx=19:   953  987 1011  993  951 1014  968 1003  999  974 1009  964 1075 1058  985  998 1045  968 1011 1032  999  970 1029 1004
idx=20:  1021 1005 1012  994  974  973  984 1002 1045  966 1012  981 1031  925 1018  934 1007 1062  998 1033  976 1003 1005 1039
idx=21:  1047 1023 1021  946 1024  940  981 1022  968 1037  992  989  994 1021  994 1054 1009  992  981  970 1051 1009  991  944
idx=22:   998 1027  956  987 1008 1002  984  995 1050 1030 1009  973  976  973  964 1017 1014 1001 1019  928 1054  996 1018 1021
idx=23:   993 1020 1005  998 1043  981  985 1021 1028 1016  997 1013  949  982 1026  987  989  975  981  992  996 1012 1010 1001


5x6,OK:     0    1    2    3    4    5    6    7    8    9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29

idx= 0:  1037 1012 1043  941 1031  974 1001 1018  964 1017  972  956 1031  992  974 1004 1022 1005  969  974  977  927 1041 1000 1018 1045 1011 1063  984  997
idx= 1:   941 1051 1016  998  990  969 1002  991 1055  972 1069 1018 1002  969 1039 1032  967  985  966  970 1051  970  967 1010 1038  980  968  975 1005 1034
idx= 2:   943  986 1020 1009 1041 1069 1035  987  997  979  985  970  997 1007  966  972  999 1052 1054 1045  972 1001 1021 1027 1013  939 1004  981  992  937
idx= 3:   992  995  985  975 1035 1061  984 1022 1009 1032 1011 1049  995  977  982 1050  967 1013 1020  970  963  917  984 1038  987  964  970 1015 1009 1029
idx= 4:   992 1005 1003  971 1062 1006  994 1004 1079 1048 1049 1026  979 1042  998  942  951 1016  976 1047  950  979 1007  957  992 1010  989 1001  939  986
idx= 5:   983  983 1000 1034  997 1018  975  972  999  966  863  952  992 1081 1008 1020 1010 1027 1009 1041  997 1035  983  961 1016 1008 1012 1012  961 1085
idx= 6:  1010  985  972 1035  987  979  959  965 1008 1029 1037 1027 1013  990 1039 1030  929  982  976  986  998  956 1016 1013  959 1038  992 1026 1025 1039
idx= 7:  1039 1011 1026 1050  990  978  987 1051 1010 1007  967  959 1027 1005  994 1004 1014 1005 1027  953 1007  957 1013 1014  994  994 1007  972 1002  936
idx= 8:   983  963  984 1019 1012 1004 1021  965 1000 1070 1008  965 1063  975 1034  996 1038  944  993  939 1065  991  997 1039 1019  986  989  953 1001  984
idx= 9:  1007 1069 1006  991 1018 1016  882 1038  980  938 1055 1024  981 1026 1003  979 1010 1011  988  976  999 1009 1013  989 1027  965 1018  998  948 1036
idx=10:  1011  972  978 1054  965 1015 1008 1027  997  984 1000 1027 1018 1019  973 1003 1029 1007  976 1015 1033 1040  964  936  963 1016  989  969 1045  967
idx=11:  1033  970 1018 1008  967  975 1031 1032 1031  972  961 1013 1040 1027  967 1006  962 1013  982  984  987 1008  938  981 1021 1019 1047  984 1027  996
idx=12:  1042 1006  918  997  994 1012  994  966 1069 1026  932  962 1001 1026 1025  961 1023  991 1062 1018  944 1022  977  979  990  972 1039 1030  974 1048
idx=13:  1037  996 1040 1022 1030 1001  976  981  999  990  940 1060 1019  998 1006  986  992 1044  993  968 1003 1025  974  993 1010  996  991  940 1006  984
idx=14:   985 1006  968 1014  981 1004 1011 1034  924  973  985  979  975 1090  922 1027 1053  999 1016 1023  961  970 1010 1024 1019 1029  987 1050  992  989
idx=15:   977  979  987  984  992 1006 1009  982 1027  952 1027 1029 1017  949  990  978  962  952 1045 1008 1021 1037 1000 1043  956 1004 1003 1034  974 1076
idx=16:   984  942 1015 1024  976  992  946 1072  936  996 1037  969  963  957 1016 1014  968 1052 1008 1069 1030  984  983 1038 1024  981 1016  967 1029 1012
idx=17:  1019  988  981  992 1014 1040 1007  951 1008  994 1013 1007 1014 1080  997 1001 1001  970 1025  974  987  962 1013  953 1002  996 1038  985  998  990
idx=18:  1004 1015  989  992  980 1026 1014 1012  988 1007  999 1056 1008 1032 1063  974  972  908 1018  996  999 1007 1067  947  986 1055  928 1013  971  974
idx=19:   955  968  992  983  989  997 1040  999  982  984 1072 1014 1035  949 1010  953 1009 1013  984 1033  971 1029 1002  999  969 1027 1038 1004 1052  948
idx=20:  1029 1015 1005  969  981  964 1044  989 1030 1054  990  958  948  969  985 1005  984 1019  999 1017 1051 1000 1027 1033  950 1013  983 1003  999  987
idx=21:   983 1019 1022  987 1020  974 1098 1009 1014  998 1016  967  974  954 1022 1011 1039  961 1016  983 1013 1020  960 1027  963  958  957 1056 1027  952
idx=22:   994  984 1037  989 1020  999  976  968  994  987  965  971 1013 1004  993  993 1002 1008 1011 1005  942 1033 1016  989 1026 1031 1028 1056 1007  959
idx=23:  1008  983 1061  963  983  986  963 1001 1007 1020 1029 1008  946  927 1064  995 1010 1014  978 1009 1007  983 1037  987  982 1046 1011  999 1011  982
idx=24:   953 1045  964 1020  988  980  975 1000  944  974 1051 1003 1028  987  998 1050 1003 1012 1029 1002 1030 1096 1006  995  988  975  968  956 1027  953
idx=25:  1022  979  996 1035  978  983 1061  976 1000 1005 1040  992 1036  994  930  990 1040  971  964 1014 1032 1000  998  964  971 1055  991  982  979 1022
idx=26:   996 1029  989  993  989  956  973 1036  985  990  955 1007  969 1002 1022 1019  989  974  991 1019 1022 1011  983 1019 1067  956 1027  983 1023 1026
idx=27:  1032 1038  941  972  988 1012  998  951 1012 1075 1024 1033  924  997 1071 1023  973  948  997  999  972 1016 1001  999 1031  929 1055 1001  992  996
idx=28:  1008  944 1026 1007 1005 1029 1029  979  977  979  994 1008  995 1003 1009  956 1050 1070  992  914  998 1008  988 1010  995  968  984 1037  981 1057
idx=29:  1001 1062 1018  972  997  975 1007 1022  975  982  954  991  997  972  900 1026 1032 1034  936 1049 1018 1007 1014 1036 1024 1045  960  955 1020 1019


6x6,OK:     0    1    2    3    4    5    6    7    8    9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35

idx= 0:   973 1017 1008 1026  993 1047 1075  960  981 1012  983 1040  994  979 1005  960  996 1000  971 1040  964 1011 1006 1060 1012 1013  967  946  949  945  994 1090  986 1019  974 1004
idx= 1:   997  979  966 1078 1003  958  996  962 1020 1028 1066  989  944 1027 1044 1027 1017  956 1022 1027  996  955  954  992  976 1036  967  997 1015 1016 1002 1046 1039  978  961  964
idx= 2:  1023 1021  996  968  989  985 1004 1022 1024 1013  967  981  985  901  983 1015  987  995 1017 1013  948 1009  985  981 1015  984 1042 1074 1072 1007 1030  973 1019  976 1007  989
idx= 3:  1010  942  994  966  981  996 1005 1057 1002  996  935  961  993  960 1027 1020 1007 1026 1037 1043 1021 1004  971  973  986 1016 1004  989  982 1046  987 1063  985  984 1049  982
idx= 4:   992  988 1008 1008 1007 1015  958 1012  964  955 1007 1026 1067  949  998  969 1017  998 1010  987 1035 1005  989 1047 1060 1015  997  956  984  956 1002  992  957 1023 1062  985
idx= 5:  1022 1027  993 1033  980 1001  941 1011  994  965  983 1015  968 1019  984  990  976 1013  996 1006 1021 1047 1034  977 1001  995  966 1018 1060  989  955  986  984 1038  984 1028
idx= 6:   989  974  983 1011 1008 1036  987  975  918 1057 1028 1040  967 1005 1061 1005 1030  981 1035  952 1019 1023  972  980  977  996 1044 1020  969  943  998 1020 1017  995  991  994
idx= 7:  1006 1020  975  958 1014 1012  950  977 1018 1011  960  983  980 1027 1018  949  996 1046 1056  954 1003 1029  956 1032 1037  971 1004 1019  959 1042 1074  960 1034  938 1009 1023
idx= 8:   954  977 1048 1047 1025  983  986  957 1052 1021  988  976 1007  983  956  964 1032 1018 1039  941  991  961  973 1022  982 1017  985  956 1055 1015  964 1040 1024 1047 1029  985
idx= 9:   985 1059  953  952 1017 1014  982  986 1051  996  993 1021  983 1022 1011  985  992  988 1025  940  996 1018 1004  970  968 1014 1003  996 1028 1023  994  990 1007  981 1058  995
idx=10:  1018 1015 1027 1010  941  993  989 1030 1003  995  935 1018 1081  977  983  962 1023 1036  909  994 1054 1008  984 1009 1033 1012 1030 1038  956  972  987 1081 1009  967  953  968
idx=11:  1012  936 1053  963  987  981  992 1045  958  966 1007 1067  988 1020  957 1036  989  935 1040  969 1017  968 1036 1035 1022 1026  967 1000  993  956 1028  974  989 1029 1022 1037
idx=12:  1055  941  956 1011 1048  996  991 1067 1000  971 1058  961 1006  969 1042  974 1000 1011  971  986  992  961  970  970 1029 1052  974  960 1031 1005  979  972 1032  992 1034 1033
idx=13:  1002 1009 1005  991 1028 1033  980  980  994  988  954 1016 1037 1005  970  972  955 1020 1006 1028 1042 1000  971 1005  985 1034 1024  978 1013 1006  998 1016  933 1038 1004  980
idx=14:  1013 1019  987  973 1001  981 1032  959  996  991  994  982  971  942 1044 1023 1026  968  987 1022 1044 1027 1019 1033 1048  949 1007  995  964  986  929 1040  997 1013  989 1049
idx=15:  1032 1000 1000 1015 1030 1007  995  967 1027 1055  970  975 1011  987  978  968 1020 1045 1028 1039 1002 1006  980 1002  970 1011  960 1013  972  991 1005  983 1002  977 1001  976
idx=16:   943  957 1003  962  970  988  991  992 1039  978 1016 1041  963  986  950  968 1002 1091 1053 1008  994 1006 1028 1038  993 1038 1025  967 1040 1004 1027 1041 1020 1005  936  937
idx=17:  1016 1012 1001 1012  986 1032  999  975 1005 1015 1039 1015 1024 1067 1001  989 1008  982  941 1014  933  979 1013 1029  940  994  976 1012  975 1065  979  991  991  991 1018  981
idx=18:   996 1006  988 1025 1005  994  992 1015 1062 1013  948  939 1046 1037  980  953 1010 1032  956 1013 1036  951 1009 1009  967 1010  998 1033 1003 1024  981 1000  992  973  997 1007
idx=19:  1007  957 1029  992 1022 1062  983 1001  961 1011 1019  979 1028 1044  995 1009  990 1009  997  998 1010 1003 1021  987 1006  983  976  976 1059 1006  993  969  954  962  992 1010
idx=20:  1023  989 1008 1037  978 1009 1004  936  993  937  977 1017  990 1044 1024 1048  996  985 1064  965 1009  977 1028 1059  973  972  981 1021  969 1060 1019  958  971 1015  935 1029
idx=21:   989 1019  978 1035 1035 1018 1066  992 1039  935  972  986  968  987  972 1029  990  974  996 1008  980  994  994 1042  948 1015  986  985 1001  974 1089  976  984  975 1007 1062
idx=22:   991 1014 1033  962 1031  997  975  993  939 1034 1038 1017  964  998  984  999 1000 1005  983  989  991 1010 1021 1049 1056  998  988  986  940 1052  994  967  958 1070  972 1002
idx=23:   991  967  987  998  990  990 1003 1058 1021  959 1004  961 1015 1023  959  996 1014  944  949 1050 1004 1060 1056  992 1061  987 1003  962 1013 1039  931  994  984 1025 1020  990
idx=24:  1043 1028  971  997  976 1006  963 1037  995  993 1038  989  925 1001 1012 1000  996 1012  979 1003  990  968 1011 1004 1018  981  996  981  952  995 1031  989 1067 1050 1010  993
idx=25:   962  978  987 1073 1068  986 1024  949  981  980  984 1008 1031  993  969 1048  981  984 1023 1006  956  975 1024  961  965 1020  998  968 1070 1033 1080  939  965 1040  978 1013
idx=26:  1015 1026 1019 1022  993 1008  977 1001 1017 1014  994 1034  980  998  969 1046  990  955 1023 1027  939 1022 1014  948  979 1002  949 1032 1044 1018 1018  975  981  990  969 1012
idx=27:   959  969 1055  969  971  984  955  966  963 1030 1046  967 1010 1043 1088 1055  975 1020 1021  937 1019 1019  973  966 1044  974 1045 1037  981 1023 1006 1030  986  956  957 1001
idx=28:  1004 1029 1015 1004 1039 1017 1053 1000  989  958  981  942 1007  966 1031 1029 1021  961  988  977 1005 1039 1059  987  982 1003  978 1003 1014  970 1009  954  972 1013 1056  945
idx=29:   987 1013 1013 1007  977 1020 1021 1048 1022 1031  991 1000 1048 1045  977 1039  966 1019 1010 1019 1025  943  990  995  978  963 1042  945 1014  995 1017  986  967  935  985  967
idx=30:   982  991 1032  988  978  949 1038 1038 1008 1029  992  962  992 1041 1032 1059  947 1012  961 1008  946 1046  984 1019 1006  971  994  958  975 1022 1003  982 1034  998  986 1037
idx=31:   963 1043 1005 1009  988  968  988 1014 1031 1029 1078 1021 1006  938  966  975 1010  956  981 1019  990  971  991  970  987  985 1023 1076 1014  978  949 1043 1041  971 1019 1004
idx=32:  1032  999  995  955  976 1032 1036  968  957  987  996  990  983  994  934 1055  993  987  968 1025 1013 1018  985  954 1055  963 1039  982 1010 1001 1003 1051 1022 1019 1011 1012
idx=33:  1019  978 1006  998  988  978  970 1017 1006  972 1019 1081 1016  985 1026  989 1028  978  967  990 1014 1017  952  936  988 1037 1016 1079  973  958  966 1038 1050  957 1005 1003
idx=34:  1008 1027  966  988  962  926 1065 1011 1000 1053 1036 1046  974 1011 1034  928 1002  996 1020  993 1021  995 1017  960  993 1010 1028 1040  978  930  997  981 1010 1003 1018  973
idx=35:   987 1074  957  957 1015  998 1034 1022  970 1022 1004  954 1048 1027 1036  967 1018 1062  971 1010  980  975 1026 1007  960  953 1018 1002  973  955  982  910 1037 1057 1002 1030

La rapidité du calcul de ces 25 groupes de jeux (chacun avec 1000*nCol*nLin initialisations et contrôles) semble bonne.

Seriez-vous intéressé pour une prochaine étape qui pourrait être un undo/redo généralisé ou une recherche de solution optimale ?

Bonne lecture et bon amusement ...

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.