Zapisz więc sobie planszę matematycznie jak chcesz... Ja bym zrobił tak, że zamiast macierzy "pseudo-3D" zrobię sobie 2D, gdzie każdy "kafel" to będą 4 kolejne indeksy. Mogę sobie nawet zrobić "dziury", które oznaczę specjalnie. Chcesz nierówne? Proszę bardzo!
Pierwszy rząd ma 6 kafli, 2 rząd 5 kafli (brak ostatniego), a 3 rząd 2 kafle, przerwa na 1 i 3 kafle

WOW! Zmieściłem po 2 romby 1 i 3 oraz jedna 2 mimo dziur (oznaczonych szarym). Tak więc nie spełniłem warunku, że kafle są w całości ciągiem. Po prostu bez malowania uważasz, że się nie da, bo tego nie "widzisz". Ja tę planszę matematycznie w głowie jako macierz 2D widzę, w której puste pola są oznaczone jako 0, zajęte przez wzór 1,2,3 jako 1 (lub by było łatwiej z oznaczeniem 1,2,3 co odpowiadało by określonemu kolorowi), a dziury to 2 (lub 4 jeśli weźmiemy kolory), przy czym skrypt tych z 2 (lub 4) nie miałby prawa zmienić (nie da się przesunąć/załatać dziury) nawet na 0. Zwyczajnie popatrz na to inaczej.
Bym zapomniał. Pomysł hwao jest ok, ale z góry musisz założyć, czy trójkąt (0,0) jest do góry jednym czy dwoma rogami, bo to determinuje co możesz tam włożyć.
Jeśli do góry 1 rogiem to może być jak na rysunku, czy wejdzie tam romb 3([0,0],[1,0]) oraz 1([0,0],[0,1]) i to jest ból... bo romb 2 może wejść dopiero od klocka [0,1], czyli [0,0] leży niewykorzystany. Można to uznać za błąd skryptu.
Jeszcze gorzej gdy założysz, że [0,0] musi być skierowany 2 rogami do góry. Wtedy [0,0] może być startowym jedynie dla wzoru 2. Z tego klocka nie można ułożyć startu ani dla 1, ani dla 3. One tam po prostu nie pasują.
Właśnie dlatego podzieliłem plansze na kafle złożone z 4 trójkątów. W takim układzie zawsze zmarnują się na rogach maksymalnie 2 puste małe trójkąciki. Jest więc bardziej elastyczny. Ale jeśli przyjąć pewne założenia to zamieniłby się w układ dokładnie taki sam jaki proponuje hwao, ponieważ jego wersja jest szczególnym przypadkiem mojego