NumGuess is a network-based number guessing game built using C# and Python.
The system implements a client-server architecture where a C# server handles game logic, and both C# and Python clients can connect to it.
This project demonstrates socket programming, cross-language interoperability, structured server-side session management, and collaborative development.
The C# implementation (Client + Server) was developed in collaboration with Marc.
The Python client was independently developed by Sandip Bohara Chhetri.
This project showcases both collaborative development and independent cross-language extension.
Clients:
├── C# Client
└── Python Client
Both connect via:
└── TCP Socket Connection
Server:
└── C# Server
├── Random Number Generator
├── Game Logic Engine
└── Sends Response Back to Client
- Client-server architecture
- C# server handles core game logic
- Supports multiple client implementations (C# and Python)
- Random number generation on server
- Real-time guess validation
- Feedback system:
- "1 = Too High"
- "-1 = Too Low"
- "0 = Correct"
- Continuous guessing loop
- Cross-language socket communication
NumGuess/
│
├── Marc_Sandip_Server/
│ (C# Client + Server – Collaborative)
│
├── NumGuess_Client_Py/
│ (Python Client – Independent)
│
├── assets/
│
├── GDIDrawer.dll
├── MHannah_ConnectLib.dll
├── generic_connection_dialog.dll
│
├── .gitignore
└── README.md
- Language: C#
- Framework: .NET
- Networking: TCP Socket Programming
- Libraries:
- MHannah_ConnectLib.dll
- generic_connection_dialog.dll
- Generate random number
- Accept client connections
- Process incoming guesses
- Send evaluation responses
- Maintain game session state
- Connect to server
- Send guesses
- Receive feedback
- Display results to user
- Open solution in Visual Studio
- Build the project
- Run the server
- Run the C# client
- Start guessing
- Language: Python 3
- socket module
- Connect to C# server
- Send guesses
- Receive and display feedback
- Maintain interactive loop
Navigate to NumGuess_Client_Py directory and run:
python NumGuess.py
- Client-server architecture
- TCP socket communication
- Cross-language interoperability
- Network session handling
- Distributed system design
- Random number generation
- Conditional and loop control flow
- Collaborative software development
- True multi-client simultaneous gameplay
- GUI version (WinForms / Tkinter)
- Score tracking system
- Leaderboard persistence
- Logging system
- Error and timeout handling improvements
- Authentication layer
This project was developed to strengthen understanding of:
- Socket programming
- Network-based application design
- Cross-language system integration
- Distributed game logic architecture
Sandip Bohara Chhetri
Computer Engineering Technologist
Marc C# Client/Server Collaborator