From 01b943185f26aa49bac976e241db94dd5fbcf8f9 Mon Sep 17 00:00:00 2001 From: fish Date: Mon, 20 Jul 2026 08:25:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=8B=BC=E5=86=99=E7=AE=97?= =?UTF-8?q?=E6=B3=95=EF=BC=8C=E6=8C=89=E6=AF=94=E4=BE=8B=E7=A9=BA=E7=BC=BA?= =?UTF-8?q?=E5=B9=B6=E4=BF=9D=E8=AF=81=E8=87=B3=E5=B0=91=E5=B1=95=E7=A4=BA?= =?UTF-8?q?=E4=B8=80=E4=B8=AA=E5=AD=97=E6=AF=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.7 --- LearnEnglish/LearnEnglish/Models/Quiz.swift | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/LearnEnglish/LearnEnglish/Models/Quiz.swift b/LearnEnglish/LearnEnglish/Models/Quiz.swift index 0f9a530..bd8cf6a 100644 --- a/LearnEnglish/LearnEnglish/Models/Quiz.swift +++ b/LearnEnglish/LearnEnglish/Models/Quiz.swift @@ -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() } }