This is the repository for the ECM1400 Battleships Coursework. The aim of this project is to create a Battleships game in Python. The game will have multiple ways to play, either in a console or with a web interface.
- Python 3.11
- Clone the GitHub repository or run
pip install battleships-pkg-epratt
- RUN
pip install -r requirements.txt
- RUN
python game_engine.py -c
- EDIT
placement.json
to change where your ships will be placed - Format of {"Ship_Name": ["X_coord", "Y_coord", "direction either v or h"]}
- RUN
python mp_game_engine.py -c
- RUN
python main.py
- Then go to https://127.0.0.1/placement in your browser
- RUN
pytest
- Logs for the games are stored in
battleships.log
To access the sphinx autodoc documentation, open docs/build/html/index.html
in your browser
Documentation may be available here but will likely be out of date https://edguardia.github.io/ECM1400-Battleships-Coursework/
config.yaml
contains the configuration for the game. This includes the board size- To edit the board size, change the
board_size
variable inconfig.yaml
to an integer preferably less than 20 - You can also change level of logging here by setting
logging_level
to one ofDEBUG, INFO, WARNING, ERROR, CRITICAL, NOTSET
- To edit the number or length of battleships add or edit new rows in
battleships.txt
with the formatname_of_ship, length_of_ship
- Edward Pratt
- GPL-3.0
https://pypi.org/project/battleships-pkg-epratt/1.0.0/ https://github.com/Edguardia/ECM1400-Battleships-Coursework
https://edguardia.github.io/ECM1400-Battleships-Coursework
- components.py tasks
- Simple Placement
- Random Placement
- Custom Placement
- game_engine.py tasks
- mp_game_engine.py tasks
- main.py (FLASK) tasks
- Logging tasks
- Code Styling
- Project Delivery
- Input Validation
- Difficulty Levels
- AI has been slightly improved to stop it hitting the same squared twice
- Testing
- Most of the testing has been written
- Not all custom functions have written tests
- Config Files
- Config files have been implemented but not for all features user could choose
- Multi-Player Interface