chrisboyle / sgtpuzzles

Android port of Simon Tatham's Puzzles
https://chris.boyle.name/puzzles
Other
592 stars 167 forks source link

Group games #506

Open goyalyashpal opened 2 years ago

goyalyashpal commented 2 years ago

anyone interested in/thought about grouping the games based on some parameter??

go to this comment to see the grouping i came up with: https://github.com/chrisboyle/sgtpuzzles/issues/506#issuecomment-1221611585

JupiLogy commented 2 years ago

Can you give an example of what you mean?

goyalyashpal commented 2 years ago

like each of following mentions just one instance of similar games:

goyalyashpal commented 2 years ago

i had made a fairly detailed (imo 😅) grouping of games based on their similarity in basics/fundamentals so to say. It came out quite nicely. But it still needs some more polishing. should i share it in its current state?

i thought there could be multiple parameters too, but those felt kinda academic, and not much fruitful in improved UX either, so, i just sticked with above mentioned parameter which like i said, seemed to make sooo much sense to me.

parameter 1 (yes or former) 0 (no or middle one) greyish (kinda neither relevant or last one) seemed useful in general?
has local action? or serial/global action lots Sorting like, Alternating, Net, Netslide Flood, Guess, Inertia, Same game, Untangle no
Placing things vs manipulation vs numeric input lots -- do -- Sudoku like no
numerical constraints: in-body, edge, others lots Black Box, Patterns, Magnets, Tents, Towers, Tracks, Undead lots kinda yes
goyalyashpal commented 2 years ago

