Complete native rewrite of the web-based SoliCards game as a SwiftUI multiplatform app targeting iOS 17+, iPadOS 17+, and macOS 14+. Three solitaire variants (Klondike, Spider, FreeCell) with full game rules, drag & drop, smart zoom layout, 6 themes, 4 difficulty levels, SwiftData persistence, VoiceOver accessibility, and 57 unit tests. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
31 lines
1,002 B
Swift
31 lines
1,002 B
Swift
import SwiftUI
|
|
|
|
struct ScoreBarView: View {
|
|
let moves: Int
|
|
let score: Int
|
|
let time: String
|
|
let theme: GameTheme
|
|
|
|
var body: some View {
|
|
HStack {
|
|
Label("\(moves)", systemImage: "arrow.left.arrow.right")
|
|
.accessibilityElement(children: .ignore)
|
|
.accessibilityLabel(Text("\(moves) moves"))
|
|
Spacer()
|
|
Label("\(score)", systemImage: "star.fill")
|
|
.accessibilityElement(children: .ignore)
|
|
.accessibilityLabel(Text("Score \(score)"))
|
|
Spacer()
|
|
Label(time, systemImage: "clock")
|
|
.accessibilityElement(children: .ignore)
|
|
.accessibilityLabel(Text("Time \(time)"))
|
|
}
|
|
.font(.subheadline.monospacedDigit())
|
|
.foregroundStyle(theme.accentColor)
|
|
.padding(.horizontal)
|
|
.padding(.vertical, 8)
|
|
.accessibilityElement(children: .contain)
|
|
.accessibilityLabel(Text("Game status"))
|
|
}
|
|
}
|