Battleships: Test Run


#1


I can't seem to figure out what is wrong with this coding. The response is really unbalanced, sometimes (5,5) is within range, then (3,4) is out of range.


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) - 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_col == ship_col and guess_row == ship_row:
    print "Congratulations! You sank my battleship!"
    
elif  ship_row not in range(len(board) -1 ) or ship_col not in range(len(board)-1 ):
    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_board(board)


#2

range() already excludes the upperbound. Not necessary to subtract 1.


#3

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