BINGO!
Tarefa de laboratório 09Em um jogo de Bingo, os participantes recebem cartelas com 24 números distintos dispostos em uma matriz com 5 linhas e 5 colunas, sendo que o elemento central não recebe número. Os números da primeira coluna devem estar no intervalo de 1 a 15, da segunda, de 16 a 30, da terceira, de 31 a 45, da quarta, de 46 a 60 e da quinta, de 61 a 75. Além disto, a palavra BINGO costuma estar escrita no topo das cartelas de maneira a facilitar a identificação das colunas. Observe:
+----------------+
| B I N G O |
+================+
| 12 24 43 49 72 |
| 07 23 31 57 62 |
| 04 20 XX 51 73 |
| 08 21 38 50 61 |
| 05 27 40 54 63 |
+----------------+
Durante o jogo, números são sorteados e anunciados juntamente com o identificador das colunas, como, por exemplo, B-02, I-17 ou G-54. Ao verificar que um número sorteado está em sua cartela, o jogador deve marcá-lo. Ganha prêmios quem completar com números sorteados uma linha, uma coluna ou uma das diagonais.
+----------------+ +----------------+ +----------------+ +----------------+
| B I N G O | | B I N G O | | B I N G O | | B I N G O |
+================+ +================+ +================+ +================+
| 12 24 43 49 72 | | 12 24 XX 49 72 | | XX 24 43 49 72 | | 12 24 43 49 XX |
| 07 23 31 57 62 | | 07 23 XX 57 62 | | 07 XX 31 57 62 | | 07 23 31 XX 62 |
| 04 20 XX 51 73 | | 04 20 XX 51 73 | | 04 20 XX 51 73 | | 04 20 XX 51 73 |
| XX XX XX XX XX | | 08 21 XX 50 61 | | 08 21 38 XX 61 | | 08 XX 38 50 61 |
| 05 27 40 54 63 | | 05 27 XX 54 63 | | 05 27 40 54 XX | | XX 27 40 54 63 |
+----------------+ +----------------+ +----------------+ +----------------+
Sua tarefa será implementar um programa em Python para simular a participação de um jogador com uma única cartela em uma partida de Bingo.
As primeiras cinco linhas da entrada correspondem aos números da cartela. Para facilitar a leitura, o elemento central será marcado com XX.
12 24 43 49 72
07 23 31 57 62
04 20 XX 51 73
08 21 38 50 61
05 27 40 54 63
A próxima linha conterá a quantidade de números sorteados que deverão ser processados. Em seguida, os números virão um por linha no padrão <letra>-<numero>
.
6
N-38
N-40
B-06
N-43
N-31
O-72
Inicialmente, você deverá escrever a cartela com a moldura, o espaçamento e a palavra BINGO representada com nos exemplos da primeira seção. Em seguida, deverá processar os números sorteados. Todo número lido deve ser escrito na saída e, caso tenha sido encontrado na cartela, a cartela deve ser reescrita com XX no lugar do elemento sorteado. Caso uma linha, coluna ou diagonal tenha sido completada, a palavra BINGO é emitida e processamento termina, mesmo que existam mais números na entrada.
+----------------+
| B I N G O |
+================+
| 12 24 43 49 72 |
| 07 23 31 57 62 |
| 04 20 XX 51 73 |
| 08 21 38 50 61 |
| 05 27 40 54 63 |
+----------------+
N-38
+----------------+
| B I N G O |
+================+
| 12 24 43 49 72 |
| 07 23 31 57 62 |
| 04 20 XX 51 73 |
| 08 21 XX 50 61 |
| 05 27 40 54 63 |
+----------------+
N-40
+----------------+
| B I N G O |
+================+
| 12 24 43 49 72 |
| 07 23 31 57 62 |
| 04 20 XX 51 73 |
| 08 21 XX 50 61 |
| 05 27 XX 54 63 |
+----------------+
B-06
N-43
+----------------+
| B I N G O |
+================+
| 12 24 XX 49 72 |
| 07 23 31 57 62 |
| 04 20 XX 51 73 |
| 08 21 XX 50 61 |
| 05 27 XX 54 63 |
+----------------+
N-31
+----------------+
| B I N G O |
+================+
| 12 24 XX 49 72 |
| 07 23 XX 57 62 |
| 04 20 XX 51 73 |
| 08 21 XX 50 61 |
| 05 27 XX 54 63 |
+----------------+
BINGO!
Esta tarefa contém 8 testes abertos e 2 testes fechados. Não será necessário fazer a validação dos dados da entrada.
Veja aqui a página de submissão da tarefa. Lembre-se que o arquivo a ser submetido deve se chamar lab09.py.
No link Arquivos
auxiliares há um
arquivo aux-09.zip
que
contém todos os arquivos de testes abertos e seus respectivos
resultados compactados. Os arquivos executa-testes.py
e executa-testes-windows.py
também estão
neste pacote.
Observe o limite máximo de 20 submissões.
A nota final é proporcional ao número de testes que executaram corretamente, desde que o código esteja coerente com o enunciado. A submissão de um código que não implementa o algoritmo requisitado, mas que exibe as saídas esperadas dos testes abertos a partir da comparação de trechos da entrada será considerada fraude e acarretará a atribuição de nota zero à média final da disciplina.
O peso desta tarefa é 3.
O prazo final para submissão é 20/11/2018.