Show HN: I made a game to help me learn Italian Vocab
github.comRecently I decided that I wanted to learn some basic Italian but I then realized that one of the major hurdles that came with that was needing to memorize a large quantity of vocabulary in order to hold a basic conversation. I could have just signed up for some flashcard website and used that to study but I decided that was a little boring and I also wanted to have a short but fun programming challenge.
This is where my inspiration for Astrocards came to mind: I remember there being a game like that on Quizlet (I think it was Quizlet?) some years back but I wasn't able to find it anymore but I remember liking that game so I decided it would be a fun project to re-implement it but as a desktop app (and with some fancier graphics). For extra fun I decided to write it in Rust.
The basic idea behind the game is that a stream of asteroids would fall down the screen and they would have flashcard terms on them and you would have to quickly type the answer to destroy that asteroid. You have to destroy the asteroids before they hit the bottom or else you suffer some damage. Five hits and it's game over! There are also red asteroids that damage you if you get them wrong and cause a game over if they hit the bottom of the screen.
I also made sure this game was somewhat customizable to allow for your own custom flashcard sets, if you wanted to create your own set simply create a file in the `sets/` folder that follows the following format:
# Comments look like this
"flashcard_set_name" {
"question" = "answer";
}An example:
"math" {
# Addition
"1 + 1" = "2";
"2 + 2" = "4";
# Multiplication
"2 \* 2" = "4";
"3 \* 5" = "15";
}This way you could create sets not just related to Italian (in fact I included some other flashcard sets not related to Italian in the release as well). I've also included a "Learn Mode" to help with reviewing the entire deck in a less "game-y" way.