Невозможно записать, сколько раз выполнялся цикл while - Python3 - PullRequest
0 голосов
/ 09 ноября 2018

Я работаю над игрой в угадывание чисел для python3, и конечной целью этого является показать пользователю, если он сыграет более чем в одну игру, что он получит среднее количество догадок. Однако я не могу записать, сколько раз игра действительно запускалась. Подойдет любая помощь.

from random import randint
import sys

def guessinggame():
    STOP = '='
    a = '>'
    b = '<'
    guess_count = 0
    lowest_number = 1
    gamecount = 0
    highest_number = 100
    while True: 
        guess = (lowest_number+highest_number)//2
        print("My guess is :", guess)
        user_guess = input("Is your number greater than,less than, or equal to: ")
        guess_count += 1
        if user_guess == STOP:
            break
        if user_guess == a:
            lowest_number = guess + 1            
        elif user_guess == b:
            highest_number = guess - 1
    print("Congrats on BEATING THE GAME! I did it in ", guess_count, "guesses")
    PLAY_AGAIN = input("Would you like to play again? y or n: ")
    yes = 'y'
    gamecount = 0
    no = 'n'
    if PLAY_AGAIN == yes:
        guessinggame()
        gamecount = gamecount + 1
    else:
        gamecount += 1
        print("thank you for playing!")
        print("You played", gamecount , "games")
        sys.exit(0)
    return guess_count, gamecount

print('Hello! What is your name?')
myname = input()

print('Well', myname, ', I want you to think of number in your head and I will guess it.')
print("---------------------------------------------------------------------------------")
print("RULES:                 if the number is correct simply input '='")
print("---------------------------------------------------------------------------------")
print("                  if YOUR number is GREATER then the output, input '>'")
print("---------------------------------------------------------------------------------")
print("                  if YOUR number is LESS then the output, input '<'")
print("---------------------------------------------------------------------------------")
print("                                ALRIGHT LETS PLAY")
print("---------------------------------------------------------------------------------")



guessinggame()
guess_count = guessinggame()
print(" it took me this many number of guesses: ", guess_count)


## each game the user plays is added one to it
## when the user wants to the game to stop they finish it and
## prints number of games they played as well as the average of guess it took
## it would need to take the number of games and add all the guesses together and divide it.

1 Ответ

0 голосов
/ 09 ноября 2018

Это потому, что вы либо вызываете guessinggame () каждый раз, когда пользователь хочет играть снова, либо вы выходите из программы. Также вы устанавливаете gamecount на 0 каждый раз, когда вызываете guessinggame (). Вы должны убрать декларацию и инициализацию gamecount из своей функции. Также увеличьте счетчик игр, прежде чем вызывать guessinggame ().

...