[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 KeyvàInflecttrong 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
statictừ 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 Viewhiể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
wordToGuessbằng từ tiếp theo trong mảngwordsToGuess. - Đặt lại
revealedWordthành toàn dấu gạch dưới. - Đặt lại
lettersGuessedthành rỗng. - Đặt lại
guessesRemainingvề giá trị ban đầu (self.maximumGuesses). - Hiển thị hình ảnh hoa đầy đủ cánh.
- Đặt lại
gameStatusMessagevề 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
currentWordIndexvề 0. - Đặt lại
wordsGuessedvề 0. - Đặt lại
wordsMissedvề 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!
