修复拼写算法,按比例空缺并保证至少展示一个字母
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -70,9 +70,9 @@ enum QuizGenerator {
|
|||||||
private static func blankWord(_ word: String) -> String {
|
private static func blankWord(_ word: String) -> String {
|
||||||
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.count > 2 else { return String(repeating: "_", count: chars.count) }
|
guard !letterPositions.isEmpty else { return word }
|
||||||
let blanks = max(1, Int(Double(letterPositions.count) * 0.4))
|
let blankCount = min(letterPositions.count - 1, Int(ceil(Double(letterPositions.count) * 0.4)))
|
||||||
let indices = Set(letterPositions.shuffled().prefix(blanks))
|
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()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user