Battleship 15/19

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)


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 be in your for loop
# don't forget to properly indent!

if guess_row == ship_row and guess_col == ship_col:
    print "Congratulations! You sank my battleship!"   
  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." )
    print "You missed my battleship!"
    board[guess_row][guess_col] = "X"
  if (turn == 3):
    print "Game Over"
for turn in range(4):
  print "Turn", turn + 1
  guess_row = int(raw_input("Guess Row: "))
  guess_col = int(raw_input("Guess Col: "))

I’ve put the for loop at the end of a code and it appears that there is a difference in an output in comparison to putting for loop above “if guess_row…” In the example above output doesn’t return the board with “Xs” - places that have been already guessed. It makes sense to me there should be a difference but I don’t know what really makes it.

Gratefull to hear some sugestions! Best


the comment gives a good hint about the place of the for loop:

# Everything from here on should be in your for loop
# don't forget to properly indent!

but also think, what code should all be in the for loop? You want to give the user multiple guesses and handle each guess


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