# Play It, Sam

#1

The Error: Oops, try again. Did you remember to print out turn + 1 each turn?

This is suppose to count the times that you guess and print the number out ever time and stop you on the 4th guess.

``````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):
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!"
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"
print "Turn", turn + 1
print_board(board)``````

#2

Since a turn is something to be repeated, it should probably be in a loop! (The whole turn even, not like, do five half turns and then the last half once)

A little bit of combining expectations with observations and code reading would tell you the same thing! If, for example, it's taking input a whole lot of times, but it's supposed to do other things in-between, then that tells you that that other stuff is either not in the loop or it's really silent, either way this information says some about what to look at in the code

#3

thank you for the help it makes sense know

#4

hi. i love you and your friend

#5

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.