修复拼写算法,按比例空缺并保证至少展示一个字母

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-07-20 08:25:48 +08:00
parent e2c1345d40
commit 01b943185f
+3 -3
View File
@@ -70,9 +70,9 @@ enum QuizGenerator {
private static func blankWord(_ word: String) -> String {
let chars = Array(word)
let letterPositions = chars.indices.filter { chars[$0].isLetter }
guard letterPositions.count > 2 else { return String(repeating: "_", count: chars.count) }
let blanks = max(1, Int(Double(letterPositions.count) * 0.4))
let indices = Set(letterPositions.shuffled().prefix(blanks))
guard !letterPositions.isEmpty else { return word }
let blankCount = min(letterPositions.count - 1, Int(ceil(Double(letterPositions.count) * 0.4)))
let indices = Set(letterPositions.shuffled().prefix(blankCount))
return chars.enumerated().map { indices.contains($0.offset) ? "_" : String($0.element) }.joined()
}
}