MC102 - Algoritmos e Programação de Computadores
MC102 Oferecimento anterior

MULTIBINGO! Tarefa de laboratório 10

Esta tarefa é uma extensão da tarefa anterior, em que será simulada a participação com múltiplas cartelas em um jogo de Bingo. A ideia é que você trabalhe agora com listas tridimensionais e veja a importância do uso de funções para estruturar o seu programa.

+----------------+ +----------------+
| B  I  N  G  O  | | B  I  N  G  O  |
+================+ +================+
| 01 19 43 59 63 | | 09 18 39 59 69 |
| 10 24 34 55 75 | | 08 27 33 47 64 |
| 07 29 XX 49 67 | | 14 28 XX 46 70 |
| 09 27 36 51 70 | | 06 16 36 50 72 |
| 12 30 45 53 73 | | 12 26 45 58 63 |
+----------------+ +----------------+

Os números sorteados durante o jogo deverão ser procurados e marcados, se for o caso, em todas as cartelas em que forem encontrados.

B-06
+----------------+ +----------------+
| B  I  N  G  O  | | B  I  N  G  O  |
+================+ +================+
| 01 19 43 59 63 | | 09 18 39 59 69 |
| 10 24 34 55 75 | | 08 27 33 47 64 |
| 07 29 XX 49 67 | | 14 28 XX 46 70 |
| 09 27 36 51 70 | | XX 16 36 50 72 |
| 12 30 45 53 73 | | 12 26 45 58 63 |
+----------------+ +----------------+
I-27
+----------------+ +----------------+
| B  I  N  G  O  | | B  I  N  G  O  |
+================+ +================+
| 01 19 43 59 63 | | 09 18 39 59 69 |
| 10 24 34 55 75 | | 08 XX 33 47 64 |
| 07 29 XX 49 67 | | 14 28 XX 46 70 |
| 09 XX 36 51 70 | | XX 16 36 50 72 |
| 12 30 45 53 73 | | 12 26 45 58 63 |
+----------------+ +----------------+

Em caso da formação de um padrão de Bingo em uma das cartelas, a mensagem BINGO! deverá ser emitida e o processamento dos números sorteados deverá ser encerrado.

Descrição da entrada

A primeira linha conterá o número de cartelas. Em seguida, a entrada conterá cinco linhas para a descrição de cada cartela.

<n_cartelas>
< descrição_cartela0>    
...
< descrição_cartelan-1>

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>.

<m_numeros_sorteados>
<letra0>-<numero0>
...
<letram-1>-<numerom-1>

Descrição da saída

Inicialmente, você deverá escrever as cartelas com a mesma moldura da tarefa anterior, uma ao lado da outra, como já ilustrado na primeira seção. Deve haver um espaço em branco entre cada cartela e não há espaço em branco após a última cartela.

Em seguida, deverá processar os números sorteados. Todo número lido deve ser escrito na saída e, caso tenha sido encontrado em alguma cartela, todas as cartelas deverão ser reescritas com XX no lugar da(s) ocorrência(s) 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.

Testes para o SuSy

Esta tarefa contém 8 testes abertos e 2 testes fechados. Não será necessário fazer a validação dos dados da entrada.

Orientações para submissão

Veja aqui a página de submissão da tarefa. Lembre-se que o arquivo a ser submetido deve se chamar lab10.py.

No link Arquivos auxiliares há um arquivo aux-10.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 é 01/12/2018 (último dia para o cumprimento da carga horária/programa das disciplinas). Recomenda-se a realização desta tarefa antes da Prova 2.