Little update.

This commit is contained in:
Sacha Ligthert 2024-12-06 19:28:24 +01:00
parent d11db280c1
commit 95f560fc8a
7 changed files with 363033 additions and 29 deletions

10
.pre-commit-config.yaml Normal file
View File

@ -0,0 +1,10 @@
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v3.2.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
- id: check-added-large-files

13
Taskfile.yml Normal file
View File

@ -0,0 +1,13 @@
# https://taskfile.dev
version: '3'
tasks:
default:
cmds:
- go run .
silent: true
precommit:
cmds:
- pre-commit run --all
silent: true

362880
blocks.csv Normal file

File diff suppressed because it is too large Load Diff

2
go.mod
View File

@ -1,3 +1,5 @@
module gitea.ligthert.net/golang/sudoku-funpark
go 1.23.3
require github.com/gocarina/gocsv v0.0.0-20240520201108-78e41c74b4b1 // indirect

2
go.sum Normal file
View File

@ -0,0 +1,2 @@
github.com/gocarina/gocsv v0.0.0-20240520201108-78e41c74b4b1 h1:FWNFq4fM1wPfcK40yHE5UO3RUdSNPaBC+j3PokzA6OQ=
github.com/gocarina/gocsv v0.0.0-20240520201108-78e41c74b4b1/go.mod h1:5YoVOkjYAQumqlV356Hj3xeYh4BdZuLE0/nRkf2NKkI=

113
main.go
View File

@ -1,14 +1,91 @@
package main
import (
"encoding/csv"
"fmt"
"io"
"log"
"os"
"strconv"
)
func main() {
blocks := generate_blocks()
fmt.Println(len(blocks))
fmt.Println(blocks[0])
blocks := load_blocks()
fmt.Println("Total blocks:", len(blocks))
// Parse parameters
// Turn parameters into rows
row1 := "769104803"
// row2 := "154800060"
// row3 := "002700150"
// row4 := "600900308"
// row5 := "045328670"
// row6 := "328670945"
// row7 := "597410280"
// row8 := "006284090"
// row9 := "200590006"
// Find rows that fit with the entered rows
rows1 := find_blocks(blocks, row1)
// rows2 := find_blocks(blocks, row2)
// rows3 := find_blocks(blocks, row3)
// rows4 := find_blocks(blocks, row4)
// rows5 := find_blocks(blocks, row5)
// rows6 := find_blocks(blocks, row6)
// rows7 := find_blocks(blocks, row7)
// rows8 := find_blocks(blocks, row8)
// rows9 := find_blocks(blocks, row9)
fmt.Println("len(rows1):", len(rows1))
// fmt.Println(rows1)
}
func find_blocks(blocks []int, row string) []int {
// Declare selection
var selection []int
fmt.Println(row)
for letter := range row {
fmt.Println("Letter", row[letter])
//curr_number := row[letter]
for block := range blocks {
// fmt.Println(blocks[block])
curr_row := strconv.Itoa(blocks[block])
fmt.Println(curr_row[0])
//if curr_number ==
}
}
// Return selection
return selection
}
func load_blocks() []int {
var blocks []int
file, err := os.Open("blocks.csv")
if err != nil {
panic(err)
}
defer file.Close()
r := csv.NewReader(file)
for {
record, err := r.Read()
if err == io.EOF {
break
}
if err != nil {
log.Fatal(err)
}
block, _ := strconv.Atoi(record[0])
blocks = append(blocks, block)
}
return blocks
}
func generate_blocks() []int {
@ -46,29 +123,7 @@ func generate_blocks() []int {
}
// 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
func print_block(block int) {
digits := strconv.Itoa(block)
fmt.Printf("%c %c %c\n%c %c %c\n%c %c %c\n\n", digits[0], digits[1], digits[2], digits[3], digits[4], digits[5], digits[6], digits[7], digits[8])
}

42
notes.txt Normal file
View File

@ -0,0 +1,42 @@
Compat Matrix
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
// 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
// blocks := generate_blocks()
// fmt.Println(len(blocks))
// print_block(blocks[0])
// print_block(blocks[1])
// for i := range blocks {
// fmt.Println(blocks[i])
// }
// block1 := 714365289
// block2 := 365289714
// block3 := 289714365
// block4 := 173456892
// block5 := 456893173
// block6 := 892173546
// block7 := 647531928
// block8 := 531928647
// block9 := 928647531