User:Reversedragon/Wavebuilder/2410-22 wave-score
Can anyone help add my "wave score"?[edit]
[The following entry was "posted" (and automatically removed by moderator bots) on a subreddit for Infinite Craft.]
I've been idly working on a parallel combination game called "wavebuilder". That part mostly isn't important, but in the process I created a numerical scoring system for elements, and I'm wondering if anyone who is already familiar with Firefox extensions (or even Chrome, but I definitely want a Firefox one) could add this scoring system to an extension like Infinite Craft Helper. (It might also be neat to see on a database like InfiniBrowser.)
Basically it works like this:
- An element's sum starts at 1 and is calculated as the sum of the two elements that created it. If the same element is combined twice, one of them is considered to have a sum of 1.
- An element's moves count is simply the number of combinations required to create it, measured as the longest path from a parent element plus 1.
- An element's score is listed as sum:moves, like this:
Gargoyle 14:6
- I also sometimes found it interesting to list elements with their largest possible sum:
Airship = 14:8 / 85
- I also sometimes found it interesting to list elements with their largest possible sum:
- I usually just call this system the "wavebuilder score", although it could maybe be called the "wave score" or something.
- In my opinion the "canonical" score for an element is the lowest one — within reasonable limits of a palette of ~2000 elements or less.
- (This would mean that to be properly accurate, the extension would have to recalculate all the elements that depend on a given element, but that's a problem for whoever wants to code in JavaScript. I haven't actually coded this into my program yet.)
If you can understand Lisp, these are the exact algorithms currently used for sum and moves:
(defun hyle-sum-+ (a b) ; add up element sums to produce result sum (max ; out of these two values... (if (equal (hyle-id a) (hyle-id b)) ; if the same element is used twice... (+ (hyle-sum a) 1) ; ...count one as a basic turn-1 element (+ (hyle-sum a) (hyle-sum b))) ; ...otherwise add their scores 1)) ; ...return either the sum or a number no less than 1 (defun hyle-moves-+ (a b) ; add up element moves/turns/"plies" (+ 1 ; each new combination adds exactly one move to... (max (hyle-moves a) (hyle-moves b)))) ; the single element of the two with the greatest number of moves.
I think I'm most interested in seeing how ridiculously huge the sums on people's First Discoveries get, although this has many other possible uses, like finding the smallest sum or moves score for an element (which is basically what I designed it for).
If you have any thoughts on how to improve this scoring system such as other metrics to add — maybe there's some great insight from advanced mathematics on networks of combining elements that I missed? maybe there are crazy patterns to First Discoveries I didn't think about? — feel free to share them. I would gladly add a good metric to wavebuilder for what it counts for (the project is very unfinished), but in general I feel like Infinite Craft guides need better analysis tools so we can really start finding and discussing interesting patterns.
[This is taken from one of the prototype dictionaries within the Wavebuilder code repository.]
- the point value of every concept (
:sum
) is either 1 or the sum of the previous two concepts' point values. - elements also have a
:moves
number shown after the colon, which is the raw number of actions required to reach the element after each previous element already exists. - a concept's "canonical" point value is considered to be the lowest sum required to create it, but I have also recorded the highest possible sums I know of to create particular concepts mostly just for fun.
- a third possible metric is "cost", which is the total number of unique elements required to create an element.