Skip to content

Instantly share code, notes, and snippets.

import SwiftUI
struct GhostModifier: ViewModifier {
let hasGhost: Bool
let isInAWall: Bool
func body(content: Content) -> some View {
if hasGhost {
if isInAWall {
content
func blockedByWall(man: Man, targetSquare: Square) -> Bool {
return targetSquare.squareType == .wall && !man.tools.contains(.ghost)
}
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])
import SwiftUI
struct HandoffableModifier: ViewModifier {
let isHighlighted: Bool
func body(content: Content) -> some View {
if isHighlighted {
ZStack {
GeometryReader { geometry in
content
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
}
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
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 {
func handOff(_ doit: Bool) {
handingOffTool = doit
if doit {
markHandoffableSquares()
}
else {
handOffable = Array(repeating: Array(repeating: false, count: board.squaresHigh), count: board.squaresWide)
notHandOffable = Array(repeating: Array(repeating: false, count: board.squaresHigh), count: board.squaresWide)
}
}
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)
@thejamulator
thejamulator / FinishedBricks.swift
Created October 27, 2025 16:17
Fix the misalignment
//
// 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