├── .gitignore ├── .idea ├── compiler.xml ├── jarRepositories.xml ├── low-level-design-problems.iml ├── misc.xml ├── modules.xml └── vcs.xml ├── README.md ├── problems ├── 01-tic-tac-toe.md ├── 02-wordle.md ├── 03-snake-and-ladders.md └── 999-future-problems.md └── solutions ├── java ├── .gitattributes ├── .gitignore ├── 02-wordle │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ ├── java │ │ │ └── wordle │ │ │ │ ├── App.java │ │ │ │ ├── data │ │ │ │ └── WordFactory.java │ │ │ │ ├── game │ │ │ │ ├── Board.java │ │ │ │ ├── Cell.java │ │ │ │ ├── Game.java │ │ │ │ └── Keyboard.java │ │ │ │ └── io │ │ │ │ └── ColoredStrings.java │ │ └── resources │ │ │ └── words.txt │ │ └── test │ │ └── java │ │ └── wordle │ │ ├── AppTest.java │ │ ├── data │ │ └── WordFactoryTest.java │ │ └── game │ │ └── GameTests.java ├── 03-snakeladder │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ └── java │ │ │ └── com │ │ │ └── scaler │ │ │ ├── Main.java │ │ │ ├── entities │ │ │ ├── Board.java │ │ │ ├── Game.java │ │ │ ├── Ladder.java │ │ │ ├── Pipe.java │ │ │ ├── PipeFactory.java │ │ │ ├── Player.java │ │ │ └── Snake.java │ │ │ └── services │ │ │ └── DiceService.java │ │ └── test │ │ └── java │ │ └── com │ │ └── scaler │ │ └── entities │ │ ├── BoardTests.java │ │ ├── GameTests.java │ │ └── LadderTests.java ├── gradle │ └── wrapper │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle.kts └── typescript ├── .gitignore ├── 01-tic-tac-toe ├── package.json ├── src │ ├── entities │ │ ├── Board.ts │ │ ├── Game.ts │ │ └── Player.ts │ └── main.ts ├── test │ └── test-board.spec.ts └── tsconfig.json ├── jest.config.js ├── package-lock.json ├── package.json └── tsconfig.json /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/.gitignore -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/.idea/compiler.xml -------------------------------------------------------------------------------- /.idea/jarRepositories.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/.idea/jarRepositories.xml -------------------------------------------------------------------------------- /.idea/low-level-design-problems.iml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/.idea/low-level-design-problems.iml -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/.idea/misc.xml -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/.idea/modules.xml -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/.idea/vcs.xml -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/README.md -------------------------------------------------------------------------------- /problems/01-tic-tac-toe.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/problems/01-tic-tac-toe.md -------------------------------------------------------------------------------- /problems/02-wordle.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/problems/02-wordle.md -------------------------------------------------------------------------------- /problems/03-snake-and-ladders.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/problems/03-snake-and-ladders.md -------------------------------------------------------------------------------- /problems/999-future-problems.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/problems/999-future-problems.md -------------------------------------------------------------------------------- /solutions/java/.gitattributes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/java/.gitattributes -------------------------------------------------------------------------------- /solutions/java/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/java/.gitignore -------------------------------------------------------------------------------- /solutions/java/02-wordle/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/java/02-wordle/build.gradle.kts -------------------------------------------------------------------------------- /solutions/java/02-wordle/src/main/java/wordle/App.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/java/02-wordle/src/main/java/wordle/App.java -------------------------------------------------------------------------------- /solutions/java/02-wordle/src/main/java/wordle/data/WordFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/java/02-wordle/src/main/java/wordle/data/WordFactory.java -------------------------------------------------------------------------------- /solutions/java/02-wordle/src/main/java/wordle/game/Board.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/java/02-wordle/src/main/java/wordle/game/Board.java -------------------------------------------------------------------------------- /solutions/java/02-wordle/src/main/java/wordle/game/Cell.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/java/02-wordle/src/main/java/wordle/game/Cell.java -------------------------------------------------------------------------------- /solutions/java/02-wordle/src/main/java/wordle/game/Game.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/java/02-wordle/src/main/java/wordle/game/Game.java -------------------------------------------------------------------------------- /solutions/java/02-wordle/src/main/java/wordle/game/Keyboard.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/java/02-wordle/src/main/java/wordle/game/Keyboard.java -------------------------------------------------------------------------------- /solutions/java/02-wordle/src/main/java/wordle/io/ColoredStrings.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/java/02-wordle/src/main/java/wordle/io/ColoredStrings.java -------------------------------------------------------------------------------- /solutions/java/02-wordle/src/main/resources/words.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/java/02-wordle/src/main/resources/words.txt -------------------------------------------------------------------------------- /solutions/java/02-wordle/src/test/java/wordle/AppTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/java/02-wordle/src/test/java/wordle/AppTest.java -------------------------------------------------------------------------------- /solutions/java/02-wordle/src/test/java/wordle/data/WordFactoryTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/java/02-wordle/src/test/java/wordle/data/WordFactoryTest.java -------------------------------------------------------------------------------- /solutions/java/02-wordle/src/test/java/wordle/game/GameTests.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/java/02-wordle/src/test/java/wordle/game/GameTests.java -------------------------------------------------------------------------------- /solutions/java/03-snakeladder/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/java/03-snakeladder/build.gradle.kts -------------------------------------------------------------------------------- /solutions/java/03-snakeladder/src/main/java/com/scaler/Main.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/java/03-snakeladder/src/main/java/com/scaler/Main.java -------------------------------------------------------------------------------- /solutions/java/03-snakeladder/src/main/java/com/scaler/entities/Board.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/java/03-snakeladder/src/main/java/com/scaler/entities/Board.java -------------------------------------------------------------------------------- /solutions/java/03-snakeladder/src/main/java/com/scaler/entities/Game.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/java/03-snakeladder/src/main/java/com/scaler/entities/Game.java -------------------------------------------------------------------------------- /solutions/java/03-snakeladder/src/main/java/com/scaler/entities/Ladder.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/java/03-snakeladder/src/main/java/com/scaler/entities/Ladder.java -------------------------------------------------------------------------------- /solutions/java/03-snakeladder/src/main/java/com/scaler/entities/Pipe.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/java/03-snakeladder/src/main/java/com/scaler/entities/Pipe.java -------------------------------------------------------------------------------- /solutions/java/03-snakeladder/src/main/java/com/scaler/entities/PipeFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/java/03-snakeladder/src/main/java/com/scaler/entities/PipeFactory.java -------------------------------------------------------------------------------- /solutions/java/03-snakeladder/src/main/java/com/scaler/entities/Player.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/java/03-snakeladder/src/main/java/com/scaler/entities/Player.java -------------------------------------------------------------------------------- /solutions/java/03-snakeladder/src/main/java/com/scaler/entities/Snake.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/java/03-snakeladder/src/main/java/com/scaler/entities/Snake.java -------------------------------------------------------------------------------- /solutions/java/03-snakeladder/src/main/java/com/scaler/services/DiceService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/java/03-snakeladder/src/main/java/com/scaler/services/DiceService.java -------------------------------------------------------------------------------- /solutions/java/03-snakeladder/src/test/java/com/scaler/entities/BoardTests.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/java/03-snakeladder/src/test/java/com/scaler/entities/BoardTests.java -------------------------------------------------------------------------------- /solutions/java/03-snakeladder/src/test/java/com/scaler/entities/GameTests.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/java/03-snakeladder/src/test/java/com/scaler/entities/GameTests.java -------------------------------------------------------------------------------- /solutions/java/03-snakeladder/src/test/java/com/scaler/entities/LadderTests.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/java/03-snakeladder/src/test/java/com/scaler/entities/LadderTests.java -------------------------------------------------------------------------------- /solutions/java/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/java/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /solutions/java/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/java/gradlew -------------------------------------------------------------------------------- /solutions/java/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/java/gradlew.bat -------------------------------------------------------------------------------- /solutions/java/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/java/settings.gradle.kts -------------------------------------------------------------------------------- /solutions/typescript/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/typescript/.gitignore -------------------------------------------------------------------------------- /solutions/typescript/01-tic-tac-toe/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/typescript/01-tic-tac-toe/package.json -------------------------------------------------------------------------------- /solutions/typescript/01-tic-tac-toe/src/entities/Board.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/typescript/01-tic-tac-toe/src/entities/Board.ts -------------------------------------------------------------------------------- /solutions/typescript/01-tic-tac-toe/src/entities/Game.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/typescript/01-tic-tac-toe/src/entities/Game.ts -------------------------------------------------------------------------------- /solutions/typescript/01-tic-tac-toe/src/entities/Player.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/typescript/01-tic-tac-toe/src/entities/Player.ts -------------------------------------------------------------------------------- /solutions/typescript/01-tic-tac-toe/src/main.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/typescript/01-tic-tac-toe/src/main.ts -------------------------------------------------------------------------------- /solutions/typescript/01-tic-tac-toe/test/test-board.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/typescript/01-tic-tac-toe/test/test-board.spec.ts -------------------------------------------------------------------------------- /solutions/typescript/01-tic-tac-toe/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/typescript/01-tic-tac-toe/tsconfig.json -------------------------------------------------------------------------------- /solutions/typescript/jest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/typescript/jest.config.js -------------------------------------------------------------------------------- /solutions/typescript/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/typescript/package-lock.json -------------------------------------------------------------------------------- /solutions/typescript/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/typescript/package.json -------------------------------------------------------------------------------- /solutions/typescript/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/championswimmer/low-level-design-problem/HEAD/solutions/typescript/tsconfig.json --------------------------------------------------------------------------------