code.go 843 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package main
  2. import (
  3. "bufio"
  4. "fmt"
  5. "log"
  6. "os"
  7. )
  8. type Point struct {
  9. y, x int
  10. }
  11. type Pattern struct {
  12. note [][]byte
  13. mirror Point
  14. }
  15. func readInput(file *os.File) []Pattern {
  16. scanner := bufio.NewScanner(file)
  17. var patterns []Pattern
  18. var current Pattern
  19. for scanner.Scan() {
  20. line := scanner.Text()
  21. if line == "" {
  22. patterns = append(patterns, current)
  23. current = Pattern{}
  24. }
  25. var row []byte
  26. for i := range line {
  27. row = append(row, line[i])
  28. }
  29. current.note = append(current.note, row)
  30. }
  31. patterns = append(patterns, current)
  32. return patterns
  33. }
  34. func main() {
  35. if len(os.Args) < 2 {
  36. log.Fatal("You need to specify a file!")
  37. }
  38. filePath := os.Args[1]
  39. file, err := os.Open(filePath)
  40. if err != nil {
  41. log.Fatalf("Failed to open %s!\n", filePath)
  42. }
  43. patterns := readInput(file)
  44. fmt.Println(patterns)
  45. }