This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import SwiftUI | |
| struct GhostModifier: ViewModifier { | |
| let hasGhost: Bool | |
| let isInAWall: Bool | |
| func body(content: Content) -> some View { | |
| if hasGhost { | |
| if isInAWall { | |
| content |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| func blockedByWall(man: Man, targetSquare: Square) -> Bool { | |
| return targetSquare.squareType == .wall && !man.tools.contains(.ghost) | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| squareView(file: file, rank: rank, color: viewModel.getBackgroundColor(file: file, rank: rank)) | |
| .artifactModifier(tool: viewModel.showTool(file: file, rank: rank), squareSize: viewModel.squareSize) | |
| .handoffableModifier(isHighlighted: viewModel.handOffable[file][rank]) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import SwiftUI | |
| struct HandoffableModifier: ViewModifier { | |
| let isHighlighted: Bool | |
| func body(content: Content) -> some View { | |
| if isHighlighted { | |
| ZStack { | |
| GeometryReader { geometry in | |
| content |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| func markHandoffableSquares() { | |
| // the piece handing off the tool can't hand it to itself | |
| notHandOffable[moveStart!.0][moveStart!.1] = true | |
| var handoffables = [(moveStart!.0, moveStart!.1)] | |
| repeat { | |
| handoffables = markHandoffablesAndReturnNextSet(handoffables) | |
| } while !handoffables.isEmpty | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| func getHandoffableNeighbors(file: Int, rank: Int) -> [(Int, Int)] { | |
| var neighbors: [(Int, Int)] = [(Int, Int)]() | |
| for i in file - 1...file + 1 { | |
| for j in rank - 1...rank + 1 { | |
| if i >= 0 && i < board.squaresWide && j >= 0 && j < board.squaresHigh { | |
| if !(i == file && j == rank) { | |
| if !(handOffable[i][j] || notHandOffable[i][j]) { | |
| if board.squares[i][j].man == nil { | |
| notHandOffable[i][j] = true |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| func markSquare(file: Int, rank: Int) { | |
| if file >= 0 && file < board.squaresWide && rank >= 0 && rank < board.squaresHigh { | |
| if !handOffable[file][rank] && !notHandOffable[file][rank] { | |
| if board.squares[file][rank].man == nil { | |
| notHandOffable[file][rank] = true | |
| } | |
| else if board.squares[file][rank].man!.player != board.whoseTurn { | |
| notHandOffable[file][rank] = true | |
| } | |
| else { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| var handOffable = Array(repeating: Array(repeating: false, count: board.squaresHigh), count: board.squaresWide) | |
| var notHandOffable = Array(repeating: Array(repeating: false, count: board.squaresHigh), count: board.squaresWide) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // | |
| // Copyright (c) 2025 and Confidential to Eric Ford Consulting All rights reserved. | |
| // | |
| import SwiftUI | |
| struct BrickWallView: View { | |
| var viewModel: ViewModel | |
| class ViewModel { | |
| let file: Int |
NewerOlder