如何记录我的三分之二的得分,并为球员使用不同的符号?python

如何记录我的三分之二的得分,并为球员使用不同的符号?python,python,Python,我正在用python制作一个2人游戏的战舰游戏,并且已经为此奋斗了一段时间: 如果问题措词不当,我深表歉意,但我想知道如何在三场比赛结束时用如下方式将我的比赛记录下来: print('Match score is' + score + 'Player' + (whoever) + 'wins!) 我自己也不完全确定如何实现这一点,我在range3中有一个游戏范围,但我不知道如何记录最终得分 另外,我怎样才能更改player_two的符号,使两个player都不使用“X”?我尝试更改输入检查,但

我正在用python制作一个2人游戏的战舰游戏,并且已经为此奋斗了一段时间:

如果问题措词不当,我深表歉意,但我想知道如何在三场比赛结束时用如下方式将我的比赛记录下来:

print('Match score is' + score + 'Player' + (whoever) + 'wins!)
我自己也不完全确定如何实现这一点,我在range3中有一个游戏范围,但我不知道如何记录最终得分

另外,我怎样才能更改player_two的符号,使两个player都不使用“X”?我尝试更改输入检查,但我得到的错误比以前更多

from random import randint

game_board = []
player_one = {
    "name": "Player 1",
    "wins": 0,
    "lose": 0
}
player_two = {
    "name": "Player 2",
    "wins": 0,
    "lose": 0
}


# Building our 5 x 5 board
def build_game_board(board):
    for item in range(5):
        board.append(["O"] * 5)

def show_board(board):
    print("Find and sink the ship!")
    for row in board:
        print(" ".join(row))

# Defining ships locations
def load_game(board):
    print("WELCOME TO BATTLESHIP!")
    print("START")
    del board[:]
    build_game_board(board)
    show_board(board)
    ship_col = randint(1, len(board))
    ship_row = randint(1, len(board[0]))
    return {
        'ship_col': ship_col,
        'ship_row': ship_row,
    }

ship_points = load_game(game_board)


# Players will alternate turns.
def player_turns(total_turns):

    if total_turns % 2 == 0:
        total_turns += 1
        return player_one

    else:
        return player_two

# Allows new game to start
def play_again():
    global ship_points
    answer = input("Would you like to play again? ")
    if answer == "yes" or answer == "y":
        ship_points = load_game(game_board)

    else:
        print("Thanks for playing!")
        exit()

# What will be done with players guesses
def input_check(ship_row, ship_col, player, board):
    guess_col = 0
    guess_row = 0
    while True:
        try:
            guess_row = int(input("Guess Row:")) - 1
            guess_col = int(input("Guess Col:")) - 1
        except ValueError:
            print("Enter a number only: ")
            continue
        else:
            break
    match = guess_row == ship_row - 1 and guess_col == ship_col - 1
    not_on_game_board = (guess_row < 0 or guess_row > 4) or (guess_col < 0 or guess_col > 4)

    if match:
        player["wins"] += 1
        print("Congratulations! You sunk my battleship!")
        print("Thanks for playing!")
        play_again()

    elif not match:
        if not_on_game_board:
            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"
        show_board(game_board)

    else:
        return 0


def main():
    begin = input('Type \'start\' to begin: ')
    while (begin != str('start')):
        begin = input('Type \'start\' to begin: ')

    for games in range(3):
        for turns in range(6):

            if player_turns(turns) == player_one:
                # print(ship_points)
                print("Player One")
                input_check(
                    ship_points['ship_row'],
                    ship_points['ship_col'],
                    player_one, game_board
                )

            elif player_turns(turns) == player_two:
                print("Player Two")
                input_check(
                    ship_points['ship_row'],
                    ship_points['ship_col'],
                    player_two, game_board
                )

        if turns == 5:
            print("The game is a draw")
            play_again()

if __name__ == "__main__":
    main()

可以使用样式字符串格式打印日志

print('Match score is %d : %d(Player1 : Player2)' % (player_one["wins"], player_two["wins"]))
有关字符串格式的详细信息,请选中

要更改播放器2的符号,可以更改以下代码

elif board[guess_row][guess_col] == "X" or board[guess_row][guess_col] == "Y":
    print("You guessed that one already.")

else:
    print("You missed my battleship!")
    if player == player_one:
        board[guess_row][guess_col] = "X"
    else:
        board[guess_row][guess_col] = "Y"

@扎利德尔,不客气。您可以单击我的答案旁边的勾号接受它。完成。谢谢你的链接,非常有用。可能需要整理一些代码:我们可以有一个名为cur_player的变量,它从1切换到0,然后player_misses=['X','Y']和board[guess_row][guess_col]=player_misses[cur_player]。然后第一个elif会说elif board[guess\u row][guess\u col]==player\u misses[cur\u player]。