traintracks
حل لغز مسارات القطار المكتوب بلغة JavaScript
في صحيفة Saturday Times (في المملكة المتحدة)، يوجد لغز يسمى مسارات القطار.
إنها شبكة من المربعات مقاس 8 × 8. يحتوي كل صف وعمود على رقم يخبرك بعدد القطع الموجودة في هذا الصف أو العمود.
توجد أيضًا علامة لـ A
و B
في بداية المسار ونهايته. من المحتمل أن تكون هناك قطعة أخرى أو أكثر موجودة بالفعل على الشبكة.
مهمتك هي رسم المسار باستخدام قطعة زاوية مستقيمة أو بزاوية 90 درجة فقط من A
إلى B
بحيث يكون العدد الصحيح للقطع موجودًا في كل صف وعمود من الشبكة.
وإليك مثال اللغز:
نقوم بتشفير اللغز على النحو التالي: <A><B>-<cols>-<rows>-<pieces>
.
اللغز أعلاه هو 54-14134544-54234341-48EW.53NE
A
و B
هما الرقمان 1-8 اللذان يشيران إلى مدى طول الشبكة (من أسفل اليسار) عند البداية (إلى أي مدى للأعلى) والانتهاء (إلى أي مدى على اليمين). في هذا المثال A
هو 5
و B
هو 4
cols
عبارة عن قائمة مكونة من 8 أرقام من 1 إلى 8 تشير إلى القيد الموجود في العمود. تُقرأ الأرقام من اليسار إلى اليمين (على طول الجزء العلوي من اللغز كما في الصورة).
rows
هي نفسها بالنسبة للصفوف، هذه المرة من الأعلى إلى الأسفل، مما يسهل المتابعة من اللغز الحقيقي.
pieces
هي قائمة القطع الأولية (بدون احتساب البداية والنهاية) مفصولة بنقطة .
وهي <rol><col><type>
حيث الكتابة هي الطريقة التي تشير بها القطعة. الأنواع الصالحة هي NS
(عمودي)، EW
(أفقي)، NE
على شكل L، NW
للخلف-L، SE
لأعلى-L، SW
بتدوير 180 درجة L.
يعد هذا أسهل بكثير في الكتابة مما يبدو. ولكن إذا تم استخدام هذا على موقع ويب، فيمكن لواجهة مستخدم أكثر سهولة إنشاء اللغز وإنشاء التشفير.
على أية حال، بمجرد حصولنا على التشفير، يمكننا استدعاء أداة traintracks
:
$ traintracks 54-14134544-54234341-48EW.53NE
Puzzle: 54-14343245-14134544-48EW.53NE
1 4 1 3 4 5 4 4 1 4 1 3 4 5 4 4
┌─┬─┬─┬─┬─┬─┬─┬─┐ ┌─┬─┬─┬─┬─┬─┬─┬─┐
8 │ │ │ │━│ │ │ │ │ 5 8 │ │┏│━│━│━│┓│ │ │ 5
├─┼─┼─┼─┼─┼─┼─┼─┤ ├─┼─┼─┼─┼─┼─┼─┼─┤
7 │ │ │ │ │ │ │ │ │ 4 7 │ │┃│ │ │ │┗│━│┓│ 4
├─┼─┼─┼─┼─┼─┼─┼─┤ ├─┼─┼─┼─┼─┼─┼─┼─┤
6 │ │ │ │ │ │ │ │ │ 2 6 │ │┃│ │ │ │ │ │┃│ 2
├─┼─┼─┼─┼─┼─┼─┼─┤ ├─┼─┼─┼─┼─┼─┼─┼─┤
A │━│ │ │ │ │ │ │ │ 3 A │━│┛│ │ │ │ │ │┃│ 3
├─┼─┼─┼─┼─┼─┼─┼─┤ ├─┼─┼─┼─┼─┼─┼─┼─┤
4 │ │ │ │ │ │ │ │ │ 4 4 │ │ │ │ │┏│━│━│┛│ 4
├─┼─┼─┼─┼─┼─┼─┼─┤ ├─┼─┼─┼─┼─┼─┼─┼─┤
3 │ │ │ │ │┗│ │ │ │ 3 3 │ │ │ │ │┗│━│┓│ │ 3
├─┼─┼─┼─┼─┼─┼─┼─┤ ├─┼─┼─┼─┼─┼─┼─┼─┤
2 │ │ │ │ │ │ │ │ │ 4 2 │ │ │ │┏│━│━│┛│ │ 4
├─┼─┼─┼─┼─┼─┼─┼─┤ ├─┼─┼─┼─┼─┼─┼─┼─┤
1 │ │ │ │┃│ │ │ │ │ 1 1 │ │ │ │┃│ │ │ │ │ 1
└─┴─┴─┴─┴─┴─┴─┴─┘ └─┴─┴─┴─┴─┴─┴─┴─┘
1 2 3 B 5 6 7 8 1 2 3 B 5 6 7 8
Solved: true - Steps: 323
ويمكنك مشاهدة عمل الخوارزمية عن طريق إضافة --animate
. شاهد فيديو الأسينيما:
لقد رأيت هذا AR Sudoku Solver. كان هناك فن سابق في هذا المجال، ولكن هذا كان أول ما رأيته. على أي حال، أحب هذا اللغز الصغير وتساءلت عما إذا كان أ) يمكنني فعل الشيء نفسه، و ب) جعله قائمًا على الويب بالكامل.
لذا فإن خارطة الطريق هي: