A real win


i had done exactly what the instructions told me to do, it was also correct but i can only guess the ship’s location once. i think there is something wrong with my for statement but i don’t know what it is .

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)


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

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

this is what i have doe


that would be the most logic explanation, but we can’t see what it is unless you share your code with us


i have just added it


the code that prompts the user for input is not nested inside the loop, so the input is gathered once, and then used over and over again the loop


ohhhh thank you very much !! it works after i changed it. : )


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