Compare commits
No commits in common. "5bbf188285762091db9a915060551b5b08111c20" and "2347ad523bce9e914a902be28b6634a92ae4eaf0" have entirely different histories.
5bbf188285
...
2347ad523b
28
uckf.go
28
uckf.go
@ -9,7 +9,7 @@ import (
|
||||
"math/rand"
|
||||
)
|
||||
|
||||
var edgeSize = flag.Int("n", 8, "Cells per side")
|
||||
var edgeSize = flag.Int("n", 4, "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, evals, fmt.Sprint("Iteration", iterations))
|
||||
dump(board, fmt.Sprint("Iteration", iterations))
|
||||
scream = iterations << 1
|
||||
}
|
||||
iterations++
|
||||
fuckUp(board, evals)
|
||||
}
|
||||
|
||||
dump(board, evals, "Not a single fuck")
|
||||
dump(board, "Not a single fuck")
|
||||
}
|
||||
|
||||
func onBoard(i, j int) bool {
|
||||
@ -127,7 +127,7 @@ func mightBeFucked(f fuckness) bool {
|
||||
if i == 1 && j == 1 {
|
||||
continue
|
||||
}
|
||||
if f[i][j] != NotFucked {
|
||||
if f[i][j] == NotFucked {
|
||||
return true
|
||||
}
|
||||
}
|
||||
@ -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, evals, "Oh fuck")
|
||||
dump(board, "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, evals [][]fuckness, title string) {
|
||||
func dump(board [][]byte, title string) {
|
||||
fmt.Println()
|
||||
for i := 0; i < *edgeSize; i++ {
|
||||
fmt.Print("--")
|
||||
@ -203,14 +203,10 @@ func dump(board [][]byte, evals [][]fuckness, title string) {
|
||||
fmt.Println()
|
||||
fmt.Println(title)
|
||||
fmt.Println()
|
||||
for i, row := range board {
|
||||
for j, r := range row {
|
||||
if isFucked(evals[i][j]) {
|
||||
fmt.Printf("%c ", "FUCK"[r])
|
||||
} else {
|
||||
for _, row := range board {
|
||||
for _, r := range row {
|
||||
fmt.Printf("%c ", "fuck"[r])
|
||||
}
|
||||
}
|
||||
fmt.Println()
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user