Results 1 to 9 of 9
  1. #1
    Community Member FuryFlash's Avatar
    Join Date
    Oct 2010
    Location
    Thelanis
    Posts
    747

    Default "Smash and Burn" Dice Puzzle Solver

    Hey everyone,

    I decided to make a puzzle solver for the dice puzzles in the quest "Smash and Burn" from the Masterminds of Sharn expansion. While these puzzles have static starting positions with easy initial solutions, it is common for lag-spikes, missed jumps or group members incorrectly solving the puzzles to put them into difficult-to-solve states. This solver rapidly finds the shortest solution to any puzzle state.

    Link: https://furyflashddo.com/

    ***

    How do I use the solver?

    The puzzle solver has two input modes which can be toggled on the right hand side of the interface: Edit and Practice. The Edit mode will increase the value of any tile you press by 1, and is used to input the current state of your puzzle. The Practice mode is functionally equivalent to pressing the tiles in-game, and can be used to practice the puzzle outside of the game.

    Once you are ready to solve the puzzle from the current state, press "Solve". This will display the tiles to press in the correct order to solve the puzzle. If you wish to reset the puzzle state, press "Reset".

    The selector on the left allows the user to switch between puzzle types. There are 4 different puzzles found within the quest. The solver assumes you are facing East in-game when solving each puzzle - take this into account when entering the current state.

    You can also toggle between tile priorities using the "Use alternate tile priority" toggle under the puzzle input box. This is best used when the solution the solver has given you doesn't yield the same results in-game. If you follow the steps of the solution, and it doesn't work, toggle alternate priorities on and try again. This is described in more detail below.

    ***

    How does the puzzle work anyway?

    At its simplest, pressing a tile on the puzzle subtracts one from all the adjacent tiles and increases the tile you pressed by the number of tiles that are adjacent to it.

    Here's an example of pressing the top right corner of a 3x3 puzzle:

    In this case, the top-right tile had 2 adjacent tiles, so it increased by 2. The two adjacent tiles both decrease by 1.

    This is the main rule of the puzzle, but there are special cases to be considered as well.

    If a tile adjacent to the tile you pressed is currently at 0, it doesn't get counted as an adjacent tile:

    The bottom-right tile is pressed, but despite having 2 adjacent tiles, only increases by 1. This is because one of the adjacent tiles is currently at 0.

    Tiles can have a value between 0 and 4. If a tile is at 4, it can't be pressed:

    The bottom-left tile is pressed, but nothing happens because it is already at 4.

    If pressing a tile would put it's value above 4, it takes from the highest value adjacent tiles first:

    The bottom-center tile is pressed, but it can only take from 1 adjacent tile because it is already at 3. It takes from the bottom-left tile first because that one has the highest value of all the adjacent tiles.

    In the previous case, if multiple adjacent tiles are tied for the same value, the one that gets taken from first is based on the tile's location in the puzzle. I refer to this as a tile's "priority":

    The bottom-right tile is pressed, but it can only take from 1 adjacent tile because it is already at 3. Both adjacent tiles have the same value, so the game determines the bottom-middle tile to have a higher priority based on its location and takes from this tile first.

    That last case is confusing, because it's not clear how tiles are prioritized in such "tie" cases. This problem is discussed more below.

    ***

    What is the "Use alternate tile priority" toggle in the solver?

    In the case of a tie when pressing a tile, as illustrated in the examples above, the game has to decide which tile will be taken from first. Through hours of testing, I have determined that specific tile locations have higher internal priority than others, which is different for each puzzle. For example, one puzzle might prioritize tiles on the bottom row over tiles on the middle row, like what happened in the last example above.

    Here's an example of tile priorities for the first puzzle you come across in the quest:

    The tiles are numbered in order of their priority (1 is highest priority). The highest priority gets taken from first in the case of a tie.

    This is annoying, but not a huge problem once the solver knows the priority orders. The real problem is that each puzzle has an alternate priority order that it chooses between randomly when you enter the quest. That means it is impossible for the solver to know which instance of the puzzles is being followed in any given case.

    Here's the alternate tile priority order for the same puzzle - and there may be other layouts that I haven't discovered yet as well:

    As before, the tiles are numbered in order of their priority, but the order is different for this instance of the puzzle.

    As of right now, I have found 2 possible priority layouts for each puzzle. What the "Use alternate tile priority" toggle does is switch what layout the solver uses to determine ties - if you find that the solver gave you an incorrect solution for your puzzle, switching to the alternate priority layout and trying again should work.

    ***

    I don't have a ton of experience with web hosting and web development, so any feedback or questions you may have about the solver would be appreciated! I'm planning to do some more work on the UI scaling and adding other useful features in the future.

    Feel free to link the site in other places as well. Enjoy!

    ~Fury
    Last edited by FuryFlash; 07-03-2019 at 07:41 PM.

  2. #2
    Community Member DYWYPI's Avatar
    Join Date
    Feb 2016
    Location
    Thelanis
    Posts
    847

    Default

    Well done, with producing the first interactive Dice Puzzle solver. It's a great resource and I suspect it took a great deal of time and effort to create! :D

    Note: the yellow dice at the bottom right, isn't correctly positioned you'll likely need to move it, via your CSS. Perhaps you forgot to account for the blank empty DIV element container. Possibly: button, .input-puzzle-tile-empty could be set to the same absolute 'width' value declaration, within the CSS. Though I'm not going bother trawling through all the CSS to what styles are being cascaded and inherited elsewhere, etc.

    The markup semantics are weak in a few places and the syntax is malformed although as you said you aren't that experienced with web development so that's to be expected. Though overall its seems to work fine. Also well done with the detailed informative post explaining how you came to your conclusions for creating a robust solving method.

  3. #3
    Community Member FuryFlash's Avatar
    Join Date
    Oct 2010
    Location
    Thelanis
    Posts
    747

    Default

    Quote Originally Posted by DYWYPI View Post
    Well done, with producing the first interactive Dice Puzzle solver. It's a great resource and I suspect it took a great deal of time and effort to create!

    Note: the yellow dice at the bottom right, isn't correctly positioned you'll likely need to move it, via your CSS. Perhaps you forgot to account for the blank empty DIV element container. Possibly: button, .input-puzzle-tile-empty could be set to the same absolute 'width' value declaration, within the CSS. Though I'm not going bother trawling through all the CSS to what styles are being cascaded and inherited elsewhere, etc.

    The markup semantics are weak in a few places and the syntax is malformed although as you said you aren't that experienced with web development so that's to be expected. Though overall its seems to work fine. Also well done with the detailed informative post explaining how you came to your conclusions for creating a robust solving method.
    Thanks for the feedback! The bottom right dice looks correct on my screen - could it be a browser issue? The empty tile div does have the same absolute width (64px) as the other tiles:


    I'm also not surprised that my syntax is a little off - though I'm not sure what exact "malformed" syntax you are referring to.

    Anyway, the CSS is definitely the main thing I still have to work on - but I decided that at this point it was worth it to make the site public since it was functional. It will still be a work in progress, especially making it scale better to screen size... I can't stand using absolute values anywhere, but I just didn't want to spend the time getting it to work any other way.

    Again, thanks for spending the time to look it over and post feedback.

    ~Fury

  4. #4
    Community Member Dragavon's Avatar
    Join Date
    Sep 2006
    Posts
    2,999

    Default

    Awesome job making this solver, thanks a lot.

  5. #5
    Community Member DYWYPI's Avatar
    Join Date
    Feb 2016
    Location
    Thelanis
    Posts
    847

    Default

    Yes, it is possible it is a variation in User Agent (UA) rendering engines and 'CSS Box Model' as to why that dice position is showing slightly differently for me. It's an empty DIV group container unlike the other cells that contain both: BUTTON and IMG elements. I'm rusty with CSS, it's probably been over ten years when I was last up-to-date.


    I meant the generated HTML syntax looked malformed. For example the BUTTON element syntax doesn't allow either 'row' or 'col' attributes within HTML. There were several other HTML syntax or semantic issues; the only reason I mentioned it, was because you asked. Although we're starting to get too technical, and way off topic. LOL

    Nonetheless it's a cool application. :D
    Last edited by DYWYPI; 07-07-2019 at 03:14 PM. Reason: Grammar.

  6. #6
    Community Member
    Join Date
    Dec 2013
    Posts
    806

    Default

    This is really nice work. It's a shame it's buried in a sub forum. I wouldn't have known it was here if you hadn't linked to it on another thread.
    Thank you. This is getting bookmarked.

  7. #7
    Community Member FuryFlash's Avatar
    Join Date
    Oct 2010
    Location
    Thelanis
    Posts
    747

    Default

    Quote Originally Posted by DYWYPI View Post
    Nonetheless it's a cool application.
    Ah, I can see now that the standard button border appearance (the white part around the tiles) is showing on yours. My workaround to get rid of it must not work universally. That would definitely cause bad spacing. The other buttons on the page probably look terrible on your page too. :P

    But yes, getting a bit technical. I appreciate the help nonetheless.

    Quote Originally Posted by bracelet View Post
    This is really nice work. It's a shame it's buried in a sub forum. I wouldn't have known it was here if you hadn't linked to it on another thread.
    Thank you. This is getting bookmarked.
    Thanks! I had the same thought when I posted it here, but that's just the way of these forums. The only way this will start being seen is if Cordo posts on the thread.

  8. #8
    Community Member SpartanKiller13's Avatar
    Join Date
    Jan 2014
    Location
    Cannith, usually
    Posts
    2,084

    Default

    +1! Saw your comment on another post, and wow! Thank you very much
    -Khysiria of Cannith
    Quote Originally Posted by zehnvhex View Post
    Warlock is basically a ghetto Shiradi Sorc. You gives up some of the damage and self sustain for the ability to just hold down left click and yolo blast your way to victory.
    Quote Originally Posted by Lynnabel View Post
    It's DDO. There are probably 6 different types of Evil damage.

  9. #9
    Community Member TitusOvid's Avatar
    Join Date
    Jul 2014
    Location
    Germany
    Posts
    2,025

    Default

    Awesome work. Can't add more reputation. If someone can help me out?! Thx.
    Beste, Titus. | playing since 2009 | Don't do the fun wrong | New to Orien? Join the ingame Titan Channel | Soko Irrlicht freut sich immer über neue Mitglieder | Deutscher Discord | Orien Raiding Discord Toons: Titusovid , Bruder, Upload, Zzed, (Rubbel)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

This form's session has expired. You need to reload the page.

Reload