Extra Credit


I want to put 3 ships into the board but how do they make sure that they do not overlap/ have the same coordinate.

from random import randint

board = []

for x in range(5):
    board.append(["O"] * 5)

def print_board(board):
    print("  0 1 2 3 4")
    for row in range(len(board)):
        print str(row) + " " + " ".join(board[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_row1 = random_row(board)
ship_col1 = random_col(board)
ship_row2 = random_row(board)
ship_col2 = random_col(board)
ship_row3 = random_row(board)
ship_col3 = random_col(board)
print ship_row
print ship_col

for turn in range(4):
    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"
            if turn == 3:
                print "Game Over"
                print "Turn", (turn + 1)


you could make an if condition? something like:

if ship_row1 != ship_row2 and ship_col1 != ship_col2:

this will make sure the ships are not on the same coordinates. you could nest another if condition inside this one to make sure ship2 and ship3 are not in conflict.


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