Danganronpa V3: Treasure hunter! Monolith Solver

lzsolar

LZsolar

Posted on April 14, 2024

Danganronpa V3: Treasure hunter! Monolith Solver

Danganronpa V3 : Killing Harmony เป็นเกมแนว Visual Novel สืบสวนสอบสวนพร้อมด้วยระบบศาลชั้นเรียนสุดมัน แต่ถึงอย่างนั้น ตัวเกมก็มาพร้อมมินิเกมให้เล่นแก้เบื่อด้วยเช่นกัน

หนึ่งในนั้นคือ Treasure hunter! Monolith มินิเกมสุดฮาร์ดคอร์ที่หลายๆคนไม่สามารถเก็บ Achievement ครบ 100% ได้ก็เพราะมัน!!

Treasure hunter! Monolith Overview

Overview

มินิเกมนี้เราจะรับบทเป็นนักขุดสมบัติ โดยตัวเกมจะมีบล็อค 4 สี ซึ่งประกอบด้วย
1 - สีขาว
2 - สีชมพู
3 - สีเหลือง
4 - สีฟ้า

เราจะสามารถทำลายได้เฉพาะจุดที่บล็อคสีเดียวกันอยู่ติดกันตั้งแต่ 2 บล็อคขึ้นไปเท่านั้น ซึ่งทันทีที่เราทุบบล็อคในจุดนั้นไป บล็อคสีรอบๆที่อยู่ติดกับจุดที่เราเลือกทุบจะเปลี่ยนสีตามลำดับ 1 > 2 > 3 > 4 > 1

ก่อนหลังทุบ

การได้คะแนนของมินิเกมนี้ไม่ได้อยู่ที่การกำจัดบล็อคออกไปให้ได้มากที่สุดเท่านั้น แต่เราจะต้องเก็บ 'สมบัติ' ที่ซ่อนอยู่ภายใต้บล็อคเหล่านั้นด้วยการทุบทำลายบล็อคที่ทับสมบัติชิ้นนั้นออกไปให้หมด

สมบัติที่เก็บได้แล้ว

เกมจะจบลงก็ต่อเมื่อไม่เหลือจุดที่เราจะทุบต่อไปได้ และจะคำนวนออกมาเป็นคะแนนของเรา

No more move

โดยตัวเกม Danganronpa V3 นั้นมาพร้อมกับ Achievement โดยเราจะต้องเล่นเกมนี้ในระดับความยาก'สูงสุด' โดยจะต้องได้แรงค์ S ซึ่งเท่ากับว่า นอกจากจะต้องทำลายบล็อคให้ได้มากที่สุดแล้ว เราต้องมีดวงให้สมบัติที่ซ่อนอยู่เกิดในจุดที่เราทุบบล็อคออกไปด้วย!!!

monolith achievement

แค่เห็นเงื่อนไขและวิธีเล่นเกม ก็ทำเอาเกมเมอร์สายเก็บ 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 โดยที่ห้ามให้เคอร์เซอร์เมาส์บังส่วนใดส่วนนึงของกระดานดังภาพตัวอย่าง

Test Board

Step 4
ทำการพิมพ์คำสั่ง
py start.py boardname
เพื่อให้โปรแกรม Solver รันหา Solution ของกระดานของเรา โดยถ้ารูปกระดานที่เราเซฟมาตั้งชื่อเอาไว้ว่า testBoard ให้พิมพ์คำสั่งดังนี้
py start.py testBoard

Step 5
หลังจากใส่คำสั่งทุกอย่างเรียบร้อย ให้รอโปรแกรมประมวลผลสักครู่
Run1Run2

หลังจากโปรแกรมรันเสร็จสมบูรณ์ หน้าจอ Command Prompt จะขึ้นตำแหน่งของบล็อคที่เราต้องทุบในกระดาน หรือเราสามารถเข้าไปที่โฟลเดอร์ Solution จะพบกับขั้นตอนที่สามารถเคลียร์กระดานได้มากที่สุดแบบเป็นรูปภาพ

RunFin

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
Enter fullscreen mode Exit fullscreen mode

จากโค้ดในข้างต้นเราจะได้เห็นว่า Heuristics Functions ของโปรแกรมนี้คือจำนวนบล็อคที่ยังเหลืออยู่ในกระดาน โดยมี cost คือจำนวนครั้งที่เราเลือกทุบบล็อค

ต่อมาในส่วนของโปรแกรมที่ใช้รันในการหา ตัวโปรแกรมจะใช้การ 'ลอง' ทุบบล็อคและจดจำค่าที่ได้วนไปจนกว่าจะไม่เหลือบล็อคที่สามารถทุบได้อยู่บนกระดาน จากนั้นทำซ้ำวนไปและเก็บคำตอบที่มี % การเคลียร์บล็อคบนกระดานสูงที่สุดเป็นออกมาเป็นคำตอบ

สรุป

Solver ตัวนี้เขียนขึ้นมาเพื่อมินิเกม Treasure hunter! Monolith โดยใช้ภาษา python ซึ่งมีการนำ A* Algorithm เข้ามาช่วยในการหา solution ที่สามารถทุบบล็อคออกไปได้มากที่สุด แต่ถึงอยากนั้น การที่สามารถทุบบล็อคออกไปได้เยอะก็ไม่ได้การันตีว่าเราจะได้แรงค์ S ไปครอบครอง

แต่อย่างไรก็ตาม นี่ก็เป็นโปรแกรม Solver ที่ทำให้เราเข้าใกล้ความจริงที่จะได้รับ Achievement นี้มาครอบครองไปอีก 1 ก้าว!


Source:
Danganronpa V3: Killing Harmony
UpdatedMonolithSolver

💖 💪 🙅 🚩
lzsolar
LZsolar

Posted on April 14, 2024

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related