[Video Summary] Ch. 2.5 Challenge Solution: RevealedWord After Guess, plus .map{} function (2025)
Mô tả nhanh
Video này trình bày cách giải quyết thử thách "reveal word after last guess" bằng cách sử dụng các kỹ thuật đã học và giới thiệu hàm map
để tối ưu hóa code.
Video
Mô tả chi tiết
Video này hướng dẫn giải quyết thử thách tạo một chuỗi hiển thị các chữ cái đã đoán đúng và dấu gạch dưới cho các chữ cái chưa đoán được trong một từ cần đoán, với khoảng trắng giữa các ký tự.
Các bước thực hiện:
-
Khởi tạo:
wordToGuess
: Từ cần đoán (ví dụ: "Swift").lettersGuessed
: Chuỗi chứa các chữ cái đã đoán (ví dụ: "SQFTX").revealedWord
: Chuỗi rỗng, sẽ chứa kết quả hiển thị.
-
Duyệt qua các chữ cái trong
wordToGuess
:- Vòng lặp
for
: Duyệt qua từngletter
trongwordToGuess
. - Kiểm tra: Sử dụng
lettersGuessed.contains(letter)
để kiểm tra xemletter
đã được đoán chưa.- Nếu đã đoán: Thêm
letter
và khoảng trắng vàorevealedWord
. - Nếu chưa đoán: Thêm dấu gạch dưới "_" và khoảng trắng vào
revealedWord
.
- Nếu đã đoán: Thêm
- Vòng lặp
-
Xóa khoảng trắng thừa: Loại bỏ khoảng trắng cuối cùng trong
revealedWord
bằngrevealedWord.removeLast()
. -
In kết quả: In ra
wordToGuess
,lettersGuessed
vàrevealedWord
. -
Sử dụng
map
(Functional Programming):- Giới thiệu
map
:map
là một phương pháp lập trình hàm, cho phép biến đổi dữ liệu thông qua các hàm thay vì vòng lặp. - Cú pháp:
wordToGuess.map { letter in ... }
. Trong đó,letter
đại diện cho từng ký tự trongwordToGuess
. - Biến đổi: Sử dụng toán tử ternary để kiểm tra xem
letter
có tronglettersGuessed
không. Nếu có, trả vềletter
; nếu không, trả về "_". Kết quả là một mảng các chuỗi. - Kết hợp: Sử dụng
joined(separator: " ")
để nối các phần tử của mảng thành một chuỗi duy nhất, với khoảng trắng giữa các phần tử. - Rút gọn code: Sử dụng shorthand
$0
để thay thế choletter in
, giúp code ngắn gọn hơn.
- Giới thiệu
Ví dụ code sử dụng map
:
revealedWord = wordToGuess.map { lettersGuessed.contains($0) ? String($0) : "_" }.joined(separator: " ")
Video cũng trình bày cách thay đổi các giá trị wordToGuess
và lettersGuessed
để kiểm tra tính đúng đắn của code.
Lời chúc
Chúc mừng bạn đã trở thành một "string sorcerer"! Hãy tiếp tục theo dõi các bài học tiếp theo để áp dụng kiến thức này vào việc xây dựng ứng dụng Word Garden.