Install requirments for flask app
pip3 install -r requirements.txt
Then start the flask app
python3 app.py
Start local server in graphics directory
cd graphics
python -m http.server
- Play a full game of battleship
- Not see my opponents PIECES
- Not have the oponent see my pieces
- View the game through a GUI
- Have intuitive gui menu
- Easily place pieces
- Make hits obvious and satisfying
- Make misses obvious and unsatisfying
- Audio
- Scoreboar/profiles/save previous games
- Board for each action (shooting, receiving shots)
- Add more features to core game(radar) to make game more skill based.
- Customize game options (board size, number of ships)
- Alternate weapons
- Random map events (depth charge, weapons, storms?)
- Historic/geographic maps
- Battleship POV
- Subs/Airplanes(scouts?) in differnt layers/planes
- find Easter Eggs
William Horn (wbhorn@alaska.edu)
Add endpoint to create game and save it in session
The code to store the player/ships objects as dict's still needs to be
implimented so the whole game object can be stored in the session as
json.
Add colors to for ascetics
Also have a dummy request to create a game, and
a none functioning button to switch players.
Remove duplicat ship info
Getting init ship types from backend
Setup flask server to commincate between js and python code
Split classes up into seprate files
refactor ship draw function
Also fixed positioning bug where row, col were not getting multiplied by
size
Start work on graphics
About 2 hours of work sofar.
Remove battle ship class in favor of just game class
Move position class into seprate file
Move tile creation method into position object
Ship positions are handled by object
Add is_vertical to position object
Refactor position into simple object
Turn battle ship class into factory function
Also did some refactoring with how arguments are passed
Fix broken directory/file structure
Remove pycache folders
These files should not ever be commited.
Fix bug in set_position test
Testing that direction can be set on ships
Extreme positional values throw errors.
Run tests with tests.py
Test whether ship is out of bounds or not
Pass in x, y coordinates to set ships position.
Testing if position can be set
Ships have a position keyword argument
Test for ships having a position
Make players have the right type of ships.
Test players have ships of correct size.
Test players have right number of ships.
Hal DiMarchi(hadimarchi@alaska.edu)
made set sound watery
added an alternative sound for placing
added engine start sound for placing a boat
game now uses turns
Player who is not in play will have no effect if/when using
the GUI.
fixed merge conflicts and implemented placement
can place ships through gui
Backend logic is responsive to ship placement
Some error handling is done in the frontend but most
is done in the backend.
swap players endpoint in app.py written
fixed conflicts
grabbing and returning status of ship (alive or dead)
getting placement in the backend to work
fire shot endpoint better
Ironed out a bug that was causing shots to effect
tiles they were not placed at.
game from_dict function, flask app handles firing shots
from and to dict functions for player, ship, and position with passing test cases
From and to dict functions are for saving/loading the game state between
requests using file I/O.
beginning work on battleship logic, and removing use of tkinter
Tkinter seems to result in dirty code in my experience.
refactor of player and gui
lets call it refactoring
fixing merge and allowing battle_ship module
hopefully bringing in battle_ship module correctly
fixing strange merge conflict
fixed placement logic
ships placed on board. bottom board is russia, top is america
refactored position system and redid tests for that system. About to start setting ships with buttons
all tests for BattleShip, Game, and GuiHelper classes passing
all tests passing
starting to implement gui and battleship game with players and ships. Some changes to ships include storing them in a dictionary, where keys are the type of ship, and removal of amount for the list of ship lengths
formatting file structure of project, updating readme
user stories
.gitignore
Merge branch 'master' of https://github.com/hadimarchi/battle_ship
initial commit
Initial commit