An fx-92 Scientifique Collège+ algorithmic interpreter for PC.
Go to file
Lephe 32fbcf143a
more atomic committing
* Proper coordinate rounding, as in Arond()
* Forgotten EOL now consumed if found (still optional)
* Convert unit tests images to 1-bit before comparing
* Much better unit testing script
* Add 17 test scripts from the 2019 TI-Planet and Planète Casio contest
  which consisted in reproducing an image with minimum code
2019-10-26 13:51:54 +02:00
doc update atomically (like a bomb) 2019-10-25 13:38:10 +02:00
fx92 more atomic committing 2019-10-26 13:51:54 +02:00
tests more atomic committing 2019-10-26 13:51:54 +02:00
.gitignore initial commit: most of the lexing and parsing work 2019-09-30 11:29:05 +02:00
README.md more atomic committing 2019-10-26 13:51:54 +02:00
fx92.py update atomically (like a bomb) 2019-10-25 13:38:10 +02:00
tests.py more atomic committing 2019-10-26 13:51:54 +02:00

README.md

Python-based fx-92 Scientifique Collège+ interpreter

This is an alternate imlementation of the fx-92 SC+ Algorithmic application. It interprets programs read from QR code URLs or text files, and renders images using the SDL.

Requirements:

  • Python ≥ 3.5 (may work with older versions)
  • PySDL2 (pip3 install --user PySDL2)

Running programs

To run programs, execute fx92.py and specify an input file:

./fx92.py [-s|-u] <input file> [options...]
  • If the input file contains text instructions (for example goto 12,35), specify -s (this is the default).
  • If the input file contains a QR code URL (for example https://...F908313200333500), specify -u.

The input can also be set to -, in which case the interpreter reads from standard input. Typical use case is for URLs:

echo -n "F908313200333500" | ./fx92.py -u -

Output options

  • --scale <n> lets you set the (integer) scaling ratio of the output.
  • --save <bmp> will save a screenshot of the output to the designated file.
  • --quiet will "hide" the window while executing. (At the moment the window is still shown, but closed immediately, due to SDL subtleties.)
  • --stream <dir> will stream window frames as a series of bitmap images to the specified directory. Use your favorite tool to make a GIF.

Tests

A few units tests are provided. Run tests.py to execute them.