Project Ideas
A. Math
Distance Tool
Calculate the distance between 2 points in 2 dimensions, 3 dimensions, and 4 dimensions. Calculating Distance Between Points in N Dimensions
First N-Digits of Pi
Calculate the first n-digits of pi, using whatever techniques you can find. Try to calculate at least 5 digits of pi.
Text to Binary
Create a function that can take any string (or char array) as input, and return that text in binary.
Text to Hexadecimal
Create a function that can take any string (or char array) as input, and return that text as its hexadecimal representation.
Prime Number Checker
Write a program that determines if a given number is prime or not.
Factorial Calculator
Calculate the factorial of a given non-negative integer.
Simple Statistics
Calculate the mean, median, and mode of a set of numbers.
Prime Number Checker
Write a program that determines if a given number is prime or not.
B. Color
RGB to HSL Converter
Take RGB values input (from 0-255), and convert them into HSL (Hue, Saturation, Lightness) (Output values normalized (between 0-1) or Output values scaled back to (360 degrees, 100%, 100%)) Convert RGB to HSL
RGB to HEX Converter
Take RGB values input (from 0-255) and convert into hexadecimal representation, complete with the ‘hash’ symbol. (e.g. rgb(255,255,255) = '#ffffff') Convert RGB to Hex
C. Game
Tip
Consider using libraries like
curses(for terminal control) orRich(for text formatting and styling) to enhance the visual appeal of your console games.
Tetris
Create a simple game that drops different shapes of blocks from the tops of the screen. The player then has to guide the block left and right to the bottom of the screen. The Tetris block should detect collision between the walls and other Tetris blocks. The player should also be able to hold down button, to make the Tetris block drop faster. If a horizontal row gets fully filled with Tetris blocks, then remove those Tetris block that are apart of the line. If the Tetris blocks go past the top of the screen, game over.
Tic Tac Toe
Create a simple interface for playing tic tac toe. 2 player or single player with a computer player. Can either make tic tac toe in the terminal or with a GUI.
Hangman
The game should be able to generate a random word for playing hangman. When the user select a letter from the list of available letters, if that letter is in the word, we reveal each letter that matches in the word and proceed to mark out that letter from the available letters. If no match in a word, that letter is marked out from the available letters, and the next stage of hangman is added to the game. (Rope, Head, Body, Left Leg, Right Leg, Left Arm, Right Arm). If the player guesses the word before timer or set amount of turns then the player wins.
Pong
Recreate the iconic Pong game with two paddles and a bouncing ball.
Breakout
Build a Breakout clone where players use a paddle to bounce a ball and break bricks.
Snake
Implement the classic Snake game where players control a snake that grows longer with each food item consumed.
Mastermind
Create a code-breaking game where players try to guess a secret code by making deductions based on feedback.
Quiz Game
Create a trivia game with multiple categories and difficulty levels. The user should be able to select a category, and difficultly level, and then answer a series of questions. At the end of the game, the program should give the player a percentage score based on how many they got correct.
D. Physics
E. Sound
F. Art
Image to ASCII art
Should be able to accept an image, and convert that image into a representation of the pixels, using ASCII characters.
Paint Clone
Create a simple application that mimics the basic features of Microsoft paint. Users should be able to draw on a canvas with at least 1 color, and should be able to save their drawings.
G. Communication
H. Web
Port Scanner
Create a simple program that simple scans the ports of the computer and shows which ones are being used.
Youtube Video to MP3
Should be able to input a video link from youtube, and should be able to extract the audio into an mp3 and save it.
Static Website Generator
(Scriptable Templates + Content → HTML + CSS). Should be able to take some plain text content, some html templates, and create static html files (and css if needed) for each page of content.
I. Cryptography
Password Generator
Create a simple program that can generate password of varying levels of security. Or just one level of security, super secure. Should always generate a new password.
Other Resources
