Een woordkubus is een spelletje waarbij woorden moeten gevormd worden met de negen letters die in een $$3 \times 3$$ rooster staan. Elke letter van het rooster mag slechts één keer gebruikt worden. Er bestaat altijd een woord dat alle letters van het rooster gebruikt. Woorden moeten minstens uit vier letters bestaan en moeten de centrale letter van het rooster bevatten. Wie het meeste woorden kan vormen, wint. Er kunnen bijvoorbeeld drie woorden gevormd worden voor onderstaande opgave: urinezuur, Uzun en zuur

Woordkubus
Woordkubus waarmee de woorde urinezuur, Uzun en zuur kunnen gevormd worden.

Opgave

Schrijf een bash shell script woordkubus waaraan negen letters als afzonderlijke argumenten moeten doorgegeven worden. Deze letters vormen de opgave van een woordkubus, in leesvolgorde uitgelezen uit het rooster: van links naar rechts, en van boven naar onder. Het script moet alle mogelijke oplossingen van de woordkubus uitschrijven naar standaard uitvoer (stdout), gesorteerd in alfabetische volgorde. Deze oplossingen moeten gezocht worden in het bestand words1 dat een lijst van woorden bevat, elk op een afzonderlijke regel. Zowel bij het sorteren als bij het zoeken van de oplossingen mag geen onderscheid gemaakt worden tussen hoofdletters en kleine letters. De woorden moeten wel hun oorspronkelijk schrijfwijze uit het bestand behouden.

Tip

Een mogelijke oplossingsstrategie bestaat erin het woord op elke regel van het bestand words te verdubbelen (bv. urinezuur wordt urinezuur urinezuur) en daarna de letters uit de woordkubus te schrappen uit het eerste woord. Regels waarvan alle letters van het eerste woord geschrapt zijn, vormen dan een kandidaat-oplossing van de woordkubus. Merk op dat oplossingen ook minstens vier letters moeten hebben en de centrale letter van de woordkubus moeten bevatten.

Voorbeeld

$ woordkubus j h T i c j i P n
chip
inch
jicht
jichtpijn
nicht
pitch