Ошибка IndentationError: expected an indented block

RStyle

Новичок
Пользователь
Апр 16, 2020
1
0
1
при запуске выдаёт IndentationError: expected an indented block
python 3.7
саблайм текст показывает что все ок
 

Вложения

  • Screenshot_18.png
    Screenshot_18.png
    3,8 КБ · Просмотры: 3
Последнее редактирование:

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
при запуске выдаёт IndentationError: expected an indented block
python 3.7
саблайм текст показывает что все ок
Отступы и имена функций исправил, только код не полный - нужно еще как-то запустить игру.
Python:
#Tic-Tac-Toe
import random


#эта функция выводит на экран игровое поле
def drawboard(board):
#board это список индекс 0 игнорируется
    print(board[7] + '|' + board[8] + '|' + board[9])
    print('_+_+')
    print(board[4] + '|' + board[5] + '|' + board[6])
    print(board[1] + '|' + board[2] + '|' + board[3])


def inputPlayerLetter():
#разрешение игроку ввести букву которую он выбирает
#возвращает список в котором буква игрока первый элемент, а буква компьютера второй
        letter =( )
        while not(letter == 'x' or letter == '0'):
            print('вы вибираете `X` или `0`?')
            letter = input().upper()
            if letter == 'x':
                return['x', '0']
            else:
                return


def whoGoesFirst():
    if random.randint(0, 1) == 0:
        return 'компьютер'
    else:
        return 'человек'


def makeMove(board, letter, move):
    board[move] = letter


def isWinner(bo, le):
#учитывая заполнение игрового поля, и буквы игрока, эта функция возвращает true если игрок выиграл
    return((bo[7] == le and bo[8] == le  and bo[9] == le) or
          (bo[4] == le and bo[5] == le  and bo[6] == le) or
          (bo[1] == le and bo[2] == le  and bo[3] == le) or
          (bo[7] == le and bo[4] == le  and bo[1] == le) or
          (bo[8] == le and bo[5] == le  and bo[2] == le) or
          (bo[9] == le and bo[6] == le  and bo[3] == le) or
          (bo[7] == le and bo[5] == le  and bo[3] == le) or
          (bo[9] == le and bo[5] == le  and bo[1] == le))


def getBoardCopy(board):
    boardCopy = []
    return boardCopy
    for i in board:
        boardCopy.append(i)


def isSpaceFree(board, move):
    return board[move] == ' '


def getPlayerMove(board):
    move = ' '
    while move not in '1 2 3 4 5 6 7 8 9'.split() or not isSpaceFree(board, int(move)):
        print('vash sleduishiy hod (1-9)')
        move = input()
    return int(move)


def chooseRandomMoveFromList(board, movesList):
    possibleMoves = []
    for i in movesList:
        if isSpaceFree(board, i):
            possibleMoves.append(i)
            if len(possibleMoves) != 0:
                return random.choice(possibleMoves)
            else:
                return None


def getComputerMove(board, computerletter):
    if computerletter == 'X':
        playerLetter = '0'
    else:
            playerLetter = 'X'
 
            for i in range(1, 10):
                boardCopy = getBoardCopy(board)
                if isSpaceFree(boardCopy, i):
                    makeMove(boardCopy, computerletter, i)
                    if isWinner(boardCopy, computerletter):
                        return i
    for i in range(1, 10):
        boardCopy = getBoardCopy(board)
        if isSpaceFree(boardCopy, i):
            makeMove(boardCopy, playerLetter, i)
            if isWinner(boardCopy, playerLetter):
                return i
            move = chooseRandomMoveFromList(board, [1, 3, 7, 9])
            if move is not None:
                return move
    if isSpaceFree(board, 5):
        return 5
    return chooseRandomMoveFromList(board, [2, 4, 6, 8])


def isBoardFull(board):
    for i in range(1, 10):
        if isSpaceFree(board, i):
            return False
        return True
 
    print('игра моя')
    while True:
        theBoard = [' '] * 10
        playerLetter, computerLetter = inputPlayerLetter()
        turn = whoGoesFirst()
        print('' + turn + ' ходит первым')
        gameIsPlaying = True
 
        while gameIsPlaying:
            if turn == 'Человек':
                drawboard(theBoard)
                move = getPlayerMove(theBoard)
                makeMove(theBoard, playerLetter, move)
 
                if isWinner(theBoard, playerLetter):
                    drawboard(theBoard)
                    print('Ура! Вы выиграли!')
                    gameIsPlaying = False
                else:
                    if isBoardFull(theBoard):
                        drawboard(theBoard)
                        print('Ничья!')
                        break
                    else:
                            turn ='Компьютер'
            else:
                    move = getComputerMove(theBoard, computerLetter)
                    makeMove(theBoard, computerLetter, move)
                    if isWinner(theBoard, computerLetter):
                        drawboard(theBoard)
                        print('Компьютер победил! Вы проиграли')
                        gameIsPlaying = False
                    else:
                        if isBoardFull(theBoard):
                            drawboard(theBoard)
                            print('Ничья')

                            break
                        else:
                            turn = 'Человек'
        print('Сыграем ещё раз?(да или нет)')
        if not input().lower().startswith('д'):
            break
 
  • Мне нравится
Реакции: RStyle и Student

Форум IT Специалистов