Solitaire Chess
About
68 solitaire chess puzzles. Drag and drop. Mouse only. Every move must be a capture, no check, king can be captured. Win by leaving only one piece. Lose if no remaining moves and more than one piece.
There are two modes: puzzle rush and relax mode. Relax mode is recommended, but if you get to the end you don't get the winner screen and no points. In relax mode you can navigate to any puzzle by using the selector at top left and clicking "GO". There is no clock or points and progress is not saved.
In puzzle rush mode, points are based on how much time is left when a puzzle is completed. Each failure or reset of puzzle is minus 50 points. You can go negative and progress is saved. Clicking "start fresh" will delete all progress.

Mate in 2 -- Vol. 3
About
- 25 Mate-in-2 puzzles.
- Mouse required.
Controls
- left mouse button : select / deselect pieces, squares or buttons.
- right mouse button: show hint-square during puzzle. hide modal after puzzle.
Upgrades from previous volumes
- mouse makes for much better user experience.
- progress saved. start at last puzzle completed.
- white/black to move instead of just one color.
- improved wrong-move animation.
- expanded color palette.
- music (with easy on/off option at end of each puzzle).
Known bugs
- if cart is left idle during a puzzle for a long time (like hours and hours), the wrong-move sprite animation gets messed up and instead of jiggling, the piece just drifts off to the side until returning to it's square. This is because
t()is used withcos()to create the shake effect. Whent()gets too big, it causes problems. It is within my tolerance level and so I don't mind. It never happens unless I forget that it is running all afternoon. Because this cart saves progress, it is no big deal to restart the cart. Or even play as-is since gameplay is not affected. In short, its a non-issue.

little help?
A sprite shakes if a certain condition is met and function called. I'd like to play a sound effect while it shakes. But I cant seem to make it play the whole sound effect because it starts over with each update and buzzes rather than plays. I can get the sound effect, or I can get the animation, but cant seem to make them both happen at the same time.
I've tried many different variations and schemes, but here is one example:
function _init() correct = nil tics = 30 end function _update() if (correct == false) shake() end function _draw() draw_stuff() end function shake() sfx(0) tics -= 1 if tics > 0 then mysprite.x = mysprite.x + cos(t()/.1) --makes it shake back and forth else correct = nil tics = 30 end end |
I can see why it doesn't work; because it is calling the sfx(0) again and starting over every time shake() is called. But what is the right way of thinking about playing the sound along with an animation? I read about coroutines, but am not sure if that is actually needed for something this basic. I'd also like to just be able to call the function whenever I want and not bother checking in _update() every frame.
Variations: The Stafford Gambit
Credits
-
These variations come from the Eric Rosen youtube channel.
(watch the link while practicing with this cart for maximum understanding) - Big thank you to @Heracleum for kindly going through one of my previous variation carts and teaching me how to properly make a data table. Its made more variations possible.
About
The Stafford Gambit is an objectively bad opening for black. But white has to play accurately which is very hard to do, giving lots of attacking chances, pins, traps, and nasty mates. Natural moves for white lead to certain doom. If you learn these 20 variations inside and out you will confuse many opponents and have a blast doing it. If your opponent really knows what they are doing, you may be in serious trouble!

Variations: The Vienna
Description
16 variations of the Vienna opening played as white. These lines are chosen to be fun, for their attacking chances and dynamic play. They include common mistakes by black and how to punish them as well as how to respond to good play from your opponent. Practicing with this cartridge will give any player a good start to creating big problems for black with the Vienna!
Features
While none of white's moves are dubious, they are not necessarily the top engine recommendations. Because there is no 'right' move, a hint can be requested (see Controls). After completing a variation, the Stockfish evaluation is given. The player then has the options to either repeat the completed variation, move on to the next, or have the computer select a variation at random. The pause menu gives similar options but can be accessed at any time allowing the player to navigate to a specific variation or move to a new, random variation.

a = {x=10, y=25}
b = a
b.x = 99
print(a.x) |
This prints 99 but I assumed it would print 10.
I wrote code with a start table. Then I set a position table equal to the start table. I was hoping to update the position table but reset the position back to the start point at any time I wanted. I tested this out in php to make sure I wasn't crazy and it worked like I expected. I tried it out in strict Lua but it gave the result above. Why does Lua change the a table when I only changed the b? How do I deal with this?






3 comments

