Đây là dự án phát triển một game giải đố dạng Wordscapes bằng C++ và thư viện SDL3. Người chơi nối các chữ cái để tạo thành từ và điền vào bảng ô chữ (crossword grid).
Số lượng thành viên: 3 người Thời gian dự kiến: 4–6 tuần
- Bảng ô chữ (crossword grid)
- Vòng chữ cái để nối chữ (letter wheel)
- Kéo chuột để tạo từ
- Kiểm tra từ đúng / sai
- Điền từ vào bảng ô chữ
- Hệ thống nhiều level
- Menu chính
- Nút trộn chữ (Shuffle)
- Hệ thống gợi ý (Hint)
| Thành phần | Công nghệ |
|---|---|
| Ngôn ngữ | C++ |
| Thư viện đồ họa | SDL3 |
| Load ảnh | SDL_image |
| Hiển thị chữ | SDL_ttf |
| Âm thanh | SDL_mixer (optional) |
/src
main.cpp
/core
Game.cpp
Input.cpp
TextureManager.cpp
/puzzle
Grid.cpp
LetterWheel.cpp
Level.cpp
WordValidator.cpp
/ui
Button.cpp
Menu.cpp
HUD.cpp
/data
LevelLoader.cpp
/assets
images
fonts
levels.json
dictionary.txt
Tạo nền tảng engine để game có thể chạy.
- Setup project C++ + SDL3
- Cài SDL_image và SDL_ttf
- Tạo cửa sổ game
- Tạo renderer
- Viết game loop
- Viết hệ thống input
- Render text bằng SDL_ttf
while (running)
{
handleInput();
update();
render();
}Game có thể:
- mở cửa sổ
- hiển thị chữ
- nhận input chuột
Người chơi có thể kéo các chữ để tạo thành từ.
Hiển thị các chữ cái dạng vòng tròn:
A
T E
O
Struct chữ cái:
struct Letter
{
char value;
SDL_Rect hitbox;
};Logic:
mouse_down(letter)
bắt đầu tạo từ
mouse_drag
thêm chữ vào từ
mouse_up
submit từ
Ví dụ:
A → T → E
Tạo từ:
ATE
Prototype hoạt động:
- kéo chữ
- tạo từ
Điền từ vào bảng ô chữ.
Grid lưu dạng ma trận 2 chiều.
Ví dụ:
_ T _
A T E
_ E _
Struct ô chữ:
struct Cell
{
char letter;
bool filled;
};Level được lưu trong file:
levels.json
Ví dụ:
{
"letters":["A","T","E"],
"answers":[
"ATE",
"TEA",
"EAT"
]
}Logic:
if word nằm trong đáp án
điền vào grid
else if word có trong dictionary
bonus word
else
từ sai
Game có thể:
- tạo từ
- kiểm tra từ
- điền vào crossword
Game có menu và nhiều level.
Menu gồm:
Start
Exit
State của game:
MENU
PLAYING
LEVEL_COMPLETE
Logic:
giải xong puzzle
→ sang level tiếp theo
Button:
Shuffle
Ví dụ:
A T E → T E A
Gợi ý 1 chữ.
Ví dụ:
_ A _
Game chơi được với:
- menu
- nhiều level
- hệ thống hint
Cải thiện trải nghiệm game.
- highlight chữ
- animation khi đúng từ
- animation khi điền grid
Thêm âm thanh:
click
correct word
level complete
Ví dụ:
đúng từ → +coin
dùng hint → -coin
Tạo khoảng:
20 level
=======
---
# Phân chia công việc
---
## Dev 1 – Engine
* Setup Project
* Game Loop
* Renderer & TextureManager
* Input System
* Audio
## Dev 2 – Gameplay
* letter wheel
* drag system
* word builder
* shuffle
## Dev 3 – Puzzle + UI
* crossword grid
* level loader
* menu
* hint system
---
# Timeline
---
| Tuần | Tiến độ |
| ------ | -------------- |
| Tuần 1 | Setup engine |
| Tuần 2 | Drag letters |
| Tuần 3 | Puzzle system |
| Tuần 4 | Level + UI |
| Tuần 5 | Hint + shuffle |
| Tuần 6 | Polish |
---
# Kết quả cuối
Game hoàn chỉnh có:
* menu
* 20 level
* nối chữ tạo từ
* bảng ô chữ
* hint
* shuffle
* âm thanh
Thời gian chơi: 30 phút