17. A Real Win


#1



https://www.codecademy.com/courses/python-beginner-en-4XuFm/2/3?curriculum_id=4f89dab3d788890003000096#

line 34 invalid syntax and I don't know why


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

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
    
    if turn == 3: 
        print "Game Over"
    print_board(board)


#2

If just looking at it and what's right above isn't making it obvious what the problem is, then back up your code somewhere and start removing stuff until you only have the minimum amount that causes the syntax error. That way you'll have ruled a whole lot out and you are now in a much better position to deal with the syntax error. Since you shouldn't have much code left by this point, you can look up syntax for each thing you're doing.


#3

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

"this is the answer"