https://github.com/dexter-xd/project-box
C projects: algorithms, games, and networking
https://github.com/dexter-xd/project-box
algorithms c cli-game projects socket-programming
Last synced: about 1 month ago
JSON representation
C projects: algorithms, games, and networking
- Host: GitHub
- URL: https://github.com/dexter-xd/project-box
- Owner: dexter-xD
- License: mit
- Created: 2025-05-08T19:10:16.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2025-05-12T17:51:45.000Z (about 1 month ago)
- Last Synced: 2025-05-13T14:23:38.648Z (about 1 month ago)
- Topics: algorithms, c, cli-game, projects, socket-programming
- Language: C
- Homepage:
- Size: 40 KB
- Stars: 97
- Watchers: 2
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# C Programming Projects Collection
[](https://buymeacoffee.com/trish07)
A collection of C programming projects designed for beginners to learn and practice various programming concepts, from basic algorithms to network programming. Each project is self-contained and includes its own documentation and build system.
## Projects Overview
### 1. [SHA-512 Implementation](SHA-512/)
A cryptographic hash function implementation that demonstrates:
- Bit manipulation
- Complex algorithms
- Memory management
- File I/O operations### 2. [HTTP Server](http-server/)
A basic HTTP server implementation that covers:
- Socket programming
- HTTP protocol basics
- File serving
- Network communication### 3. [UDP Server-Client](udp-server-client/)
A simple UDP-based communication system that teaches:
- UDP socket programming
- Client-server architecture
- Network protocols
- Message exchange### 4. [Port Scanner](port-scanner/)
A network diagnostic tool that demonstrates:
- TCP socket programming
- Network scanning techniques
- Error handling
- Command-line argument parsing### 5. [Ping Implementation](ping/)
A custom ping utility that covers:
- ICMP protocol
- Raw socket programming
- Network diagnostics
- Time measurement### 6. [Tic-Tac-Toe](tic-tac-toe/)
A classic game implementation that teaches:
- Multiplayer game server
-Socket programming
- Game logic
- User input handling### 7. [Chat System](chat-system/)
A real-time chat application that demonstrates:
- TCP socket programming
- Multi-threading
- Real-time communication
- Client-server architecture### 8. [Lexical Analyzer](lexical-analyser/)
A simple compiler front-end component that demonstrates:
- Tokenization of source code
- Parsing techniques
- Compiler design principles
- String manipulation### 9. [Arithmetic Compiler](arithmetic-compiler/)
A simple compiler that takes arithmetic expressions as input and generates assembly-like code:
- Lexical analysis (tokenization)
- Parsing and evaluation of expressions
- Assembly code generation
- Compiler construction fundamentals### 10. [Asteroid Game](asteroid-game/)
A terminal-based game where you control a ship to avoid falling asteroids:- Game state management
- User input handling
- Terminal-based graphics
- Real-time gameplay mechanics
- Simple collision detection## Getting Started
Each project in this repository is designed to be self-contained and includes:
- Source code
- Makefile or CMake configuration
- README with build and usage instructions
- Implementation detailsTo get started with any project:
1. Navigate to the project directory
2. Read the project's README.md
3. Follow the build instructions
4. Run the program as described## Prerequisites
- GCC compiler (for C projects)
- G++ compiler (for C++ projects)
- Make utility
- CMake (for C/C++ projects)
- Basic understanding of C/C++ programming
- For network projects: understanding of basic networking concepts## Recommended Book
To get started with C programming, I recommend this comprehensive book:
[The C Programming Language](https://amzn.to/3F2Y1Zl) - A must-have resource for learning C programming fundamentals and best practices.## Learning Path
These projects are arranged in order of increasing complexity:
1. Start with Tic-Tac-Toe for basic programming concepts
2. Move to SHA-512 for algorithm implementation
3. Try the UDP Server-Client for basic networking
4. Progress to HTTP Server and Chat System for more complex networking
5. Finally, explore Port Scanner and Ping for advanced networking concepts## Contributing
Feel free to:
- Report bugs
- Suggest improvements
- Add new features
- Create new projects
- Improve documentation## License
This project is open source and available for learning purposes.
## Note
Some network-related projects (Port Scanner, Ping) require root/administrator privileges to run due to the use of raw sockets. Always use these tools responsibly and only on networks you have permission to test.