Descrição
Consideramos uma versão ligeiramente simplificada do Tetris, em que cada movimento consiste em:
- girando a peça no sentido horário, 0 a 3 vezes
- posicionando a peça em uma determinada coluna
- queda rápida
O objetivo é determinar o número de linhas concluídas, dada uma lista desses movimentos do Tetris.
As linhas concluídas são removidas quando as peças são descartadas, seguindo as regras padrão do Tetris.
Playfield
O campo de jogo tem 10 colunas de largura. Não há Game Over e presume-se que sempre haja espaço e tempo suficientes para executar as ações acima, independentemente da configuração do campo de jogo. A altura do campo de jogo realmente não importa aqui, mas você pode usar as 22 linhas padrão como limite superior.
Formas de tetrominós
Entrada / Saída
Entrada
Uma lista separada por vírgula de movimentos do Tetris codificados com 3 caracteres. Os dois primeiros caracteres descrevem a forma de Tetromino a ser usada e o último descreve a posição em que caiu.
- Tetromino:
I,O,T,L,J,ZouS, na mesma ordem como acima. - Número de rotações no sentido horário:
0a3 - Coluna:
0para9. Esta é a coluna na qual o canto superior esquerdo da peça (marcado com umxna foto acima) fica após a rotação 1
Supõe-se que todas as movimentações na lista fornecida são válidas. Não há necessidade de verificar entradas inválidas, como I07( Iforma horizontal colocada muito à direita).
1 Você pode implementar um algoritmo de rotação real ou codificar todas as formas diferentes, contanto que ele xesteja localizado na coluna fornecida pelo terceiro caractere da movimentação.
Saída
Número de linhas concluídas.
Exemplo
O00,T24irá gerar a primeira posição e O00,T24,S02,T01,L00,Z03,O07,L06,I05irá gerar a segunda posição.
Portanto, a seguinte sequência irá gerar um Tetris e deve retornar 4:
O00,T24,S02,T01,L00,Z03,O07,L06,I05,I19
Casos de teste
1) "O00,T24,S02,T01,L00,Z03,O07,L06,I05,I19" -> 4
2) "S00,J03,L27,Z16,Z18,I10,T22,I01,I05,O01,L27,O05,S13" -> 5
3) "I01,T30,J18,L15,J37,I01,S15,L07,O03,O03,L00,Z00,T38,T01,S06,L18,L14" -> 4
4) "S14,T00,I13,I06,I05,I19,L20,J26,O07,Z14,Z10,Z12,O01,L27,L04,I03,S07,I01,T25,J23,J27,O01,
I10,I10" -> 8
5) "O00,T24,L32,T16,L04,Z11,O06,L03,I18,J30,L23,Z07,I19,T05,T18,L30,I01,I01,I05,T02" -> 8
Página de teste
Você pode usar este JSFiddle para testar uma lista de movimentação.

