Source code for velha.função

# -*- coding : utf-8 -*-
# SPDX-License-Identifier: GPL-3.0-or-later
""" Jogo para ensino de programação Python.

.. codeauthor:: Carlo Oliveira <carlo@ufrj.br>

Changelog
---------
.. versionadded::    20.11
        Usando uma função.

.. versionchanged::    20.11
        Melhorando a documentação da função.

"""
ESCOLHA = "Escolha uma casa do tabuleiro"
"""Frase para pedir uma jogada."""
FINAL = "Situação final do tabuleiro"
"""Frase indicando o fim o do jogo."""
TABULEIRO = """
    {}
    {} | {} | {}
    -----------
    {} | {} | {}
    -----------
    {} | {} | {}
    """   
"""Display mostrando a situação atual do tabuleiro."""


[docs]def velha(): """Executa o joga da velha. Referências: casa Lista contendo as casas do jogo. jogador Marcador do jogador com a vez corrente. jogada Índice da casa a ser preenchida. display_das_casas Apresentação do conteúdo de cada casa: o índice se vazia ou marcador se cheia. """ casa = [None]*9 """A operação de multiplicar com a lista contendo um **None** gera uma lista contendo nove posições contendo None. """ jogador = "x" """O jogador com a peça x começa""" while True: display_das_casas = [a_casa or posicao for posicao, a_casa in enumerate(casa)] if all(casa): print(TABULEIRO.format(FINAL, *display_das_casas)) """Mostra a situação final do tabuleiro.""" break jogada = str(input(TABULEIRO.format(ESCOLHA, *display_das_casas))) """Mostra a situação atual do tabuleiro e pede a próxima jogada.""" casa_escolhida = casa[int(jogada)] """Obtem a peça que está colocada na casa escolhida""" if casa_escolhida: """Se a casa escolhida já está ocupada volta a fazer a pergunta.""" continue casa[int(jogada)] = jogador """ Coloca a peça na posição pedida pela jogada.""" jogador = "o" if jogador == "x" else "x" """Troca a vez para o outro jogador."""
if __name__ == '__main__': velha()