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 | 
  
    
      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 rowCount = 7 | 
  
    
      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 rowCount = 7 | 
  
    
      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 MediumSketchpadView: View { | |
| var body: some View { | |
| Canvas { context, size in | |
| let gradient = Gradient(colors: [darkGreen.average(with: .black), darkGreen.average(with: .black).opacity(0.5)]) | 
  
    
      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 MediumSketchpadView: View { | |
| var body: some View { | |
| Canvas { context, size in | |
| let center = CGPoint(x: size.width / 2, y: size.height * 0.55) |