Honestly this is just me playing with ncurses, but in theory a town for ~town.
Compile with g++ main.cpp -lncurses.
g++ main.cpp -lncurses