An open API service indexing awesome lists of open source software.

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

Awesome Lists containing this project

README

        

# C Programming Projects Collection

[![Buy Me A Coffee](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](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 details

To 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.