A Python implementation of the classic battleship game.

Translating ships

I decided to be very original with so common name as battleship. I know that Google Translate has about 40 different languages to choose from. I type in "battle ship" in English and start peeking different languages on the opposite side and I start tasting how these new words sound like.

Translating ships

So "the ships, the battle" = "bato yo slaget". You read it as BArcelona TOrtuga YOlk SLAck friGATE

Main menu

History

Basic logic adopted from @JBKahn code.

Console version

Features I liked:

  • board size is a variable
  • amount of players defined at runtime
  • user ships can be placed on the board randomly
  • simple console output

Positioning

Important things added:

  • ships can not intersect
  • unlimited amount of players (strange feature of course)
  • split the monolith code onto small classes (one class - one file)
  • game logic in separate python modules

From @tmac-balla I've taken the engine that uses PyGame library and

  • extended logic classes with sprites and fonts
  • linked game classes to the engine

Current state of development

Gameplay

  • game ends when the game ends (just restart the app)
  • not stable (auto ship positioning going wild)
  • and maybe more...

Github

Roadmap

OK, how to make a regular dead simple Battleship implementation to be more like Not your father's battleship?

Gameplay ideas

  1. Not square field (check out this review and read more about hexagons)
  2. Restoring fog of war plus moving ships
  3. Ships against coastal defense
  4. Aircraft carrier (5 cells) - relatively easy to find and sink, but it gives exploration data with some chance to locate one cell ships

Technical ideas

  1. Run Python on Android
  2. Switch to voxel engine

Win message

Other games

Battleship Variations

On Play Store

Rate this page