From 9124a498873c065ac3c85200e639f24d27362aa4 Mon Sep 17 00:00:00 2001 From: fish Date: Mon, 20 Jul 2026 21:21:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8B=BC=E5=86=99=E7=A9=BA=E7=BC=BA=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=E9=9A=8F=E6=9C=BA=E6=95=B0=E9=87=8F=EF=BC=8C=E4=BF=9D?= =?UTF-8?q?=E8=AF=81=E8=87=B3=E5=B0=91=E7=95=99=E4=B8=80=E4=B8=AA=E5=AD=97?= =?UTF-8?q?=E6=AF=8D=E5=8F=AF=E8=A7=81?= 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 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/LearnEnglish/LearnEnglish/Models/Quiz.swift b/LearnEnglish/LearnEnglish/Models/Quiz.swift index bd8cf6a..a28fc24 100644 --- a/LearnEnglish/LearnEnglish/Models/Quiz.swift +++ b/LearnEnglish/LearnEnglish/Models/Quiz.swift @@ -71,7 +71,8 @@ enum QuizGenerator { let chars = Array(word) let letterPositions = chars.indices.filter { chars[$0].isLetter } 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)) return chars.enumerated().map { indices.contains($0.offset) ? "_" : String($0.element) }.joined() }