[Video Summary] Ch. 2.7 Game Mechanics in the SwiftUI Word Garden (App 2025)
Mô tả nhanh
Video này trình bày cách thêm cơ chế trò chơi vào ứng dụng Word Garden bằng SwiftUI. Bao gồm việc cập nhật thông báo trạng thái trò chơi, theo dõi số lần đoán, hiển thị hình ảnh hoa tương ứng với số lần đoán sai, và cho phép người chơi bắt đầu lại trò chơi sau khi đoán hết các từ.
Video
Mô tả chi tiết
Video này hướng dẫn cách thêm cơ chế trò chơi vào ứng dụng Word Garden bằng SwiftUI, bao gồm:
-
Cập nhật thông báo trạng thái trò chơi:
- Thay đổi nội dung hiển thị trong
gameStatusMessage
để thông báo số lần đoán đã thực hiện. - Sử dụng toán tử ternary để hiển thị "guess" (đoán) hoặc "guesses" (các lần đoán) cho phù hợp.
- Lưu ý: Cần cải thiện cách xử lý số nhiều bằng
Localized String Key
vàInflect
trong tương lai.
- Thay đổi nội dung hiển thị trong
-
Theo dõi số lần đoán còn lại:
- Thêm biến trạng thái
@State private var guessesRemaining = 8
để theo dõi số lần đoán còn lại. - Sử dụng hằng số
static let maximumGuesses = 8
để dễ dàng thay đổi số lần đoán tối đa. - Lưu ý: Khi truy cập thuộc tính
static
từ bên trong struct, sử dụngself.maximumGuesses
. - Kiểm tra xem chữ cái vừa đoán có nằm trong từ cần đoán hay không.
- Nếu không, giảm
guessesRemaining
đi 1.
- Thêm biến trạng thái
-
Cập nhật hình ảnh hoa:
- Cập nhật
imageName
để hiển thị hình ảnh hoa tương ứng với số lần đoán còn lại (flower8
,flower7
,...). - Đặt chiều cao cố định cho
Text View
hiển thịgameStatusMessage
để tránh giao diện bị nhảy.
- Cập nhật
-
Xử lý kết thúc trò chơi:
- Kiểm tra xem người chơi đã đoán đúng từ (không còn dấu gạch dưới trong
revealedWord
) hoặc đã hết số lần đoán (guessesRemaining == 0
). - Nếu đoán đúng:
- Hiển thị thông báo chúc mừng.
- Tăng số từ đã đoán (
wordsGuessed
). - Chuyển sang từ tiếp theo (
currentWordIndex += 1
). - Hiển thị nút "Another Word" và ẩn
TextField
,Guess a Letter Button
.
- Nếu hết lần đoán:
- Hiển thị thông báo thất bại.
- Tăng số từ bị bỏ lỡ (
wordsMissed
). - Chuyển sang từ tiếp theo (
currentWordIndex += 1
). - Hiển thị nút "Another Word" và ẩn
TextField
,Guess a Letter Button
.
- Nếu chưa kết thúc, tiếp tục hiển thị thông báo "Keep guessing".
- Kiểm tra xem người chơi đã đoán đúng từ (không còn dấu gạch dưới trong
-
Xử lý nút "Another Word":
- Đặt
wordToGuess
bằng từ tiếp theo trong mảngwordsToGuess
. - Đặt lại
revealedWord
thành toàn dấu gạch dưới. - Đặt lại
lettersGuessed
thành rỗng. - Đặt lại
guessesRemaining
về giá trị ban đầu (self.maximumGuesses
). - Hiển thị hình ảnh hoa đầy đủ cánh.
- Đặt lại
gameStatusMessage
về thông báo ban đầu. - Ẩn nút "Another Word" và hiển thị
TextField
,Guess a Letter Button
.
- Đặt
-
Xử lý khi đoán hết các từ:
- Thay đổi tiêu đề của nút "Another Word" thành "Restart Game" khi đã đoán hết các từ.
- Thêm thông báo "You've tried all the words. Restart from the beginning?" vào
gameStatusMessage
. - Khi nhấn nút "Restart Game":
- Đặt lại
currentWordIndex
về 0. - Đặt lại
wordsGuessed
về 0. - Đặt lại
wordsMissed
về 0. - Đặt lại tiêu đề của nút về "Another Word".
- Đặt lại
Lời chúc
Chúc bạn thành công trong việc phát triển ứng dụng Word Garden của mình!