From 5bbf188285762091db9a915060551b5b08111c20 Mon Sep 17 00:00:00 2001 From: Kistaro Windrider Date: Mon, 5 Feb 2024 18:45:25 -0800 Subject: [PATCH] highlight fucks in intermediate output --- uckf.go | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/uckf.go b/uckf.go index ad7d4b0..b63a786 100644 --- a/uckf.go +++ b/uckf.go @@ -9,7 +9,7 @@ import ( "math/rand" ) -var edgeSize = flag.Int("n", 4, "Cells per side") +var edgeSize = flag.Int("n", 8, "Cells per side") type scanState int const ( @@ -34,25 +34,25 @@ func main() { board=append(board, fuckingRow) } - dump(board, "Starting position") - var evals [][]fuckness for i := 0; i < *edgeSize; i++ { evals = append(evals, make([]fuckness, *edgeSize)) } + dump(board, evals, "Starting position") + iterations := uint64(0) scream := uint64(1) for(isStillFucked(board, evals)) { - fuckUp(board, evals) - iterations++ if iterations >= scream { - dump(board, fmt.Sprint("Iteration", iterations)) + dump(board, evals, fmt.Sprint("Iteration", iterations)) scream = iterations << 1 } + iterations++ + fuckUp(board, evals) } - dump(board, "Not a single fuck") + dump(board, evals, "Not a single fuck") } func onBoard(i, j int) bool { @@ -142,7 +142,7 @@ func fuckUp(board [][]byte, evals [][]fuckness) { if isFucked(e) { todo = append(todo, [2]int{i, j}) } else if mightBeFucked(e) { - dump(board, "Oh fuck") + dump(board, evals, "Oh fuck") log.Fatalf("unevaluated fuckness at %d, %d: %v", i, j, e) } } @@ -195,7 +195,7 @@ func unevaluate(evals [][]fuckness, i, j int) { } } -func dump(board [][]byte, title string) { +func dump(board [][]byte, evals [][]fuckness, title string) { fmt.Println() for i := 0; i < *edgeSize; i++ { fmt.Print("--") @@ -203,9 +203,13 @@ func dump(board [][]byte, title string) { fmt.Println() fmt.Println(title) fmt.Println() - for _, row := range board { - for _, r := range row { - fmt.Printf("%c ", "fuck"[r]) + for i, row := range board { + for j, r := range row { + if isFucked(evals[i][j]) { + fmt.Printf("%c ", "FUCK"[r]) + } else { + fmt.Printf("%c ", "fuck"[r]) + } } fmt.Println() }