Ich habe nun MTRANS8 aus .REVERSE gemacht (danke für Deine Vorarbeit, maninweb):
MTRANS8:
=LAMBDA(Array;Zustand;
LET(Arr;Array;
z;Zustand;
x;ZEILEN(Arr);
y;SPALTEN(Arr);
i;SEQUENZ(x);
j;SEQUENZ(;y);
m;x+1-i;
n;y+1-j;
ww;WAHL(REST(z;4)+1;INDEX(Arr;i;j);INDEX(Arr;i;n);INDEX(Arr;m;j);INDEX(Arr;m;n));
WENN(REST(z;8)>3;MTRANS(ww);ww)))
8 Zustände 0-7:
2x Zeilen (normal/rückwärts)
2x Spalten (normal/rückwärts)
2x Matrix (normal/MTRANS)
Echtes Drehen des Arrays in der Reihenfolge 0-6-3-5-0 bzw. 1-7-2-4-1.
Anwendungsbeispiel "5. Zustand": =MTRANS8({1.2.3;4.5.6};5) ergibt
3 6
2 5
1 4 also Zeilen rückwärts, Spalten normal, MTRANS ja.
PHP-Code:
A B C C B A J K L L K J
D E F F E D G H I I H G
G H I I H G D E F F E D
J K L L K J A B C C B A
Zustände 0-3
A D G J C F I L J G D A L I F C
B E H K B E H K K H E B K H E B
C F I L A D G J L I F C J G D A
Zustände 4-7
MTRANS8:
=LAMBDA(Array;Zustand;
LET(Arr;Array;
z;Zustand;
x;ZEILEN(Arr);
y;SPALTEN(Arr);
i;SEQUENZ(x);
j;SEQUENZ(;y);
m;x+1-i;
n;y+1-j;
ww;WAHL(REST(z;4)+1;INDEX(Arr;i;j);INDEX(Arr;i;n);INDEX(Arr;m;j);INDEX(Arr;m;n));
WENN(REST(z;8)>3;MTRANS(ww);ww)))
8 Zustände 0-7:
2x Zeilen (normal/rückwärts)
2x Spalten (normal/rückwärts)
2x Matrix (normal/MTRANS)
Echtes Drehen des Arrays in der Reihenfolge 0-6-3-5-0 bzw. 1-7-2-4-1.
Anwendungsbeispiel "5. Zustand": =MTRANS8({1.2.3;4.5.6};5) ergibt
3 6
2 5
1 4 also Zeilen rückwärts, Spalten normal, MTRANS ja.
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel).