משחק שחמט מתקדם בזמן אמת עם גרפיקה מתקדמת ואנימציות.
- גרפיקה מתקדמת - שימוש ב-OpenCV לרינדור מתקדם
- אנימציות דינמיות - כל כלי שחמט עם אנימציות מותאמות אישית
- מערכת פיזיקה - תנועות ריאליסטיות וחלקות
- מערכת קול - אפקטי קול לפעולות שונות
- ממשק משתמש אינטואיטיבי - בקרה קלה ונוחה
- מערכת ניקוד - מעקב אחר הישגי השחקנים
- לוג משחק - תיעוד מלא של כל המהלכים
- C++17 - שפת התכנות הראשית
- OpenCV 4.5.1 - עיבוד תמונה וגרפיקה
- CMake - מערכת בנייה
- JSON - קונפיגורציה ונתונים
- Design Patterns - Factory, State Machine, Publisher-Subscriber
├── my_cpp/ # קוד המשחק הראשי
│ ├── src/ # קבצי מקור
│ └── openCV_451/ # ספריית OpenCV
├── my_cpp_pub/ # מודולים ציבוריים
├── pieces/ # נתוני כלי השחמט
│ ├── BB/, BW/, KB/... # כלים שונים עם אנימציות
│ └── board.csv # הגדרת הלוח
├── pic/ # תמונות המשחק
├── sounds/ # אפקטי קול
└── CMakeLists.txt # קונפיגורציית CMake
- Windows 10/11
- Visual Studio 2019+ או MinGW
- CMake 3.10+
- OpenCV 4.5.1
-
שכפול הפרויקט
git clone https://github.com/chaya2350/real-time-chess.git cd real-time-chess -
בנייה עם CMake
mkdir build cd build cmake .. cmake --build . --config Release
-
הרצת המשחק
./RealTimeChess
- המשחק מתחיל עם מסך פתיחה
- משתמש 1 פועל באמצאות חיצים + אנטר משתמש 2 באמצעות ASDW + רווח לבחירת כלים
- מעבר אל כלי ואז בחירת המיקום הרצוי
- המשחק מציג מהלכים חוקיים בזמן אמת
- נצחון מוכרז אוטומטית
- Game - מנהל המשחק הראשי
- Piece - מחלקת בסיס לכלי שחמט
- Board - ניהול הלוח
- State Machine - מצבי כלים שונים
- Graphics Factory - יצירת אלמנטים גרפיים
- Physics Engine - מערכת פיזיקה פשוטה
- Factory Pattern - יצירת כלים וגרפיקה
- State Pattern - ניהול מצבי כלים
- Observer Pattern - מערכת ניקוד ולוגים
- Command Pattern - עיבוד פקודות משתמש
כל כלי שחמט כולל מצבי אנימציה:
idle- מצב מנוחהmove- תנועה רגילהjump- קפיצה (סוס)short_rest/long_rest- מנוחה קצרה/ארוכה
- מעקב אחר נקודות לכל שחקן
- תיעוד מהלכים בזמן אמת
- הצגת סטטיסטיקות משחק
הפרויקט מוכן להרחבות:
- הוספת בינה מלאכותית
- מצבי משחק נוספים
- רשת מרובת משתתפים
- עיצובים נוספים
חיה זנדר
- GitHub: @chaya2350
- Email: Cha182350@gmail.com
פרויקט זה מפותח למטרות לימוד ופורטפוליו.
פותח במסגרת לימודי הנדסת תוכנה מטעם Ultra Code