The “base” ability of this card triggers if it was face up at the start of the turn, but wouldn’t that trigger on every encounter of this card? (Other than the first one of course) That would result (in theory) in infinite rotation, since at some point both “if at the atart of the turn this side was active” and “if at the start of the turn this card was face up” effects would be active and keep trigerring, no?
olus2000
Creator of
Recent community posts
Great stuff! Would be nice if the “Next Level” button consistently scrolled to the “Level Goal” paragraph. Currently it sometimes scrolls all the way up and sometimes doesn’t at all, and I couldn’t find any regularity.
Edit: I’m almost done, and on the final two levels limit on the test simulation is not enough. I had to add redundant fractions for moving hundreds of exponents because moving 765 of them one by one (for the 2^567 reversal) exceeded step limit.
Edit2: It can’t be just the limit, as the 2^1234 case terminates within 1000 steps but the test case reports a loop:
My current reversing program (first rule to make 2^567 terminate in time):
3^100*11/7^100*11, 3*11/7*11, 5*11/2^10*11, 7*19/2*11, 13/11, 7*19/2*19, 17/19, 7^10*17/3*17, 2*17/5*17, 11/17
A loop is also reported when I cheat and enter a rule 3^4321*13/2^1234*11
, suggesting it may have something to do with number sizes. Is the source for this available?
Not really an answer to my question, but a solution to my problem: I found a way to store mutable state. Using closures it’s possible to write “constructors” that return “objects” which have persistent mutable state, and calling “methods” of the “object” will change its state for all references to the object. Here’s an example of a stack constructor I’m using in my current project:
on new_stack do
state: ()
("stack","push","peek","pop") dict
(on _ do state end
,on _ x do state[count state]: x end
,on _ do (-1 take state)[0] end
,on _ do ans:-1 take state state:-1 drop state ans[0] end
)
end
This method is used in the example module in the documentation, although outside the function so it only creates a single global mutable state.
Edit: A universal minimal mutable variable:
on new_var state do
("get","set") dict
(on _ do state end
,on _ new do state:new end
)
end
Is there a good way of returning multiple values from a function? For now the best I have is to pack them in a list and manually unpack to variables. Something like Lua’s unpacking would be really handy, but it conflicts with the current syntax: a, b: 1, 2
is a list of a, 1, 2
and assignment of 1
to b
. In a world of pure functions it’s really hard to avoid multiple output.
I made a small app for flash cards. It lets you edit the front and back of a card and then shows you the cards asking did you know what was there, SuperMemo style. It has a crude algorithm for picking which card to show next based on how long ago you saw it last and how well you know it.
The hosted deck has 5 cards with basic Polish to Russian words, but is tweakable to display any pair of texts without going into the scripts. The major change you may want to make is to change the font of back_field
on the second card to the normal one.
Instructions are available inside, ask if you have any more questions.
What is a good way to order a query by two values? I’m making a flash-card deck and want to sort the cards based on some “score” I calculate, and if they’re equal fall back on the time they were last accessed. Tupling the values is not an option, since anything but an integer will be converted to string for comparison. I could just do that with nested queries, but that doesn’t feel very good.
Great start! I had a blast playing later levels and some unofficial (or not yet official?) levels given to me on discord. Current set of levels has a bit of a low difficulty for me, but I imagine for an average player it can be a good thing.
If the game gets some polish and more levels, especially on the harder side, it will be a great addition to anyone's puzzle collection.