Game Over


#1



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


Thank you for your time and help
With my Battleship, i have gone up to the Game over, and i expected my player to guess/play four times before he/s is told Game over, but what i am getting is with a single wrong guess i get You missed my battleship! , no chance for my player to guess the second time upto the 4th time before it prints Game over. please help if you got a better explanation .


i expected a player to guess up to four times before it tells him it is game over


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

# Everything from here on should go in your for loop!
# Be sure to indent four spaces!
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!"
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 (turn + 1) here!
for turn in range(4):
    print  "Turn", turn + 1
    print_board(board)

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


#2

see this comments:

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

if you follow this comments, the game should work as you wish


#3

thank you for that pointer, let me work on it and see


#4

everything which needs to happen multiply times (prompting user for coordinates, checking if ship is hit and so on) should be inside the loop

Let me know if more help is required, if so, please also include your code. But first try and work in it, see how far you can get with my pointer :slight_smile:


#5

i got it right and perfect...thank you so much


#6

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