17. A Real Win


#1

https://www.codecademy.com/courses/learn-python/lessons/battleship/exercises/a-real-win?action=lesson_resume

File “python”, line 33
if guess_row == ship_row and guess_col == ship_col:
^
IndentationError: unexpected indent

I’m a bit stuck on the indentation any help will be appreciated! xD

```python

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):
print “Turn”, turn + 1
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!"
break
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 + 1) here!
print (turn + 1)
print_board(board)
if turn == 3:
print “Game Over”

<do not remove the three backticks above>

#2

Hey!
Recommend you to use any available IDE (Like PyCharm for example), it will become much easier to solve the problems with indentation. Check this code so you’ll be able to fix yours:

Spoiler 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)



# Everything from here on should be in your for loop
# don't forget to properly indent!
for turn in range(4):
    guess_row = int(input("Guess Row: "))
    guess_row -= 1 #because indexes start from 0 , but the input is in range 1 to 5
    guess_col = int(input("Guess Col: "))
    guess_col -= 1 #because indexes start from 0 , but the input is in range 1 to 5
    print("Turn", turn + 1)
    if guess_row == ship_row and guess_col == ship_col:
        print("Congratulations! You sank my battleship!")
        break
    else:
        if guess_row not in range(5) or \
            guess_col not in range(5):
            print("Oops, that's not even in the ocean.")
        else:
            print("You missed my battleship!")
            board[ship_row][ship_col] = "S" #mark the ship on the board , can be removed
            board[guess_row][guess_col] = "X" 
            if turn == 3:
                print('Game Over')
    print_board(board)

#3

Thanks man! Using an IDE really helped :grinning:


#4

May I also ask you out of interest how you implemented the spoiler code? It’s pretty sweet :smiley:


#5
There is a panel when you write a comment
you need to press </> on it in order to write your code 
under the spoiler. 

Also you can use ``` at the beginning and at the end

the code between ``` will be inside spoiler

:blush:


#7

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