Skip to content

movtigroup/cpp-nodejs-html

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎮 بازی سنگ، کاغذ، قیچی – Full Stack با C++, Node.js و HTML/JS

📌 توضیحات پروژه

این پروژه یک بازی سنگ، کاغذ، قیچی آنلاین با استفاده از C++ برای سرور، Node.js برای پراکسی و HTML/JS برای کلاینت وب طراحی شده است. ارتباط بین کلاینت و سرور از طریق WebSocket و سوکت نویسی TCP انجام می‌شود. همچنین با استفاده از Docker Compose، تمامی سرویس‌ها به‌صورت مجزا و یکپارچه قابل اجرا هستند.


🚀 معماری پروژه

🔹 ساختار کلی

project-root/
├── docker-compose.yml
├── server/       # سرور C++ (سوکت نویسی TCP)
│   ├── Dockerfile
│   └── main.cpp
├── proxy/        # پراکسی Node.js (WebSocket Server)
│   ├── Dockerfile
│   ├── package.json
│   └── server.js
└── client/       # کلاینت فرانت‌اند (HTML/JavaScript)
    ├── Dockerfile
    ├── index.html
    └── app.js

🔹 نقش هر بخش

  • 🔵 سرور (server/main.cpp) → دریافت درخواست بازی از کلاینت و پردازش نتیجه به کمک سوکت نویسی TCP
  • 🟢 پراکسی (proxy/server.js) → پل ارتباطی بین کلاینت‌های وب (WebSocket) و سرور C++
  • 🟡 کلاینت (client/index.html & app.js) → ایجاد رابط کاربری تعاملی برای بازی

⚙️ راه‌اندازی و اجرای پروژه

🔹 1. نصب Docker و Docker Compose

اگر Docker نصب نیست، از دستور زیر در Linux استفاده کنید:

sudo apt update && sudo apt install docker docker-compose -y

در Windows و Mac، می‌توانید از Docker Desktop استفاده کنید.

🔹 2. اجرای سرویس‌ها

در دایرکتوری اصلی، دستور زیر را اجرا کنید:

docker-compose up --build

این دستور باعث راه‌اندازی تمامی سرویس‌ها می‌شود.

🔹 3. اتصال کلاینت

پس از راه‌اندازی، می‌توانید از مرورگر به آدرس زیر متصل شوید:

http://localhost

از طریق دکمه‌های سنگ، کاغذ و قیچی می‌توانید بازی کنید.


📡 جزئیات ارتباط بین سرویس‌ها

  • کلاینت فرانت‌اند از طریق WebSocket به پراکسی Node.js متصل می‌شود.
  • پراکسی Node.js درخواست‌ها را به سرور C++ ارسال می‌کند.
  • سرور C++ درخواست را پردازش کرده و نتیجه را برمی‌گرداند.

Architecture


🛠️ توسعه بیشتر

🔹 ویژگی‌های قابل افزودن

✔️ ذخیره نتایج بازی در پایگاه داده
✔️ ارتباط امن با استفاده از SSL/TLS
✔️ گرافیک بهتر در نسخه فرانت‌اند
✔️ حالت چند نفره برای رقابت آنلاین


📄 لایسنس

این پروژه تحت MIT License منتشر شده و برای استفاده و توسعه آزاد است.

🔗 توسعه‌دهنده: movtigroup
✉️ ارتباط: GitHub Repository


About

بازی سنگ کاغذ قیچی

Resources

Security policy

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published