Please my code isn't going through


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!"

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!"
    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."
        print "You missed my battleship!"
        board[guess_row][guess_col] = "X"
    # Print (turn + 1) here!
    if turn == 3:
        print "Game Over"

Please my code isn't going through

17/19 A Real Win

look at this comments:

# Everything from here on should go in your for loop!
# Be sure to indent four spaces!

they give a good hint of what is wrong with your code


I went and redid this module and was thoroughly frustrated with the logic of the lesson plan and the resulting code. Since we are in a range loop there is no messing with the iterator, and no turns that don't cost a turn. It's a for loop.

Notice the break in the first condition? That's as good as a return. That if statement is done. We no longer need an else.

What's interesting in the above code is that we knew to use range() in the loop but yet we did not use it in the if. Did something get mssed along the way?

if guess_row not in range(5) and guess_col not in range(5):

and now this is the next line. No else: or elif ___:

Think if through from this perspective, and if it passes, cool..


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