├── .gitignore ├── README.md ├── img.png ├── pom.xml ├── problem-statement.md └── src └── main └── java └── com └── uditagarwal └── game └── battleship ├── GameLoop.java ├── Main.java ├── exceptions ├── CoordinateOutOfBoundaryException.java └── InvalidInputException.java ├── io ├── input │ ├── IInputProvider.java │ ├── PlayerInput.java │ └── SysInInputProvider.java └── output │ ├── IOutputPrinter.java │ └── SysOutOutputPrinter.java ├── model ├── Board.java ├── BoardItem.java ├── Coordinate.java ├── PlayerChanceTarget.java ├── boundary │ ├── IBoundary.java │ └── RectangularBoundary.java └── player │ └── Player.java └── strategy ├── DefaultWinnerStrategy.java ├── IChanceGenerationStrategy.java ├── IPlayerPickingStrategy.java ├── IWinnerStrategy.java ├── LocalChanceGeneration.java └── RoundRobinPlayerPickingStrategy.java /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/battleship-game-low-level-design/HEAD/.gitignore -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/battleship-game-low-level-design/HEAD/README.md -------------------------------------------------------------------------------- /img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/battleship-game-low-level-design/HEAD/img.png -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/battleship-game-low-level-design/HEAD/pom.xml -------------------------------------------------------------------------------- /problem-statement.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/battleship-game-low-level-design/HEAD/problem-statement.md -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/game/battleship/GameLoop.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/battleship-game-low-level-design/HEAD/src/main/java/com/uditagarwal/game/battleship/GameLoop.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/game/battleship/Main.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/battleship-game-low-level-design/HEAD/src/main/java/com/uditagarwal/game/battleship/Main.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/game/battleship/exceptions/CoordinateOutOfBoundaryException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/battleship-game-low-level-design/HEAD/src/main/java/com/uditagarwal/game/battleship/exceptions/CoordinateOutOfBoundaryException.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/game/battleship/exceptions/InvalidInputException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/battleship-game-low-level-design/HEAD/src/main/java/com/uditagarwal/game/battleship/exceptions/InvalidInputException.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/game/battleship/io/input/IInputProvider.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/battleship-game-low-level-design/HEAD/src/main/java/com/uditagarwal/game/battleship/io/input/IInputProvider.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/game/battleship/io/input/PlayerInput.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/battleship-game-low-level-design/HEAD/src/main/java/com/uditagarwal/game/battleship/io/input/PlayerInput.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/game/battleship/io/input/SysInInputProvider.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/battleship-game-low-level-design/HEAD/src/main/java/com/uditagarwal/game/battleship/io/input/SysInInputProvider.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/game/battleship/io/output/IOutputPrinter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/battleship-game-low-level-design/HEAD/src/main/java/com/uditagarwal/game/battleship/io/output/IOutputPrinter.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/game/battleship/io/output/SysOutOutputPrinter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/battleship-game-low-level-design/HEAD/src/main/java/com/uditagarwal/game/battleship/io/output/SysOutOutputPrinter.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/game/battleship/model/Board.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/battleship-game-low-level-design/HEAD/src/main/java/com/uditagarwal/game/battleship/model/Board.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/game/battleship/model/BoardItem.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/battleship-game-low-level-design/HEAD/src/main/java/com/uditagarwal/game/battleship/model/BoardItem.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/game/battleship/model/Coordinate.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/battleship-game-low-level-design/HEAD/src/main/java/com/uditagarwal/game/battleship/model/Coordinate.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/game/battleship/model/PlayerChanceTarget.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/battleship-game-low-level-design/HEAD/src/main/java/com/uditagarwal/game/battleship/model/PlayerChanceTarget.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/game/battleship/model/boundary/IBoundary.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/battleship-game-low-level-design/HEAD/src/main/java/com/uditagarwal/game/battleship/model/boundary/IBoundary.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/game/battleship/model/boundary/RectangularBoundary.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/battleship-game-low-level-design/HEAD/src/main/java/com/uditagarwal/game/battleship/model/boundary/RectangularBoundary.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/game/battleship/model/player/Player.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/battleship-game-low-level-design/HEAD/src/main/java/com/uditagarwal/game/battleship/model/player/Player.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/game/battleship/strategy/DefaultWinnerStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/battleship-game-low-level-design/HEAD/src/main/java/com/uditagarwal/game/battleship/strategy/DefaultWinnerStrategy.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/game/battleship/strategy/IChanceGenerationStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/battleship-game-low-level-design/HEAD/src/main/java/com/uditagarwal/game/battleship/strategy/IChanceGenerationStrategy.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/game/battleship/strategy/IPlayerPickingStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/battleship-game-low-level-design/HEAD/src/main/java/com/uditagarwal/game/battleship/strategy/IPlayerPickingStrategy.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/game/battleship/strategy/IWinnerStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/battleship-game-low-level-design/HEAD/src/main/java/com/uditagarwal/game/battleship/strategy/IWinnerStrategy.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/game/battleship/strategy/LocalChanceGeneration.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/battleship-game-low-level-design/HEAD/src/main/java/com/uditagarwal/game/battleship/strategy/LocalChanceGeneration.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/game/battleship/strategy/RoundRobinPlayerPickingStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/battleship-game-low-level-design/HEAD/src/main/java/com/uditagarwal/game/battleship/strategy/RoundRobinPlayerPickingStrategy.java --------------------------------------------------------------------------------