I am trying to improve the game. When the user guesses coordinates that they have already guessed before, I want the turn counter to stay the same.
I tried putting turn -= 1 after the elif statement checking to see if the user had already made the guess. The turn counter still increments and eventually reaches game over, although it doesn’t trigger the “Game Over” text.
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_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) 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): 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." turn -= 1 else: print "You missed my battleship!" board[guess_row][guess_col] = "X" if turn == 3: print("Game Over") # Print (turn + 1) here print "Turn", turn turn += 1 print_board(board)