NotAgain "Syntax Error, Invalid syntax


#1



Hello Everyone. I'm stuck at 13.Not Again exercise in "Battleship"


My error Looks like this :

File "python", line 43
elif board[guess_row][guess_col] =="X":
^
SyntaxError: invalid syntax


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

print ship_row
print ship_col

# Write your code below!
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)
    
    if guess_row > range(5) or guess_col > range(5):
        print  "Oops, that's not even in the ocean."
    else :
        print "You missed my battleship!"
        
elif board[guess_row][guess_col] =="X":
    print "You guessed that one already."


Any help would be appreciated!
Thanks


#2

looking at the flow of your program (game logic), does it make sense to check if the user already guessed this coordinates at this point in your program? If not, where does it make sense?


#3

Never mind,.I debugged it...
This is what it should have been :
if guess_row > range(5) or guess_col > range(5):
print "Oops, that's not even in the ocean."
if board[guess_row][guess_col] =="X":
print "You guessed that one already."

else :
    print "You missed my battleship!"

The indentation is wrong in the forums but it's right in my code.
Thanks anyway.


#4

you need to use markup to make indent show:

I highly recommend to learn this, you need it on many forums (including stackoverflow)


#5

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