Danganronpa V3: Treasure hunter! Monolith Solver
LZsolar
Posted on April 14, 2024
Danganronpa V3 : Killing Harmony เป็นเกมแนว Visual Novel สืบสวนสอบสวนพร้อมด้วยระบบศาลชั้นเรียนสุดมัน แต่ถึงอย่างนั้น ตัวเกมก็มาพร้อมมินิเกมให้เล่นแก้เบื่อด้วยเช่นกัน
หนึ่งในนั้นคือ Treasure hunter! Monolith มินิเกมสุดฮาร์ดคอร์ที่หลายๆคนไม่สามารถเก็บ Achievement ครบ 100% ได้ก็เพราะมัน!!
Treasure hunter! Monolith Overview
มินิเกมนี้เราจะรับบทเป็นนักขุดสมบัติ โดยตัวเกมจะมีบล็อค 4 สี ซึ่งประกอบด้วย
1 - สีขาว
2 - สีชมพู
3 - สีเหลือง
4 - สีฟ้า
เราจะสามารถทำลายได้เฉพาะจุดที่บล็อคสีเดียวกันอยู่ติดกันตั้งแต่ 2 บล็อคขึ้นไปเท่านั้น ซึ่งทันทีที่เราทุบบล็อคในจุดนั้นไป บล็อคสีรอบๆที่อยู่ติดกับจุดที่เราเลือกทุบจะเปลี่ยนสีตามลำดับ 1 > 2 > 3 > 4 > 1
การได้คะแนนของมินิเกมนี้ไม่ได้อยู่ที่การกำจัดบล็อคออกไปให้ได้มากที่สุดเท่านั้น แต่เราจะต้องเก็บ 'สมบัติ' ที่ซ่อนอยู่ภายใต้บล็อคเหล่านั้นด้วยการทุบทำลายบล็อคที่ทับสมบัติชิ้นนั้นออกไปให้หมด
เกมจะจบลงก็ต่อเมื่อไม่เหลือจุดที่เราจะทุบต่อไปได้ และจะคำนวนออกมาเป็นคะแนนของเรา
โดยตัวเกม Danganronpa V3 นั้นมาพร้อมกับ Achievement โดยเราจะต้องเล่นเกมนี้ในระดับความยาก'สูงสุด' โดยจะต้องได้แรงค์ S ซึ่งเท่ากับว่า นอกจากจะต้องทำลายบล็อคให้ได้มากที่สุดแล้ว เราต้องมีดวงให้สมบัติที่ซ่อนอยู่เกิดในจุดที่เราทุบบล็อคออกไปด้วย!!!
แค่เห็นเงื่อนไขและวิธีเล่นเกม ก็ทำเอาเกมเมอร์สายเก็บ Achievement 100% ปาดเหงื่อกันไปตามๆกัน แต่ถึงอย่างนั้น ในบทความนี้เราจะพาไปดูโปรแกรมที่จะช่วยให้เราสามารถผ่านด่านเกมนี้ได้ง่ายยิ่งขึ้นกัน
Solver
ก่อนอื่น ต้องขอบคุณ DanLeEpicMan เป็นอย่างสูงที่ปล่อยโปรแกรมตัวนี้ให้เราใช้กันได้แบบฟรีๆ
ซึ่งการใช้งานสามารถทำได้ง่ายๆ เพียง Download ตัว solver นี้ลงมาจาก GitHub
แต่การจะรันตัว Solver นี้ได้ เราจำเป็นจะต้องติดตั้ง Python ในเครื่องเสียก่อน ซึ่งวิธีการทำได้ตามลิ้งนี้เลย
Step 1
เมื่อเตรียมการเรียบร้อย ให้เราเปิด Command Prompt และทำการพิมพ์
pip install opencv-python
และ
pip install pillow
เพื่อติดตั้ง Library ที่จำเป็นในการรัน
Step 2
เข้าไปที่ File Exploror และทำการก็อบ Directory ของตัว solver ตัวอย่างเช่น Directory ของเรามีหน้าตาแบบนี้
C:\Users\SleepP\Downloads\UpdatedMonolithSolver-main
จากนั้นกลับมาหน้า Command Prompt และพิมพ์ [cd (Directoryที่ก็อบมา)] ตัวอย่างเช่น
cd C:\Users\SleepP\Downloads\UpdatedMonolithSolver-main
Step 3
เปิดเกมและทำการแคปหน้าจอกระดานเกม ทำการเซฟรูปเอาไว้ในโปลเดอร์ screenshot โดยที่ห้ามให้เคอร์เซอร์เมาส์บังส่วนใดส่วนนึงของกระดานดังภาพตัวอย่าง
Step 4
ทำการพิมพ์คำสั่ง
py start.py boardname
เพื่อให้โปรแกรม Solver รันหา Solution ของกระดานของเรา โดยถ้ารูปกระดานที่เราเซฟมาตั้งชื่อเอาไว้ว่า testBoard ให้พิมพ์คำสั่งดังนี้
py start.py testBoard
Step 5
หลังจากใส่คำสั่งทุกอย่างเรียบร้อย ให้รอโปรแกรมประมวลผลสักครู่
หลังจากโปรแกรมรันเสร็จสมบูรณ์ หน้าจอ Command Prompt จะขึ้นตำแหน่งของบล็อคที่เราต้องทุบในกระดาน หรือเราสามารถเข้าไปที่โฟลเดอร์ Solution จะพบกับขั้นตอนที่สามารถเคลียร์กระดานได้มากที่สุดแบบเป็นรูปภาพ
Step 6
เพียงแค่เรานำขั้นตอนตาม Solution ไปเล่น เพียงเท่านี้เราก็จะสามารถเคลียร์มินิเกมตัวนี้ได้อย่างง่ายดายแล้ว!
Behind the scene
เรามาดูกันเถอะว่า โปรแกรม Solver ตัวนี้มันทำงานยังไงกันนะ
โดยเราจะขอพูดถึงแค่ Algorithm ที่เกี่ยวข้องในส่วนที่ใช้ในการหา solution เท่านั้น
ซึ่งสามารถอ่านโค้ดตัวเต็มได้ที่นี่
ตัว Solver นี้มีหลักการที่คล้ายกับ 8-Puzzle game ที่มีการใช้ A* Algorithm เข้ามาช่วยการการหา solution
def Heuristics(state, height, width, exhaustive_coords):
"""The Heuristics of a state are given as a sum of the cleared and apparent clearable nodes in the state"""
H1 = np.sum(Clearable(state, height, width, exhaustive_coords))
H2 = height * width - np.count_nonzero(state)
H = H1 + H2
return H
def Cost(depth):
"""The cost has been defined as the depth (positive) to slightly favor solutions with more steps as it is likely that these will clear more of the board """
G = depth
return G
จากโค้ดในข้างต้นเราจะได้เห็นว่า Heuristics Functions ของโปรแกรมนี้คือจำนวนบล็อคที่ยังเหลืออยู่ในกระดาน โดยมี cost คือจำนวนครั้งที่เราเลือกทุบบล็อค
ต่อมาในส่วนของโปรแกรมที่ใช้รันในการหา ตัวโปรแกรมจะใช้การ 'ลอง' ทุบบล็อคและจดจำค่าที่ได้วนไปจนกว่าจะไม่เหลือบล็อคที่สามารถทุบได้อยู่บนกระดาน จากนั้นทำซ้ำวนไปและเก็บคำตอบที่มี % การเคลียร์บล็อคบนกระดานสูงที่สุดเป็นออกมาเป็นคำตอบ
สรุป
Solver ตัวนี้เขียนขึ้นมาเพื่อมินิเกม Treasure hunter! Monolith โดยใช้ภาษา python ซึ่งมีการนำ A* Algorithm เข้ามาช่วยในการหา solution ที่สามารถทุบบล็อคออกไปได้มากที่สุด แต่ถึงอยากนั้น การที่สามารถทุบบล็อคออกไปได้เยอะก็ไม่ได้การันตีว่าเราจะได้แรงค์ S ไปครอบครอง
แต่อย่างไรก็ตาม นี่ก็เป็นโปรแกรม Solver ที่ทำให้เราเข้าใกล้ความจริงที่จะได้รับ Achievement นี้มาครอบครองไปอีก 1 ก้าว!
Source:
Danganronpa V3: Killing Harmony
UpdatedMonolithSolver
Posted on April 14, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.