Программа не запущена с ошибкой неподдерживаемый тип (ы) операнда для : ‘function’ и ‘int’

#python-3.7

#python-3.7

Вопрос:

Я создаю программу для NIM для моего класса Python Intro, и у меня возникла проблема с попыткой завершить программу.

Я в растерянности…

def main():

 import random
#User random to generate integer between 10 and 100 for random pile size of marbles.
ballCount = random.randint(10, 100)
print("The size of the pile is: ",ballCount)
#Generate a random integer between 0 and 1, this will tell if the human or computer takes first turn.
def playerTurn(ballCount):
    playerTurn = random.randint(0, 1)
if playerTurn == 0:
    print("Its the computers turn...")
else:
    print("Its your turn...")
#Generate a random integer between 0 and 1, to determine if the computer is smart or dumb.
computerMode = random.randint(0, 1)
def computerDumbMode(ballCount):
    computerMode = random.randint(0, 1)
    if computerMode == 0:
        print("This computer is very dumb, no need to stress")
def computerSmartMode(ballCount):
    computerMode = random.randint(0, 1)
    if computerMode == 1:
        print("This computer is very intelligent, beware")
#In dumb mode the computer generates random values (between 1 and n/2),
#you will use a random integer n for ballCount, when it is the computers turn.
while ballCount != 1: #This will compile untill you are left with only one marble.
    if playerTurn == 0:   #This will initiate computers turn.
        if computerMode == 1:   #This will initiate Smart Mode.
           temp = random.randint(1, ballCount/2)   #Pick a random number between 1, and n/2. 
        else:   # Pick your own number of Marbles for your ballCount (n).
            if ballCount - 3 > 0 and ballCount - 3 < ballCount/2:
                temp = ballCount - 3
            elif ballCount - 7 > 0 and ballCount - 7 < ballCount/2:
                temp = ballCount - 7
            elif ballCount - 15 > 0 and ballCount - 15 < ballCount/2:
                temp = ballCount - 15
            elif ballCount - 31 > 0 and ballCount - 31 < ballCount / 2:
                temp = ballCount - 31
            else:
                temp = ballCount - 63
        print("The computer has chosen: %d marbles." % temp) #Print the number of marbles the computer has chosen.
        ballCount -= temp #Then subtract the number of marbles chosen by the computer.
    else:
        ballCountToPick = int(input("It is now your turn, Please pick the number of marbles in the range 1 - %d: " % int(ballCount/2)))   #Reads the number of marbles to be picked by user.
        while ballCountToPick < 1 or ballCountToPick > ballCount/2:   #If computer reads this invalidly, it will try repeatedly.
            ballCountToPick = int(input("The number you chose, is incorrect. Try again, and pick marbles in the range 1 - %d: " % int(ballCount/2)))
        ballCount -= ballCountToPick #Subtract the marbles that were chosen by user.
    playerTurn = (playerTurn   1) % 2 #Changes the turn of player.
    print("Now the pile is of size %d." % ballCount)
if playerTurn == 0:   #Show the outcome.
    print("You came, you saw, and you won... CONGRATULATIONS!!!")
else:
    print("Once again... You lost and the computer wins!!!")
  

main()

Пытаюсь запустить программу / игру и напечатать конечный результат, если компьютер или человек выиграет!

Ответ №1:

Ваша переменная «playerTurn» является функцией в следующей строке:

 playerTurn = (playerTurn   1) % 2 #Changes the turn of player.
  

Наличие отдельной функции «playerTurn» и переменной «player_turn» решит вашу проблему.