拼写空缺改为随机数量,保证至少留一个字母可见

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-07-20 21:21:18 +08:00
parent 09800c5b17
commit 9124a49887
+2 -1
View File
@@ -71,7 +71,8 @@ enum QuizGenerator {
let chars = Array(word) let chars = Array(word)
let letterPositions = chars.indices.filter { chars[$0].isLetter } let letterPositions = chars.indices.filter { chars[$0].isLetter }
guard !letterPositions.isEmpty else { return word } guard !letterPositions.isEmpty else { return word }
let blankCount = min(letterPositions.count - 1, Int(ceil(Double(letterPositions.count) * 0.4))) let maxBlanks = letterPositions.count - 1
let blankCount = maxBlanks > 0 ? Int.random(in: 1...maxBlanks) : 0
let indices = Set(letterPositions.shuffled().prefix(blankCount)) let indices = Set(letterPositions.shuffled().prefix(blankCount))
return chars.enumerated().map { indices.contains($0.offset) ? "_" : String($0.element) }.joined() return chars.enumerated().map { indices.contains($0.offset) ? "_" : String($0.element) }.joined()
} }