ตามคำแนะนำของ Ms. Pac-Man ที่กังวลเกี่ยวกับการที่เขามีน้ำหนักเกิน Pac-Man ได้ตัดสินใจที่จะติดตามการบริโภค Pac-Dot ทุกวันของเขา ช่วยเขานับจำนวน Pac-Dots บนเส้นทางที่กำหนดในเขาวงกต!
เขาวงกต
ที่จะช่วยให้คุณสร้างการเข้ารหัสของตัวเองของเขาวงกตที่คุณสามารถได้รับข้อมูลดิบบางอย่างที่นี่
การเดินทางของ Pac-Man
ในบริบทของการท้าทายนี้จะใช้กฎต่อไปนี้:
- ก่อนอื่นข่าวดี: ผีไม่มีอยู่จริง
- แพคแมนเริ่มการแข่งขันเสมอตามตำแหน่งที่ระบุไว้ในภาพด้านบนมุ่งหน้าไปทางทิศตะวันออก ไม่มี Pac-Dot ที่ตำแหน่งเริ่มต้น
- ตราบใดที่เขาเดินไปตามทางตรงเขาจะก้าวไปสู่สี่เหลี่ยมถัดไป
- เมื่อเขาพบการเลี้ยว 90 °โดยไม่มีเส้นทางอื่น (สี่เหลี่ยมสีส้มบนแผนที่) เขาจะเลี้ยวโดยอัตโนมัติและเป็นระบบ
- เมื่อเขาพบทางแยกที่มีหลายเส้นทาง (สี่เหลี่ยมสีเขียวบนแผนที่) เขาอาจดำเนินการต่อในทิศทางเดียวกัน - ถ้าทำได้ - หรือเลือกทิศทางอื่น (รวมถึงกลับรถด้วย)
- เมื่อ Pac-Man ผ่านทางออกหนึ่งทางด้านซ้ายกลางหรือด้านขวากลางของเขาวงกตเขาจะปรากฏขึ้นอีกครั้งในด้านตรงข้ามทันที
- Pac-Man กิน Pac-Dots ทั้งหมดบนเส้นทางที่เขาติดตาม เมื่อ Pac-Dot ถูกกินแล้วมันจะถูกลบออกจากเขาวงกต
ความท้าทาย
อินพุต
คุณจะได้รับสตริงที่อธิบายพฤติกรรมของ Pac-Man ในทางแยกที่เขากำลังจะไปถึง สายนี้จะทำจากตัวละครต่อไปนี้:
L
: เลี้ยว 90 ไปทางซ้ายR
: เลี้ยว 90 ไปทางขวาF
: ไปข้างหน้า (ไม่เปลี่ยนทิศทาง)B
: ย้อนกลับ (กลับรถ)
เมื่อตัวละครทั้งหมดได้รับการประมวลผล Pac-Man จะหยุดที่จุดต่อไปที่เขาพบ
เอาท์พุต
คุณต้องพิมพ์หรือส่งออกจำนวน Pac-Dots ที่รับประทานไปตามทางเข้า
กฎระเบียบ
- คุณสามารถเขียนโปรแกรมเต็มรูปแบบหรือฟังก์ชั่น
- คุณสามารถรับอินพุตเป็นตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็กได้ทั้งสตริงหรืออาร์เรย์ของอักขระ นอกจากนี้คุณยังอาจจะใช้ตัวละครอื่น ๆ ( แต่ตัวละครตัวหนึ่งต่อทิศทาง)
[0 .. 9]
หรือจำนวนเต็มใน หากคุณทำเช่นนั้นโปรดระบุให้ชัดเจนในคำตอบของคุณ - คุณสามารถสันนิษฐานได้ว่าอินพุตนั้นถูกต้องเสมอ (jsFiddle ด้านล่างจะตรวจพบข้อผิดพลาด แต่คุณไม่ควรทำ)
- นี่คือโค้ดกอล์ฟดังนั้นโค้ดที่สั้นที่สุดในหน่วยไบต์ชนะ
- ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม
เปรย
มันอาจไม่จำเป็นหรือไม่เหมาะสมในการจัดเก็บรูปร่างที่แน่นอนของเขาวงกต
กรณีทดสอบและการสาธิต
กรณีทดสอบต่อไปนี้ - หรืออินพุตอื่น ๆ - สามารถทดสอบได้ใน jsFiddleนี้
1. Input : ""
Output : 1
Comment: Pac-Man just advances to the first junction, eats the Pac-Dot on it and stops.
2. Input : "L"
Output : 7
3. Input : "FFR"
Output : 13
4. Input : "LFLR"
Output : 17
Comment: Pac-Man will exit on the middle right side and re-appear on the left side.
5. Input : "BBBB"
Output : 2
6. Input : "BRRFFFL"
Output : 15
7. Input : "LFFRLFFFFRF"
Output : 50
8. Input : "BRFRLRFRLFR"
Output : 54
Comment: Pac-Man will exit on the middle left side and re-appear on the right side.
9. Input : "FFLRLFFLLLLFFBFLFLRRRLRRFRFLRLFFFLFLLLLFRRFBRLLLFBLFFLBFRLLR"
Output : 244
Comment: All cleared!