TI84+ CE Minesweeper banner

TI84+ CE Minesweeper

3 devlogs
7h 25m 46s

Updated Project: I added more win conditions (flagless runs), improved performance, increased the board size, fixed bugs and added a timer and permanent high score list for QoL.
Run the classic game of Minesweeper on your TI84+ CE calculator.
Th…

Updated Project: I added more win conditions (flagless runs), improved performance, increased the board size, fixed bugs and added a timer and permanent high score list for QoL.
Run the classic game of Minesweeper on your TI84+ CE calculator.
The game is written completely in C++/C, no Python needed. You will however need a way to run binary programs.

This project uses AI

AI was used in the original (pre-flavortown) version to implement parts of the game logic. However, it was almost always used simply for repetetive tasks (like the switch statement in draw.c). Most new code is handwritten, and the game logic entirely replaced. AI assistance was also used in debugging.

Demo Repository

Loading README...

Linus

I added a How to play guide to the README and wrote code formatter styles. Also, a new flake is used for the build tools. This sadly builds LLVM from source (although it shouldn’t), but that result is cached.

Attachment
0
Linus

I rewrote almost all the logic in C++.

  • A cell is now a class object, and handles actions itself.
    It also stores more information, such as its own position, the number of neighboring flags and mines, etc. The previous CellState enum has been broken up into the new CellState, consisting only of HIDDEN, REVEALED and FLAGGED, and the boolean _isFlag/isFlag(). Along with other global counters for flags and mines, this leads to major optimizations, which are needed for the increased field size.
  • As a side effect, the win condition should now also allow flagless runs.
  • Saves are now actually written back to the Archive (Flash).

Regarding the screenshot: I am not playing a flagless game of 12x12 Minesweeper. If anyone does so, mention me on Slack.

Attachment
0
Linus

I fixed an exploit a friend found through code analysis, which may have allowed the player to spam flags and win. The game now counts flags placed and compares that number with the total number of mines.
Also, I added a stopwatch and the high score list to the sidebar, so you can always see if you’re on a PB pace or if you should give up. To make room, I reduced the scale and increased field size to fill the empty space. Sadly, the unoptimized parts of the game now run like trash. I will need to rewrite them.

Attachment
0