i’m learning python through the codeacademy website.
Now i;m trying to code the battleship project,where i face a problem:
my code is:
import random
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 random.randint(0,len(board)-1)
def random_col(board):
return random.randint(0,len(board[0])-1)
ship_row = random_row(board)
ship_col = random_col(board)
guess_row = input("Guess Row:")
guess_col = input("Guess Col:")
print ship_row
print ship_col
if (guess_row == ship_row and guess_col == ship_col):
print "Congratulations! You sank my battleship!"
else:
if((guess_row < 0) or (guess_row > (len(board) -1) or (guess_col < 0) or (guess_col> (len(board) -1)):
print "Oops, that’s not even in the ocean."
else:
print "You missed my battleship!"
guess_row = "X"
guess_col = "X"
print_board(board)
if board[guess_row][guess_col] == "X":
print "You guessed that one already."
but it returns this error:
if((guess_row < 0) or (guess_row > (len(board) -1) or (guess_col < 0) or (guess_col> (len(board) -1)):
^
SyntaxError: invalid syntax
Can you help me with this situation?
thank in advance guys
You have nine opening but only seven closing parentheses.
I personally would remove most of them:
or, better still:
Here, the two pairs of parentheses after
notare not necessary, but IMO improve readability. Feel free to drop them if you disagree.There are some other issues with the code.
The following:
should probably read
Also the
if board[guess_row][guess_col] == "X":check should be done either before or instead of settingboard[guess_row][guess_col]to"X"for the currentguess_rowandguess_col.