gereleth / hexapipes

Hexagonal pipes puzzles
https://hexapipes.vercel.app/hexagonal/5
MIT License
186 stars 19 forks source link

New stat suggestion : Efficiency #85

Closed Metalliguitare closed 1 year ago

Metalliguitare commented 1 year ago

Hi there.

I discovered pipes puzzles a couple days ago and i'm loving it. I'm learning the ropes, sucessfully resolving my first puzzles. I like the idea of stats making you improve and being an incentive to be faster and faster.

Since i'm learning, i'm nowhere near to be super fast. So there is one more rule i try to follow : no wasted clicks. As a minesweeper enthusiast, there is a stat that is also used to measure your skill : Efficiency. The effeciency stat is not how fast you solve the puzzle, but how precise you are, with the less useless clicks.

I suppose you could track how many rotations you did to solve the puzzle and compare with how many rotations are truly needed (calculated while generating the puzzle). The closer you are to 100%, the more precise you are.

Combine this with the classic MO3, AO5 and AO12, and you can aim to be not only fast, but also super precise.

Thanks for reading :)

gereleth commented 1 year ago

Hi and welcome! Glad you're enjoying the game :smile:

This is an interesting idea but it may be hard to formalize comparisons across all control modes.

Taking hexagonal pipes as an example the amount of clicks necessary to rotate a tile correctly is

There is a locking assistant feature that rotates surrounding tiles when you lock a tile or make an edgemark. So rotations could happen automatically. This way I can even solve some small puzzles in a single locking gesture. That's gotta be very efficient, right? =)

I guess we could count how many times you "touch" tiles during solving. A "touch" meaning doing stuff to a single tile. And when you switch to another tile the counter goes up. But this is not going to catch things like "oops, I clicked 6 times instead of 5 and now I have to do 5 more" that you seem to want. This might be more of a puzzle difficulty metric. Because in hard puzzles (like this week's dailies :smiling_imp:) you just have to go "suppose this goes here then that goes there..." and look for far away contradictions.

Metalliguitare commented 1 year ago

Indeed, i didn't count the fact that you would make assumption and check the consequences, especially when the canvas grows bigger (I tried my first square 30x30 square pipes today after opening this ticket, and oh boy you need to check 3-4 moves forward near the end of completion)

Maybe only for certain modes / sizes ? like if you're under 10x10 or 15x15 Well again, it was just an idea :)

Thanks anyway for your answer.

Aaron-Rumpler commented 1 year ago

Or maybe if the solver is able to solve the puzzle without having to guess a position and check ahead? As for move count, for the rotate modes, maybe you could count it as one move until you go past the correct position or decide to rotate in the other direction? Or do the required move calculations based on the selected mode?

gereleth commented 1 year ago

So I think there are two aspects to what we could call "efficiency"

  1. How well you executed a desired rotation - with or without misclicks and so on.
  2. How much sense your desired rotation even made - was it a logical next step or a mistake or a guess.

Measuring the first one requires knowing what you wanted to do. In small simple puzzles we can assume that desired rotation == correct rotation. But this assumption breaks down in larger / more difficult puzzles. This also highly depends on control mode.

The second one is even harder to measure =). I could compare your count of touches to that of my :robot: solver but human logic is pretty different from robot logic. Some patterns you can see at a glance and the solver can't and has to resort to guessing. On the other hand, the solver never misses a spot with an obvious next step while a human might have a hard time locating it among many unsolved tiles.

Given the difficulties described above I'm inclined to just say that solve times are your ultimate efficiency measure. Whatever makes you faster must be good =).