Sommaire
Le but de ce défi est de créer une version image défaite d'un puzzle de 15 casse-tête / coulissant également appelé taquin en français.
Détails:
Soit une entrée composée de:
- une image,
- un entier
n, - un autre entier
r,
votre programme, ou fonction, ou tout autre élément qui convient, doit produire la même image ( c'est-à-dire la même taille et le même format) que l'entrée, mais qui a subi le processus suivant:
- divisez l'image en
n²rectangles, - supprimer l'un de ces rectangles, au hasard,
- déplacez un nombre aléatoire de rectangles contigus de la ligne / colonne affectée par le point (2.) afin que le trou créé soit rempli et qu'un autre soit généré dans cette ligne / colonne. Ce nombre peut être
0si le blanc est dans un coin ou un bord.
Répétez (3.) rfois.
Clarifications:
- Si vous avez déplacé des rectangles de la ligne à l'étape (3.), vous devez déplacer les rectangles de la colonne dans la répétition suivante,
- si vous avez déplacé des rectangles de gauche à droite dans un pas de ligne, ils doivent être déplacés de droite à gauche dans le pas de ligne suivant, de même pour les colonnes de haut en bas et de bas en haut concernant les colonnes,
- vous pouvez supposer que ce
nsera choisi de sorte qu'il divise les longueurs des côtés de l'image.
Un dernier point:
Une animation .gifmontrant l'ensemble du processus est la bienvenue.
Je propose d'utiliser l'image suivante (qui est 1024x768), avec n=16et r=100comme modèle, vous pouvez utiliser n'importe quelle autre image (tant qu'elle est pertinente et conforme aux règles de SE, bien sûr).
Notez que les politiques d'échappatoires standard s'appliquent.
Il s'agit de code-golf , donc la soumission la plus courte gagne!
Puisqu'un exemple a été demandé, en voici un, fait "à la main", avec n=4etr=1
Étapes 1 et 2
Étape 3 : ligne par ligne, 2 rectangles à gauche
move a random number of contiguous rectanglespeut-il être 0 rectangles? (ce serait



