14. Test Run. Does your elif code work?


#1

Hi so I just finished making the battleship and I was just testing it out. I noticed that it works except for the part where it says "You guessed that one already!" I can never seem to get it to work. Am I just missing something or is it something codecademy hasn't taught us yet. Because It doesnt seem like the code would run over the same things given that I get different positions for my battleship each time I run the code.

Here is my code:

from random import randint

board = []

for x in range(0, 5):
board.append(["O"] * 5)

def print_board(board):
for row in board:
print " ".join(row)

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)
guess_row = int(raw_input("Guess Row:"))
guess_col = int(raw_input("Guess Col:"))

print ship_row
print ship_col

Write your code below!

if guess_row == ship_row and guess_col == ship_col:
print "Congratulations! You sank my battleship!"
else:
if guess_row not in range(5) or guess_col not in range(5):
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"
print_board(board)


#2

Don't worry about that, your code is correct but every time you run the code the variables start over and the board turns to its original state, so every "X" is deleted. In the following part you will use a for loop to repeat the code multiple times.


#3

Thank you! I was worry about that too.