פרויקט משחק שחמט מתקדם עם מערכת State machines, גרפיקה מבוססת OpenCV ותמיכה במקביליות.
KungFuChess/
├── shared/ # Shared code for all components
│ ├── core/ # Core game engine
│ │ ├── Game.hpp/cpp # Main game engine
│ │ ├── Board.hpp/cpp # Game board
│ │ ├── Piece.hpp # Game pieces
│ │ ├── State.hpp # Piece states
│ │ ├── Physics.hpp # Game physics
│ │ └── Common.hpp # Common definitions
│ ├── graphics/ # Graphics system
│ │ ├── Graphics.hpp/cpp # Graphics and animations
│ │ ├── GraphicsFactory.hpp # Graphics factory
│ │ └── img/ # OpenCV image system
│ ├── game_logic/ # Game logic
│ │ ├── Moves.hpp/cpp # Movement system
│ │ ├── CaptureRules.hpp/cpp # Capture rules
│ │ ├── PieceFactory.hpp # Piece factory
│ │ └── PhysicsFactory.hpp # Physics factory
│ ├── network/ # Network interface
│ │ └── NetworkInterface.hpp # Network interface
│ ├── observer/ # Observer Pattern system
│ │ ├── headers/ # Observer headers
│ │ ├── src/ # Observer implementation
│ │ └── run*.ps1 # Run scripts
│ ├── ui/ # User interface
│ │ └── Command.hpp # Game commands
│ └── utils/ # Utilities
│ └── json/ # JSON library
├── server/ # Game server
│ ├── network/ # Server network
│ │ ├── GameServer.hpp/cpp # Game server
│ │ └── GameServerLogic.cpp # Server logic
│ └── main_server.cpp # Server entry point
├── client/ # Game client
│ ├── network/ # Client network
│ │ └── GameClient.hpp/cpp # Game client
│ ├── ui/ # Client UI
│ │ └── Command.hpp # Client commands
│ └── main_client.cpp # Client entry point
├── assets/ # Game assets
│ ├── pieces/ # Game pieces (sprites)
│ ├── client_assets/ # Client assets
│ ├── sounds/ # Sound files
│ └── game_rules/ # Game rules
├── OpenCV_451/ # OpenCV library
│ ├── bin/ # DLL files
│ └── include/ # OpenCV headers
├── scripts/ # Build and run scripts
├── tests/ # Unit tests
├── docs/ # Documentation
├── CMakeLists.txt # Main build file
├── run_clients.ps1 # Run 2 clients
└── run_tests_fixed.ps1 # Run tests
- ✅ מצבי כלים מתקדמים (idle, move, jump, short_rest, long_rest)
- ✅ מעברי מצב מבוססי קבצי תצורה
- ✅ אנימציות sprites לכל מצב
- ✅ מערכת transitions מתקדמת
- ✅ תמיכה מלאה ב-OpenCV
- ✅ מערכת תמונות מודולרית
- ✅ אנימציות רציפות לכלים
- ✅ רקע ולוח משחק גרפיים
- ✅ מנהל אירועי משחק
- ✅ מערכת קול ואפקטים
- ✅ מעקב אחר תנועות ולכידות
- ✅ הכרזות קוליות
- ✅ חוקי שחמט מלאים
- ✅ מערכת לכידה מתקדמת
- ✅ תמיכה בכל סוגי הכלים
- ✅ פיזיקת משחק מדויקת
- ✅ משחק 2 שחקנים עם סמנים צבעוניים
- ✅ מערכת בדיקות יחידה מקיפה
- ✅ Mock objects לבדיקות
- ✅ כיסוי בדיקות רחב
- Windows 10/11
- Visual Studio 2019 או חדש יותר
- CMake 3.16+
- OpenCV 4.5.1 (כלול בפרויקט)
# הרץ את סקריפט הבנייה
.\scripts\build.ps1# 1. הרץ שרת (בחלון נפרד)
.\build\Release\server.exe
# 2. הרץ 2 לקוחות (אוטומטית)
.\run_clients.ps1
# או הרץ לקוח יחיד
.\build\Release\client.exe# הרץ Observer demo
.\observer\run.ps1
# או Observer פשוט
.\observer\run_simple.ps1mkdir build
cd build
cmake ..
cmake --build . --config Release# הרץ בדיקות
.\run_tests_fixed.ps1
# או ידנית
.\build\Release\tests.exe- שרת: מנהל את לוגיקת המשחק ומתאם בין הלקוחות
- לקוח: מציג גרפיקה ומקבל קלט משחקן
- Observer: מערכת מעקב ודיווח נפרדת
- שחקן 1 (לבן): מקשי חצים + Enter - סמן ירוק, בחירה כחולה
- שחקן 2 (שחור): WASD + רווח - סמן אדום, בחירה צהובה
- ESC: יציאה מהמשחק
- הרץ שרת ראשון
- הרץ 2 לקוחות (הראשון יהיה לבן, השני שחור)
- כל כלי עובר דרך מצבים שונים (idle → move → rest)
- אנימציות רציפות לכל תנועה
- מערכת קול ואפקטים
- מעקב אחר תוצאות המשחק
- P (Pawn) - רגלי
- R (Rook) - צריח
- N (Knight) - סוס
- B (Bishop) - רץ
- Q (Queen) - מלכה
- K (King) - מלך
- W/B - לבן/שחור
- Factory Pattern: יצירת אובייקטים מודולרית
- Observer Pattern: מערכת אירועים מבוזרת
- State Machine: ניהול מצבי כלים
- Dependency Injection: הפרדת תלויות
- SOLID Principles: עיצוב מודולרי ונקי
- C++17: שפת התכנות הראשית
- OpenCV 4.5.1: עיבוד תמונות וגרפיקה
- nlohmann/json: עיבוד קבצי JSON
- CMake: מערכת בנייה
- Catch2: מסגרת בדיקות
הפרויקט מוכן להרחבות:
- הוספת AI למחשב
- רשת מרובת משתתפים
- מצבי משחק נוספים (Kung Fu Chess)
- שיפורי גרפיקה ואנימציות
- מערכת שמירה וטעינה
- ודא שיש לך Visual Studio 2019+ מותקן
- בדוק שנתיב OpenCV נכון ב-CMakeLists.txt
- הרץ כ-Administrator אם נדרש
- ודא ש-CMake 3.16+ מותקן
- ודא שתיקיית assets/pieces/ קיימת עם כל הכלים
- בדוק שקבצי DLL של OpenCV נמצאים בתיקיית ההרצה
- הרץ מתיקיית הפרויקט הראשית
- ודא שקבצי config.json תקינים בתיקיות הכלים
# בדוק שהבנייה עברה בהצלחה
ls build/Release/
# הרץ בדיקות
.\build\Release\kungfu_chess_tests.exe
# בדוק נכסים
ls assets/pieces/assets/pieces/[PIECE]/states/[STATE]/config.json- הגדרות אנימציהassets/pieces/[PIECE]/states/transitions.csv- מעברי מצבassets/pieces/board.csv- הגדרות לוח
המשחק מדפיס מידע דיבוג לקונסול כולל:
- טעינת נכסים
- מעברי מצב
- אירועי משחק
- שגיאות
אתגר פיתוח- CTD BootCamp 2025