How to make it repeat battleship? python 3.5


#1



Im wondering how to make this so the player can choose whether or not they want to play again and a code how to make it repeat. Also to show how many times lost and won and the game number.


board = []
space = "                 "
guess_row = "0"
guess_col = "0"

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

def print_board(board):
    for row in board:
        print (" ".join(row))

print ("Let's play Battleship!")

player1 = input("What is Player One's name?")
print("Ok, hello %s" % (player1))
player2 = input("What is Player Two's name?")
print("Ok, hello %s" % (player2))
print_board(board)

def type_row(board):
    board = int(input("%s please look away and %s type in the number of row(between 0 and 4): " % (player2,player1)))
    print(space * 1000)
    if board < 0 or board > 4:
        print ("Invalid number of row.")
        type_row(board)
    return board

def type_col(board):
    board = int(input("%s please look away and %s type in the number of column(between 0 and 5): " % (player2,player1)))
    print(space * 1000)
    print("%s may look now" % (player2))
    if board < 0 or board > 5:
        print ("Invalid number of column.")
        type_col(board)
    return board

ship_row = type_row(board)
ship_col = type_col(board)

for turn in range(5):
    print_board(board)
    guess_row = int(input("Guess Row(0 to 4):"))
    guess_col = int(input("Guess Column(0 to 5):"))

    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 > 5):
            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 ("Turn" , turn + 1, "is over.")
    print_board(board)
    if turn == 4:
        print ("Game over, the battleship lies at (", ship_row, ",", ship_col,").")


#2

Well I can't give you all the code but I can give you a way to loop until the user decides to stop playing,

keep_going = True

while keep_going:
    #main game
    ask = input("Would you like to continue? ")
    if ask == "yes":
        keep_going
    if ask == "no":
        keep_going = False

#3

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