Skip to content

Commit

Permalink
Add hsc/rules.md
Browse files Browse the repository at this point in the history
  • Loading branch information
HactarCE committed Aug 10, 2024
1 parent 14a8d55 commit 48077fa
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 0 deletions.
27 changes: 27 additions & 0 deletions docs/hsc/rules.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Hyperspeedcube Rules

Here is a list of rules that new additions to Hyperspeedcube must follow. Of course, rules are made to be broken, so many of these rules have exceptions.

## Thou shalt not reveal excess information

**Features of the program (piece filters, keybinds, macros, etc.) must not reveal excess information.**

For example, the X-centers on 4^3 are indistinguishable. If you could make a piece filter that selected individual X-centers, then you could use those to solve centers into their original positions and avoid orientation parity.

Exception: Debugging tools may provide this information. These are meant to be used by puzzle designers, not solvers.

## Thou shalt not let input handling know puzzle state

**User input (via mouse or keyboard) must behave the same way regardless of the current state of the puzzle.**

If this were not the case, then the user could make a key that simply solves the current case, and pressing a certain sequence of keys repeatedly could solve the puzzle.

Exception: The state of _which moves are allowed_ is impossible to hide, so this may be revealed.

## Thou shalt not execute more than one twist per input

**Each keyboard or mouse input must execute at most one twist.**

If this were not the case, then the user could make a single key that executes an entire algorithm. This would essentially be a macro, which is undesirable for speedsolving.

Exception: If a key is bound to a macro (and the user is not doing a macroless speedsolve) then of coures that key may perform multiple twists.
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ nav:
- 3. Projective GA: hsc/internals/pga.md
- 4. Conformal GA: hsc/internals/cga.md
- 5. Slicing: hsc/internals/slicing.md
- Rules: hsc/rules.md
extra_javascript:
- javascripts/mathjax.js
- https://polyfill.io/v3/polyfill.min.js?features=es6
Expand Down

0 comments on commit 48077fa

Please sign in to comment.