Lab Assignment #6

Battleship!


Description
In this assignment, I will create the game called Battleship! using the instructions from Codecademy. Battleship! is a game of chance. The objective is to sink your opponent’s battleship. Their battleship is scattered somewhere on the board. You try and hit their battleship by typing a number within the coordinates on the board. If you sink their battleship, you win.


Test Run
Thoroughly test your game. Make sure you try a variety of different guesses and look for any errors in the syntax or logic of your program.

14test run


Play It, Sam
1. Add a for loop that repeats the guessing and checking part of your game for 4 turns, like the example above.
2. At the beginning of each iteration, print “Turn”, turn + 1 to let the player know what turn they are on.
3. Indent everything that should be repeated.

15play it


Game Over
Add an if statement that checks to see if the user is out of guesses.
–Put it under the else that accounts for misses.
–Put it after the if/elif/else statements that check for the reason the player missed. we want “Game Over” to print regardless of the reason.
If turn equals 3, print “Game Over”.

16game over


A Real Win
Add a break under the win condition to end the loop after a win.

17real win


To Your Battle Stations!
When you are done playing Battleship! and are ready to move on, click Save & Submit Code.

18battle stations


Code
from random import randint
board = []
for x in range(5):
board.append([“O”] * 5)
def print_board(board):
for row in board:
print ” “.join(row)
print “Let’s play Battleship!”
print_board(board)
def random_row(board):
return randint(0, len(board) – 1)
def random_col(board):
return randint(0, len(board[0]) – 1)
ship_row = random_row(board)
ship_col = random_col(board)
print ship_row
print ship_col
# Everything from here on should go in your for loop!
# Be sure to indent four spaces!
for turn in range(4):
print “Turn”, turn + 1
guess_row = int(raw_input(“Guess Row:”))
guess_col = int(raw_input(“Guess Col:”))
if guess_row == ship_row and guess_col == ship_col:
print “Congratulations! You sunk my battleship!”
break
else:
if (guess_row < 0 or guess_row > 4) or (guess_col < 0 or guess_col > 4):
print “Oops, that’s not even in the ocean.”
elif(board[guess_row][guess_col] == “X”):
print “You guessed that one already.”
else:
print “You missed my battleship!”
board[guess_row][guess_col] = “X”
if turn == 3:
print “Game Over!”
# Print (turn + 1) here!
print_board(board)