Initial comit. Playing around a bit.

This commit is contained in:
Sacha Ligthert 2024-12-05 17:46:09 +01:00
commit d11db280c1
2 changed files with 77 additions and 0 deletions

3
go.mod Normal file
View File

@ -0,0 +1,3 @@
module gitea.ligthert.net/golang/sudoku-funpark
go 1.23.3

74
main.go Normal file
View File

@ -0,0 +1,74 @@
package main
import (
"fmt"
"strconv"
)
func main() {
blocks := generate_blocks()
fmt.Println(len(blocks))
fmt.Println(blocks[0])
}
func generate_blocks() []int {
var blocks []int
decvals := [9]int{49, 50, 51, 52, 53, 54, 55, 56, 57}
for counter := 123456789; counter <= 987654321; counter++ {
// Convert number to string ([]byte)
digits := strconv.Itoa(counter)
// Check if every number is only represented only once
var valid bool
valid = true
for decval := range decvals {
var count int
for digit := range digits {
if digits[digit] == byte(decvals[decval]) {
count = count + 1
}
}
if count != 1 {
valid = false
}
}
if valid {
blocks = append(blocks, counter)
}
}
return blocks
}
// counter: 123456789
// 1st Digit: 1 (49)
// 2nd Digit: 2 (50)
// 3rd Digit: 3 (51)
// 4th Digit: 4 (52)
// 5th Digit: 5 (53)
// 6th Digit: 6 (54)
// 7th Digit: 7 (55)
// 8th Digit: 8 (56)
// 9th Digit: 9 (57)
// 362880
// 1 2 3
// 4 5 6
// 7 8 9
// 1: 1 2 3 4 7
// 2: 1 2 3 5 8
// 3: 1 2 3 6 9
// 4: 1 4 5 6 7
// 5: 2 4 5 6 8
// 6: 3 4 5 6 9
// 7: 1 4 7 8 9
// 8: 2 5 7 8 9
// 9: 3 6 7 8 9