Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
095cc21
Adding .clang-format file
kazurem Dec 9, 2025
6def07d
Merge pull request #11 from kazurem/project-setup (Adding .clang-form…
kazurem Dec 9, 2025
decf495
Create .gitignore with common build artifacts
kazurem Dec 9, 2025
022770f
Creating basic CMakeLists.txt and file structure
kazurem Dec 9, 2025
87c4a4c
Merge pull request #12 from kazurem/main
kazurem Dec 9, 2025
51b1a44
Adding testing functionality using GoogleTest
kazurem Dec 9, 2025
cb063c0
Merge pull request #13 from kazurem/dev
kazurem Dec 9, 2025
a18f9b8
Adding Build Instructions and Troubleshooting in README.md
kazurem Dec 9, 2025
60a8c9e
Add contributions guide for MicroMouse Simulator
kazurem Dec 10, 2025
f03122e
fix(linking): CMake in tests/ tries to link to GTest::gtest_main befo…
kazurem Dec 11, 2025
a554e77
refactor(.clang-fomat): Condensing all LLVM style settings into a sin…
kazurem Dec 11, 2025
3d7c42f
Add MIT License to the project
kazurem Dec 11, 2025
3c75c0a
ci(pre-commit-config): Added formatting and linting to pre-commit hoo…
nyx-4 Dec 12, 2025
cca5619
Merge pull request #15 from ny-x4/dev
kazurem Dec 13, 2025
2832775
docs(CONTRIBUTING.md): Making changes that correspond to the modifica…
kazurem Dec 13, 2025
215782d
fix: kfkfklkdfld
kr8457 Dec 14, 2025
e530adf
feat(MazeGen.cpp): Implement maze generation using backtracking
kr8457 Dec 19, 2025
237d6a6
Add GUI implementation and maze solver
kr8457 Dec 21, 2025
fc56a76
chore: finalize project configuration and resolve all issues
kr8457 Dec 28, 2025
4fe32de
feat: Implement SFML GUI and integrate maze solvers
kr8457 Dec 28, 2025
798dd62
feat(everything): bug fixes, refactoring and some new features
Dec 31, 2025
3538485
feat(everything): bug fixes, refactoring and some new features
kr8457 Jan 1, 2026
3d93dea
feat: add interactive maze editor, file explorer save/load, zoom/pan,…
kr8457 Jan 1, 2026
29fd9bf
refactor: polishing code
Jan 2, 2026
3b94d6d
fix(Simulator.cpp): file dialog not opening in windows
Jan 2, 2026
f721e5f
bump: version 0.0.1 → 0.1.0
Jan 2, 2026
6faabb3
docs: update CHANGELOG.md
Jan 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 60 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
---
BasedOnStyle: LLVM
ColumnLimit: 80
AlignArrayOfStructures: Left
AlignConsecutiveAssignments:
Enabled: true
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: true
AlignFunctionDeclarations: false
AlignFunctionPointers: false
PadOperators: true
AlignConsecutiveBitFields:
Enabled: true
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionDeclarations: false
AlignFunctionPointers: false
PadOperators: false
AlignConsecutiveDeclarations:
Enabled: true
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionDeclarations: false
AlignFunctionPointers: false
PadOperators: false
AlignConsecutiveMacros:
Enabled: true
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionDeclarations: false
AlignFunctionPointers: false
PadOperators: false
AlignConsecutiveShortCaseStatements:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCaseArrows: false
AlignCaseColons: false
AllowShortBlocksOnASingleLine: Empty
AllowShortCaseExpressionOnASingleLine: true
AllowShortCaseLabelsOnASingleLine: true
AllowShortCompoundRequirementOnASingleLine: true
AllowShortEnumsOnASingleLine: true
AllowShortFunctionsOnASingleLine: All
AllowShortIfStatementsOnASingleLine: WithoutElse
AllowShortLambdasOnASingleLine: All
AllowShortLoopsOnASingleLine: false
AllowShortNamespacesOnASingleLine: false
BreakBinaryOperations: RespectPrecedence
BreakTemplateDeclarations: Yes
IndentWidth: 4
RemoveEmptyLinesInUnwrappedLines: true
SpaceInEmptyBlock: true
SpacesBeforeTrailingComments: 2
TabWidth: 4
...
54 changes: 54 additions & 0 deletions .clang-tidy
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
Checks: >-
clang-diagnostic-*,
clang-analyzer-*,
bugprone-*,
cppcoreguidelines-*,
misc-*,
modernize-*,
performance-*,
readability-*,
portability-*,

-bugprone-easily-swappable-parameters,
-modernize-use-nodiscard,
-readability-braces-around-statements,


WarningsAsErrors: >-
clang-analyzer-core.*,
clang-analyzer-cplusplus.*,
clang-analyzer-security.*,
clang-analyzer-unix.*,
performance-move-const-arg,
performance-unnecessary-value-param,
readability-duplicate-include,

