Javascript - převoznicky hlavolam

Aktuální výzva pro programátory je naprogramovat středověký převoznický hlavolam.

Na jednom břehu stojí tři urozené sourozenecké páry. Sourozenecký pár tvoří vždy bratr a sestrou. Tato skupinka se potřebuje dostat na břeh druhý. Loďka je dvou místna a sama plout nedokáže. Celá akce převozu má však jednu podmínku: Nikdy nesmí zůstat princezna s cizím princem bez dozoru svého bratra (ani na břehu ani na lodi). Jinak dojde k "neštěstí", nepříbuzný princ využije situace políbí nechráněnou princeznu, ta už nebude nepolíbena, čímž dojde k zostuzení celé její rodiny, jady, jady, da.... prostě GAME OVER, TRY IT AGAIN. Pokud přistane princ u břehu s nechráněnu princeznou, automaticky vyskočí z lodě i bez akce uživatele a hra tím opět končí.

 

Lucku napadají dva postupy:

1) Držet informace o pozici figur (princů a princezen) v místech. Tedy na místě

BŘEH1 se nachází PRINC1,PRINCEZNA1,PRINCEZNA2,...

LOĎ se nachází PRINC3, PRINCEZNA3

....

2) Jiný postup by bylo držet informaci o pozici figur u figur. Tedy že figura

PRINC1 se nachází na BŘEH1

PRINEZNA1 se nachází na LOĎ

....

 

Vzhledem k nutnosti testovat přítomnost figur v rámci míst, se mi jeví praktičtější postup č.1.

 

Tak či onak se k tomu bude hodit znalost polí (případně objektů) a znalost cyklů.

Kam dál?