For my ECEN-320 class, we were assigned to just "make something cool" for these ESP-32 based handheld game things. I (along with two friends) decided to make battleship. I did all of the AI code, and a decent amount of game and UI code. It doesn't build, unfortunately, since I released it without a lot of the other libraries it relies on (both stuff written for the class, and some standard libraries for LCD stuff...) I didn't want to include any code that I didn't write myself (given I don't know what licence a lot of this stuff is under).
Most of the comments are also mine.