FAQ: Learn Python - Battleship - Danger, Will Robinson!

This community-built FAQ covers the " Danger, Will Robinson!!" exercise in Codecademy’s lessons on Python.

FAQs for the Codecademy Python exercise _ Danger, Will Robinson!!_:

Join the Discussion. We Want to Hear From You!

Have a new question or can answer someone else’s? Reply (reply) to an existing thread!

Agree with a comment or answer? Like (like) to up-vote the contribution!

Need broader help or resources about Python in general? Go here!

Want to take the conversation in a totally different direction? Join our wider discussions.

Learn more about how to use this guide.

Found a bug? Report it!

Have a question about your account, billing, Pro, or Pro Intensive? Reach out to our support team!

None of the above? Find out where to ask other questions here!

1 Like

Other FAQs

The following are links to additional questions that our community has asked about this exercise:

  • This list will contain other frequently asked questions that aren’t quite as popular as the ones above.
  • Currently there have not been enough questions asked and answered about this exercise to populate this FAQ section.
  • This FAQ is built and maintained by you, the Codecademy community – help yourself and other learners like you by contributing!

Not seeing your question? It may still have been asked before – try (search) in the top-right of this page. Still can’t find it? Ask it below by hitting the reply button below this post (reply).

2 posts were split to a new topic: How do I set the list element

Why is my code giving this error: ValueError: invalid literal for int() with base 10: ‘RUN’ or ValueError: invalid literal for int() with base 10: ‘SCT’ ? what can I do to solve it?

Thanks

Edit: I’ll leave this here if anyone spots a possible cause. But reloading the webpage seems to get it working fine. I’m guessing cache issue.

The tutorial is giving me the next option, but my first guess is automatically duplicated into the second guess option meaning I can’t guess the column, and the guesses are then only possible on a diagonal from 0,0 to 4,4.

I can’t see a cause, any ideas?

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)
print ship_row
print ship_col

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 sank my battleship!"
else:
  print "You missed my battleship!"
  board[guess_row][guess_col] = "X"
  print_board(board)
2 Likes