Click here to Skip to main content
16,004,574 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I want to expand my knowledge as a beginner programmer in c++ (currently in my sophomore year pursuing a computer science degree), I want to turn my terminal into a TUI to be able to play low-level graphic games out of the terminal window, such as pong, tetris, battlehsip, snake, checkers, hangman, wordle, tic-tac-toe, rock-paper-scissors, etc I have built some of the programs already and want to take the next step into development.

What I have tried:

Which C++ library would you recommend learning that would be capable of implementing this? Ive heard of a few so far: PDcurses, SFML (simple and fast multi-media library), imtui, FTXUI, Final Cut (found these on a reddit forum stored on github), etc. Please give me your best advice. Thank you.
Posted
Updated 7-Jun-24 4:02am

1 solution

PDcurses would be a good choice if you are only creating text-based applications. It is good for simple, text-based games such as Hangman, Wordle, Tic-Tac-Toe and Rock-Paper-Scissors and is also platform-independent.

If you also want to meet higher demands, SFML would be a good choice as a multimedia library that offers 2D graphics as well as audio and network communication. For more complex 2D games with graphics and animations such as Pong, Tetris, Snake and Checkers, where more than just text would be good.

FTXUI would be another text-based alternative. Due to limited platform independence, Final Cut and ImTUI would only be suitable to a limited extent.

Another interesting C++ library for platform-independent graphical user interfaces would be wxWidgets. The library also offers popular language bindings for Python, Ruby, Lua, Perl and several other languages. What I like here is that applications can have a native look for the respective system instead of emulating the standardized (foreign) graphical user interface. It is also free, open source and has been available for a long time.
 
Share this answer
 
v2

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900