commit 383f9235f07e0ede550d3b9edb1d064477c38d7b
parent c7e50b39faa287bd3ac144d5da5fa187fe9e6f5d
Author: Michael Camilleri <[email protected]>
Date: Thu, 7 May 2026 02:38:42 +0900
Tweak count on in-progress scoreboard on iPadOS
Diffstat:
1 file changed, 44 insertions(+), 6 deletions(-)
diff --git a/Crossmate/Views/PuzzleView.swift b/Crossmate/Views/PuzzleView.swift
@@ -463,18 +463,56 @@ private struct PuzzleScoreboard: View {
return count
}
+ private var revealedSquareCount: Int {
+ var count = 0
+ for r in 0..<session.puzzle.height {
+ for c in 0..<session.puzzle.width {
+ guard !session.puzzle.cells[r][c].isBlock else { continue }
+ if session.game.squares[r][c].mark.isRevealed {
+ count += 1
+ }
+ }
+ }
+ return count
+ }
+
private var remainingCount: Int {
max(0, fillableCellCount - filledCellCount)
}
- private var remainingText: String {
+ private var remainingPhrase: String {
+ switch remainingCount {
+ case 0:
+ return "no squares to go"
+ case 1:
+ return "1 square to go"
+ default:
+ return "\(remainingCount) squares to go"
+ }
+ }
+
+ private var revealedPhrase: String {
+ switch revealedSquareCount {
+ case 0:
+ return "No squares revealed"
+ case 1:
+ return "1 square revealed"
+ default:
+ return "\(revealedSquareCount) squares revealed"
+ }
+ }
+
+ private var progressText: String {
+ if revealedSquareCount > 0 {
+ return "\(revealedPhrase), \(remainingPhrase)"
+ }
switch remainingCount {
case 0:
- return "No letters to go"
+ return "No squares to go"
case 1:
- return "1 letter to go"
+ return "1 square to go"
default:
- return "\(remainingCount) letters to go"
+ return "\(remainingCount) squares to go"
}
}
@@ -484,7 +522,7 @@ private struct PuzzleScoreboard: View {
for c in 0..<session.puzzle.width {
guard !session.puzzle.cells[r][c].isBlock else { continue }
let square = session.game.squares[r][c]
- guard !square.entry.isEmpty else { continue }
+ guard !square.entry.isEmpty, !square.mark.isRevealed else { continue }
counts[square.letterAuthorID, default: 0] += 1
}
}
@@ -548,7 +586,7 @@ private struct PuzzleScoreboard: View {
scoreRow(score)
}
- Text(remainingText)
+ Text(progressText)
.font(.footnote)
.foregroundStyle(.secondary)
.padding(.top, 10)