1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2025-11-17 14:17:10 +00:00

arbiquotient:: help message

This commit is contained in:
Zeno Rogue
2025-10-10 10:19:46 +02:00
parent 3b03b1dfcc
commit 9ca266f135
4 changed files with 71 additions and 0 deletions

View File

@@ -595,6 +595,8 @@ EX void show_dialog() {
dialog::add_action([] { disable_quotient_data(); });
}
else dialog::addBreak(100);
dialog::addItem("help", 'h');
dialog::add_action([] { open_url("https://github.com/zenorogue/hyperrogue/blob/master/tessellations/sample/README.md"); });
dialog::addBack();
dialog::display();
}

View File

@@ -0,0 +1,18 @@
## Euclidean square tiling
e2.
angleunit(deg)
unittile(90,90,90,90,|0)
c(0,0,0,0,0)
repeat(0, 4)
#/ four self-connected edges
quotient(0,1,2,3)
#/ four mirrors
quotient(0^,1^,2^,3^)
#/ tiny torus
quotient(2,3,0,1)
#/ whirlwind
quotient(1,0,2^,3^)
#/ three squares
quotient(0,4,8,10^,1,11^,9,7,2,6,3^,5^)

View File

@@ -0,0 +1,29 @@
## just the {7,3}
h2.
# we compute the edge length of the Archimedean tessellation we are using
distunit(arcmedge(7,7,7))
# note: subsequent esults of arcmedge are given in terms of distunit
# regangle(A,B) returns the internal angle of a B-gon with sidelength A
let(u7 = regangle(1, 7))
unittile(u7,u7,u7,u7,u7,u7,u7,|0)
c(0,0,0,0,0)
c(0,1,0,1,0)
c(0,2,0,2,0)
c(0,3,0,3,0)
c(0,4,0,4,0)
c(0,5,0,5,0)
c(0,6,0,6,0)
#/ single heptagon
quotient(0,1,6,3,5,4,2)
#/ three heptagons
quotient(0,7,14,4,3,20,8,1,6,19,11,10,18,15,2,13,17,16,12,9,5)
#/ 12 heptagons
quotient(7,14,21,28,35,42,49,0,55,31,56,45,63,15,1,13,69,70,52,77,22,2,20,83,38,73,58,29,3,27,57,9,54,75,36,4,34,74,24,82,65,43,5,41,64,11,62,79,50,6,48,78,18,76,32,8,10,30,26,72,67,80,46,12,44,40,81,60,71,16,17,68,59,25,37,33,53,19,51,47,61,66,39,23)

View File

@@ -110,6 +110,28 @@ enable "configure FPP automatically", and also "make the tiles flat"; then leave
* If the tessellation is invalid, HyperRogue will invoke a debugger, which lets you see the tiles you have defined and move according to their connections. You can also invoke this debugger
maually with `debug(tile_index)`.
# Quotient orbifolds
You can also play on quotient orbifolds by using the "quotient space" option in the "experiment with geometry" menu. These quotient orbifolds can be loaded from the tes file, or generated
using the "auto-generate" option.
Mathematically, these orbifolds are obtained by picking a subgroup of the group of isometries of the tiling, and identifying the orbits of tiles as single tiles. It is not allowed to
create cone points and mirrors in the centers of faces (in other words, identify a tile with another rotation/symmetry of itself -- HyperRogue does not know how to deal with that), but
cone points on edge centers and vertices are allowed.
In the auto-generate menu, you can configure the limit on the search algorithm, "block" various kinds of singularities if you do not want them, disallow non-orientable quotients or
ones which identify tiles which are too close, disable deduplication (which removes duplicates which differ only by irrelevant aspects), and export the quotients obtained to a file.
If you move a bit before going into this menu, you can also "preunify" the tile and orientation the player character is currently on.
The exported file will include a copy of the definition of shapes, although it may look different due to listing all the numbers as floating point values, and include copies of shapes
(HyperRogue generates such copies to make football colorings work and avoid using reflections). Replace with the original definitions should be fine.
You can see the files `44.tes` and `73.tes` as examples of the format. The format consists of a line starting with `#/ description`, and then list all the connections of the first tile
in the orbifold, then all the connections of the second tile, and so on. Connections are indexed from 0, and every connection is simply the index of another edge it connects to.
If a connection is mirrored, the symbol `^` appears after the index. The first tile is always of the first type listed in the file, and the other tiles are always listed in the order
of appearance -- thus, for example, the second tile will be always the first connection of the first tile that does not connect to itself. This way, there is no need to list the types
of tiles.
# How to make the tessellations look good
Normally, when you choose to load a tes file, a game of HyperRogue is run on the tiling selected. Which might be not what you wanted. Here are some hints for making nice pictures.