i have found it, i had made a fairly detailed grouping, like i said. but i was not able to find it. i have found it , will refine it in some days. thanks god i found it (:

goyalyashpal commented 2 years ago

So,

Regarding this particular order of subgroups:

Following is the table listing them.

Groups, subgroups, elements: Remarks/Comments:
(can be shown on game)
Comments:
(for here only)
1. Sorting like (3)
============
other name: Photo pieces
* 15, 16, Twiddle slide empty, cube like turns, rotate
2. Connectings (3+3+2=8)
=============
other name: Connecting ones
* Net, Netslide, Signpost slide empty, cube like turns, --
* Bridges, Loopy, Pearl
* Tracks, Tents tents is not a connecting one, but still
3. Filling like (4+4+2+2+3+2=17)
===========
entirely fill with:
* Filling, Palisade, Rectangles, Galaxies numbers/regions, loopy+filling, --. symmetry -- : name is enough
* Solo, Keen, Towers, Unequal sudoku like numbers sudoku, math-doku, skycrapers, --
* Pattern, Unruly b&w boxes, b&w boxes
* Dominosa, Magnets dominoes, dominoes
* Slant, Light up, Map diagonals, light, colors
* Flood, Same game
4. Alternatings (3)
=============
the neighbouring things switch on action
* Cube, Flip, Pegs
5. Others (2+2+3+1=5+3)
========
couldn't figure out a name
* Range, Singles blocking things
* Undead, Black Box light reflections
* Mosaic, Mines, Inertia inertia - not totally related, but works
* Guess
6. Not categorised (1)
================
* Untangle
Total: 40
=====

other categorisation: based on position of numeric hints

Note:

goyalyashpal commented 2 years ago

i wanted to make a multilevel tree map of above table, so that it can fit in the grid to show similar to the current launcher grid in the app, but couldn't accomplish that.

goyalyashpal commented 2 years ago

i will share any update on either of these in future...

goyalyashpal commented 2 years ago

also, i am not sure about how should i post the updates to the grouping shared above - i want to post it in a way which is easily trackable as to what changes i made (i.e. diff-able in some sense) - any suggestions on how can that be done?

abdulisik commented 1 year ago

As someone who has been playing all the games in the collection too many times for years, I think the categorization you proposed makes a lot of sense. It also acts as a nudge for a newcomer wanting to explore all the games. Instead of throwing too many choices on the screen, there'll be categories. Although confusing at first, this issue is an interesting proposal. I'd be eager to see Chris' opinions on it.

goyalyashpal commented 1 year ago

just for an explicit information, as i said before too, this was like first draft... it needs updation at various places.

some quick examples being:

i am projecting that it will take at least one more revision from my side, and i have idea for a yet another revision after that (though not as important as the immediate next one).

so, feel free to discuss it as much, but please dont implement it just yet.

goyalyashpal commented 1 year ago

one more criterion can be: playable with pen/paper... or in other words, the degree of dynamic-ness of gameplay with degrees being static, fully dynamic, better in dynamic (but static play is possible too),

the use cases being able to quickly move:

the backstory being:


found one equivalent criterion with wfc be:

the supercategory for these can be: solving strategy...

now ofcourse these records are begging to be put in some sort of labelled format, say in csv tables

goyalyashpal commented 3 months ago
Group Comments Nos
Galaxies, Filling, Rectangles, Palisade Fill with regions 4
Loopy, Slant, Pearl, Train Tracks, Bridges Single connected path 5
Untangle, Signpost Continuity of bridges, tracks resp 2
Tent, Lightup, Range Un/connected regions, Straight sights 3
Black Box, Undead Light reflections 2
Singles, Unequal, Towers, Keen, Solo Sudoku family: increasing difficulty 5
Unruly, Pattern B&W tiles 2
Mosaic, Mines, Inertia <Continuum w/ previous> 3
Dominosa, Magnets Two segmented tiles 2
Map, Flood, Same Game Misc 3
Pegs, Flip, Cube Alternatings 3
Guess Misc 1
Fifteen, Sixteen, Twiddle, Net, Netslide Similar gameplay 5
13 40

In the undirected graph below:

Image rendered using https://kroki.io/#try with graphviz's dot language.

simon-puzzles-launcher


The graphviz/dot source code for above graph

```dot digraph G { node [shape=rectangle] edge [dir=none] // compound=true; // rankdir = LR; // https://forum.graphviz.org/t/351/4 "adding-key-or-legend/" // subgraph clusterMain { mynodr [ style="point" penwidth="0" labelloc="t" labeljust="l"; label=<

legend
≈ <prop>similar <property>
specspecification, constraints, etc
>]; // } subgraph cluster_1 { label = "#fill"; galaxies -> rectangles [label="rects"]; rectangles -> filling [label="area"]; filling -> palisade [label="non-rects"]; } palisade -> loopy [label="grid-path"] subgraph cluster_2 { label = "#connected paths"; // rankdir = LR; loopy -> slant [label="≈ feel"]; slant -> bridges [label="≈ vertex spec;\n spanning tree"]; loopy -> pearl [label="single loop"]; pearl -> tracks [label="≈ prefills"]; } tracks -> signpost; bridges -> untangle [label="no overlap"]; bridges -> lightup [label="straight"]; bridges -> net [label="spanning tree"] slant -> tent [label="unconnect"]; # [ltail=cluster_2, lhead=cluster_3]; subgraph cluster_3 { label = "#unconnected regions"; tent; lightup -> range [label="straight"]; } range -> "black box" [label="put obstruction"]; range -> singles [label="put obstructions"]; subgraph cluster_4 { label = "#light reflections"; "black box"; undead; } subgraph cluster_5 { label = "#sudoku"; singles -> unequal [label="adjacent"]; unequal -> towers [label="inequality"]; towers; keen; solo; // towers -> keen; // [label="ranged\n constraint"]; // keen -> solo; } subgraph cluster_7 { // label = "..."; dominosa; magnets; } solo -> mosaic [label="blocks", style="dashed"]; subgraph cluster_6 { label = "#b&w tiles"; mosaic -> mines; unruly; pattern; } mines -> inertia; unruly -> map [style="dashed"]; subgraph cluster_8 { // label = "..."; net -> netslide [label="spanning tree"]; net -> twiddle [label="rotate"]; netslide -> sixteen [label="slide"]; fifteen -> sixteen [label="ordered"]; fifteen -> twiddle [label="ordered"]; } subgraph cluster_9 { label = "#adjacent colours"; map -> flood ->"same game"; } subgraph cluster_10 { label = "#flip-flops" pegs; flip; cube; } guess; // Fix alignments edge [style="invis"]; "black box" -> undead; towers -> keen -> solo; solo -> dominosa; // To bring mosaic & dominosa at same level dominosa -> magnets; pattern -> unruly; net -> fifteen; // Bring fifteen at a lower level: spread evenly pegs -> flip -> cube; // "same game" -> guess; } ```