Informática, perguntado por lucas27484, 6 meses atrás

Ajude a escrever funções para o Jogo da Velha.

Neste exercício, o jogo sempre começará com o jogador (X) e ambos os jogadores devem efetuar seus lances de forma alternada. Após cada lance, o tabuleiro deve ser atualizado. Ajude a construir esse jogo implementado somente as seguintes funções:

''' Funcao que imprime o tabuleiro na tela '''
def imprimeJogo(matriz):

''' Funcao que armazena uma jogada e retorna o tabuleiro atualizado '''
def atualizaMatriz(matriz, lin, col, tipo):



Entrada:

Não há entrada. O parâmetro da função imprimeJogo é uma matriz de caracteres representando o tabuleiro e suas jogadas e os parâmetros da função atualizaMatriz são uma matriz de caracteres representando o tabuleiro e suas jogadas, a linha, coluna e tipo que receberão uma nova jogada.

Saída:

A matriz contendo o estado do tabuleiro deverá ser impressa na tela de forma que cada item da matriz seja precedido e sucedido por um espaço em branco.

Observação:

A matriz inicial vazia deverá ser preenchida com o símbolo hífen (-) e impressa desta forma:

- - -
- - -
- - -

Durante a atualização do tabuleiro, a matriz deverá ser populada com as letras X (xis maiúsculo) e O (o maiúsculo), e impressa como neste exemplo:

X O X
O X O
X - X

Submeta somente o que foi solicitado!

No segundo caso de teste, a matriz passada como parâmetro tem um X na posição 0,1; um O na posição 1,1; e um X na posição 2,1.

No terceiro caso de teste, a matriz recebe um X na posição 0,1.

Anexos:

Soluções para a tarefa

Respondido por GeBEfte
2

O exercício se contradiz em um ponto. Observe que a descrição da saída nos diz que a impressão da matriz deve garantir que cada item seja precedido e sucedido por espaço, no entanto o 3º exemplo (anexo) mostram esse trabalho sendo feito pelo usuário quando atualiza a posição 0,1 com ' X ', uma string contendo um X precedido e sucedido por espaços em branco.

Sendo assim, vou apresentar duas soluções, uma atendendo ao que é descrito no enunciado e outra, ao que é visto nos exemplos.

[Python 3.8]

1ª Solução:

\sf de f~ imprimeJogo(matriz):\\~~~~ for~ linha~ in~ matriz:\\~~~~~~~~    for~ elemento~ in~ linha:\\~~~~~~~~~~~~      print(f'~\{elemento\}~ ',~ end='')\\~~~~~~~~    print()\\\\de f~ atualizaMatriz(matriz,~ lin,~ col,~ tipo):\\~~~~  matriz[lin][col]~ =~ tipo\\~~~~  return~ matriz

Script exemplo para testagem das funções:

\sf matriz~ =~ [['-',~ '-',~ '-'],~ ['-',~ '-',~ '-'],~ ['-',~ '-',~ '-']]\\imprimeJogo(matriz)\\print()\\imprimeJogo(atualizaMatriz(matriz,~ 0 ,~ 1 ,~ 'X'))

2ª Solução:

\sf de f~ imprimeJogo(matriz):\\~~~~ for~ linha~ in~ matriz:\\~~~~~~~~    for~ elemento~ in~ linha:\\~~~~~~~~~~~~      print(elemento,~ end='')\\~~~~~~~~    print()\\\\de f~ atualizaMatriz(matriz,~ lin,~ col,~ tipo):\\~~~~  matriz[lin][col]~ =~ tipo\\~~~~  return~ matriz

Script exemplo para testagem das funções:

\sf matriz~ =~ [['~-~',~ '~-~',~ '~-~'],~ ['~-~',~ '~-~',~ '~-~'],~ ['~-~',~ '~-~',~ '~-~']]

\sf imprimeJogo(matriz)\\print()\\imprimeJogo(atualizaMatriz(matriz,~ 0 ,~ 1 ,~ '~X~'))

\Huge{\begin{array}{c}\Delta \tt{\!\!\!\!\!\!\,\,o}\!\!\!\!\!\!\!\!\:\,\perp\end{array}}Qualquer~d\acute{u}vida,~deixe~ um~coment\acute{a}rio

Perguntas interessantes