[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

Click vào hình dưới để mở:

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:

  1. 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 KeyInflect trong tương lai.
  2. 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ụng self.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.
  3. 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.
  4. 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".
  5. Xử lý nút "Another Word":

    • Đặt wordToGuess bằng từ tiếp theo trong mảng wordsToGuess.
    • Đặ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.
  6. 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".

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!