From 898d8463c84b6bf8d5eca34ca42ab40760b96122 Mon Sep 17 00:00:00 2001 From: Karma Riuk Date: Thu, 3 Aug 2023 21:07:58 +0200 Subject: [PATCH] Drawn the skeleton code for the structure of the project --- io/reader/image.go | 9 +++++++++ io/reader/reader.go | 7 +++++++ io/writer/image.go | 11 +++++++++++ io/writer/writer.go | 7 +++++++ maze-solver.go | 25 +++++++++++++++++++++++++ maze/maze.go | 10 ++++++++++ solver/bfs.go | 9 +++++++++ solver/solver.go | 7 +++++++ utils/utils.go | 10 ++++++++++ 9 files changed, 95 insertions(+) create mode 100644 io/reader/image.go create mode 100644 io/reader/reader.go create mode 100644 io/writer/image.go create mode 100644 io/writer/writer.go create mode 100644 maze-solver.go create mode 100644 maze/maze.go create mode 100644 solver/bfs.go create mode 100644 solver/solver.go create mode 100644 utils/utils.go diff --git a/io/reader/image.go b/io/reader/image.go new file mode 100644 index 0000000..f790a40 --- /dev/null +++ b/io/reader/image.go @@ -0,0 +1,9 @@ +package reader + +import "maze-solver/maze" + +type ImageReader struct{} + +func (r *ImageReader) Read(filename string) (*maze.Maze, error) { + return nil, nil +} diff --git a/io/reader/reader.go b/io/reader/reader.go new file mode 100644 index 0000000..9116d6e --- /dev/null +++ b/io/reader/reader.go @@ -0,0 +1,7 @@ +package reader + +import "maze-solver/maze" + +type Reader interface { + Read(filename string) (*maze.Maze, error) +} diff --git a/io/writer/image.go b/io/writer/image.go new file mode 100644 index 0000000..e3727e2 --- /dev/null +++ b/io/writer/image.go @@ -0,0 +1,11 @@ +package writer + +import ( + "maze-solver/maze" +) + +type ImageWriter struct{} + +func (w *ImageWriter) Write(filename string, maze *maze.SolvedMaze) error { + return nil +} diff --git a/io/writer/writer.go b/io/writer/writer.go new file mode 100644 index 0000000..919e8b6 --- /dev/null +++ b/io/writer/writer.go @@ -0,0 +1,7 @@ +package writer + +import "maze-solver/maze" + +type Writer interface { + Write(filename string, maze *maze.SolvedMaze) error +} diff --git a/maze-solver.go b/maze-solver.go new file mode 100644 index 0000000..f89d500 --- /dev/null +++ b/maze-solver.go @@ -0,0 +1,25 @@ +package main + +import ( + "maze-solver/io/reader" + "maze-solver/io/writer" + "maze-solver/solver" + "maze-solver/utils" +) + +func main() { + input := "filename" + output := "filename" + + reader := &reader.ImageReader{} + writer := &writer.ImageWriter{} + + solver := &solver.Bfs{} + + maze, err := reader.Read(input) + utils.Check(err, "Couldn't read maze from %q", input) + + solved := solver.Solve(maze) + err = writer.Write(output, solved) + utils.Check(err, "Couldn't write solved maze to %q", output) +} diff --git a/maze/maze.go b/maze/maze.go new file mode 100644 index 0000000..47bcd9d --- /dev/null +++ b/maze/maze.go @@ -0,0 +1,10 @@ +package maze + +type Maze interface { + maze() +} + +type SolvedMaze interface { + Maze + solvedMaze() +} diff --git a/solver/bfs.go b/solver/bfs.go new file mode 100644 index 0000000..72773a6 --- /dev/null +++ b/solver/bfs.go @@ -0,0 +1,9 @@ +package solver + +import "maze-solver/maze" + +type Bfs struct{} + +func (*Bfs) Solve(maze *maze.Maze) *maze.SolvedMaze { + return nil +} diff --git a/solver/solver.go b/solver/solver.go new file mode 100644 index 0000000..0dd6d35 --- /dev/null +++ b/solver/solver.go @@ -0,0 +1,7 @@ +package solver + +import "maze-solver/maze" + +type Solver interface { + Solve(*maze.Maze) *maze.SolvedMaze +} diff --git a/utils/utils.go b/utils/utils.go new file mode 100644 index 0000000..18aa4cb --- /dev/null +++ b/utils/utils.go @@ -0,0 +1,10 @@ +package utils + +import "log" + +func Check(err error, msg string, args ...any) { + if err != nil { + log.Printf(msg, args...) + panic(err) + } +}