jaxonavena / Battleship

1 stars 1 forks source link

OVERALL PROJECT REQUIREMENTS #3

Open jaxonavena opened 2 months ago

jaxonavena commented 2 months ago

Just putting this here so we can check the boxes as we go.

Requirements

  1. Game Setup

    a. Board size

    • [x] i. 10x10
    • [x] ii. The columns are denoted by letters (A-J)
    • [x] iii. The rows are denoted by number (1-10)

b. Number of ships (per player)

  • [x] i. Given by user
  • [x] ii. Minimum of 1 and a maximum of 5

c. Types of ships

  • [x] ii. If a total of 1 ship is chosen, then each player gets a single 1x1 ship
  • [x] iii. If a total of 2 ships is chosen, then each player gets a 1x1 and a 1x2 ship
  • [x] iv. This continues up to 5, where each player will a 1x1, 1x2, 1x3, 1x4, and a 1x5 ship

d. Ship placement - Jaxon

  • [x] i. After the number of ships is chosen, players need to be able to secretly orient and place the ships on their board.
  • [x] Place the ships (can currently pick one spot per ship, needs #2 to be resolved)
  • [x] #5 (Need to be able to lay out the rest of the length)
  • [x] Refactored and fixed and validated coordinates for ship placement (see #9)
  1. Playing the Game - Ach

    • [x] a. Taking turns, the users pick a space on the opponent's board to "fire" at. - Game already calls Ship.attack_ship() in the flow, but it doesn't do anything. I think that's where it would be though. Might be wrong.
    • [x] b. They must then be informed if the shot was a "hit" or a "miss".
    • [x] c. The player's view should be updated to reflect this (see Player's view below).
    • [x] d. After each shot, it is the other players turn. - Turn handling should be handled by Game
  2. Destroying a ship - Timi

    • [x] a. Once a ship has been hit in every space it occupies, it is sunk. - Ship class has self.hp and self.sunk attributes that do nothing right now
    • [x] b. For example, if the 1x3 ship occupies spaces B3, B4, and B5.
    • [x] c. Once the opponent has shot those three spaces, that ship is sunk.
  3. Player's view - Pete

    • [x] a. A player should have full view of their board and where their ships are placed.
    • [x] b. Show how many times each ship has been hit
    • [x] c. A player should have a board to track all shots they've fired and whether they were misses or hits. - Player.opps
  4. Game End - Peter

    • [x] a. Once a player has sunk all the opponent's ships, they immediately win.
    • [ ] UI?
    • [x] Debug random issues
    • [x] Look nice.
    • [ ] Unit tests?

Misc.

System Documentation

Documentation of your code

Comments