HeaderFileExtensions:
- ''
- h
- hh
- hpp
- hxx
ImplementationFileExtensions:
- c
- cc
- cpp
- cxx
HeaderFilterRegex: '.*\.(c|cxx|cpp)$'
ExcludeHeaderFilterRegex: ''
FormatStyle: none
User: Nyx4
CheckOptions:
readability-identifier-naming.ConstantCase: UPPER_CASE
readability-identifier-naming.ClassConstantCase: UPPER_CASE
readability-identifier-naming.ClassCase: CamelCase
readability-identifier-naming.ClassMethodCase: lower_case
readability-identifier-naming.ClassMemberCase: lower_case
readability-identifier-naming.FunctionCase: lower_case
readability-identifier-naming.VariableCase: lower_case
readability-function-size.StatementThreshold: 42
readability-function-size.NestingThreshold: 5
SystemHeaders: false
UseColor: true
...
1 change: 1 addition & 0 deletions .github/workflows/on-push.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# TODO: Add some checks to run on-push.
57 changes: 57 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# Prerequisites
*.d

# Compiled Object files
*.slo
*.lo
*.o
*.obj

# Precompiled Headers
*.gch
*.pch

# Linker files
*.ilk

# Debugger Files
*.pdb

# Compiled Dynamic libraries
*.so
*.dylib
*.dll

# Fortran module files
*.mod
*.smod

# Compiled Static libraries
*.lai
*.la
*.a
*.lib

# Executables
*.exe
*.out
*.app

# debug information files
*.dwo

# CMake tempoorary files and folders
build/
.cache/
Testing/
CMakeFiles/
Makefile
compile_commands.json
cmake_install.cmake
CMakeCache.txt

# Documentation artifacts
sphinx_docs/_build/
sphinx_docs/_doxygen/
__pycache__/
*.pyc
90 changes: 90 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
fail_fast: false
repos:
- repo: local
hooks:
- id: enable-testing
name: Enable testing configuration
entry: cmake
language: system
args: [-B build, -DBUILD_TESTING=ON]
pass_filenames: false
always_run: true

- id: build
name: Build the project using cmake
entry: cmake
language: system
args: [--build, build]
pass_filenames: false
always_run: true

- id: test
name: Test the project using ctest
entry: ctest
language: system
args: [--test-dir build, --output-on-failure]
pass_filenames: false
always_run: true

- repo: https://github.com/pocc/pre-commit-hooks
rev: v1.3.5
hooks:
- id: clang-format
args: ["-i"]
- id: clang-tidy
args: ["-p=build"]
- id: cppcheck
args: ["--enable=all", "-Iinclude/", "--quiet", "src", "--suppress=normalCheckLevelMaxBranches", "--suppress=checkersReport", "--suppress=missingIncludeSystem", "--suppress=useStlAlgorithm", "--suppress=unusedFunction", "--suppress=unusedStructMember", "--suppress=unmatchedSuppression", "--inline-suppr"]

- repo: https://github.com/crate-ci/typos
rev: v1.40.0
hooks:
- id: typos

- repo: https://github.com/commitizen-tools/commitizen
rev: v4.10.0
hooks:
- id: commitizen
- id: commitizen-branch
stages: [pre-push]

- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v6.0.0
hooks:
- id: check-added-large-files
name: "📁 filesystem/🤏 size · Prevent giant files from being committed"
args: [ '--maxkb=2000' ]
- id: check-executables-have-shebangs
name: "📁 filesystem/⚙️ exec · Verify shebang presence"
- id: check-shebang-scripts-are-executable
name: "📁 filesystem/⚙️ exec · Verify script permissions"
- id: check-case-conflict
name: "📁 filesystem/📝 names · Check case sensitivity"
- id: check-illegal-windows-names
name: "📁 filesystem/📝 names · Validate Windows filenames"
- id: check-symlinks
name: "📁 filesystem/🔗 symlink · Check symlink validity"
- id: destroyed-symlinks
name: "📁 filesystem/🔗 symlink · Detect broken symlinks"
- id: check-json
name: "📁 filesystem/📃 data format · Load all json to verify syntax"
- id: check-toml
name: "📁 filesystem/📃 data format · Load all toml to verify syntax"
- id: check-xml
name: "📁 filesystem/📃 data format · Load all xml to verify syntax"
- id: check-yaml
name: "📁 filesystem/📃 data format · Load all yaml to verify syntax"
- id: forbid-submodules
name: "📁 filesystem/📦 submodules · Detect broken symlinks"
- id: mixed-line-ending
name: "🪟 windows/💔 use UNIX · Use LF as line ending on Windows 🥺"
args: [ '--fix=lf' ]
- id: check-ast
name: "🐍 python/🏴 syntax · Check files parse as valid python"
- id: check-docstring-first
name: "🐍 python/🏴 syntax · Check code is after the docstring"
- id: detect-private-key
name: "🐍 python/🔐 secrets · Checks for the existence of private keys"
- id: name-tests-test
name: "🐍 python/📝 names · Check test files are named correctly"
args: [ '--pytest-test-first' ]
16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Changelog

## 0.1.0 (2026-01-02)

### Added

- A SFML Based GUI
- Interactive Maze Editor
- File Explorer Save/Load
- Eller's and Recursive Backtracking algorithm for Maze Generation
- Step Generation Option.
- BFS, DFS, Wall Follower, Flood Fill and A* solving algorithms.
- Step Solve and Instant Solve options.
- Option to change Animation Speed.
- Option to change Maze Size.
- MVC Style Architecture
Loading