A inovação é um jogo de cartas em que os jogadores lutam ao longo dos tempos, da pré-história aos tempos modernos, na tentativa de obter conquistas mais rapidamente do que seus oponentes.
Cada carta da Innovation é única e fornece ao jogador vários ícones. Se tratarmos cada cartão como uma grade 2x3, três dos quatro slots nas bordas esquerda e inferior sempre serão ocupados por ícones (os símbolos em hexágonos pretos não são contados).
O jogo possui 6 tipos de ícones (castelos, coroas, folhas, lâmpadas, fábricas e relógios), que representaremos arbitrariamente usando os caracteres 012345
. Usando #
para representar o hexágono preto, podemos usar quatro caracteres para representar os ícones em cada cartão. Por exemplo, os cartões acima são
0.. #.. 3.. 1.. -> 03#0 #331 355# 144#
3#0 331 55# 44#
Agora, em Inovação, as cartas na área de jogo são agrupadas em pilhas *, dispostas de uma das quatro maneiras. Para cada exemplo, usaremos as cartas acima, assumindo que a carta mais à esquerda 03#0
, está no topo da pilha.
Sem dispersão: apenas a carta do topo é visível
0..
3#0
Espalhe para a esquerda : a carta superior é totalmente visível e o terço direito de todas as cartas abaixo
0..|.|.|.|
3#0|1|#|#|
Espalhe para a direita : a carta superior é totalmente visível, assim como o terço esquerdo de todas as cartas abaixo
1|3|#|0..
4|5|3|3#0
Espalhe para cima : a carta superior é totalmente visível, assim como a metade inferior de todas as cartas abaixo.
0..
3#0
---
331
---
55#
---
44#
O desafio
A entrada será uma única string separada por espaço, composta por duas partes:
- Uma direção de espalhamento, que é uma das
!<>^
opções, que não representa, espalhou para a esquerda, espalhou para a direita ou espalhou para cima, respectivamente. - Uma lista não vazia de cartões, cada um com 4 caracteres e constituído pelos caracteres
012345#
. A carta mais à esquerda está no topo da pilha e cada carta contém exatamente uma#
.
As respostas podem ser funções, programas completos ou equivalente . Você pode escolher se a direção de exibição é a primeira ou a última, ou seja, escolha um dos dois formatos abaixo:
> 03#0 #331 355# 144#
03#0 #331 355# 144# >
A saída será uma lista de seis números representando a contagem de cada ícone, por exemplo, para os cartões de exemplo acima:
! 03#0 #331 355# 144# -> 2 0 0 1 0 0
< 03#0 #331 355# 144# -> 2 1 0 1 0 0
> 03#0 #331 355# 144# -> 2 1 0 3 1 1
^ 03#0 #331 355# 144# -> 2 1 0 3 2 2
Por exemplo, o caso no splay tinha dois 0
ícones e um 3
ícone aparecendo, dando a primeira linha. Observe que não contamos #
s, pois os hexágonos pretos não são ícones.
Você pode escolher qualquer maneira razoável e não ambígua de representar a lista, por exemplo, separada por delimitador ou usando a representação natural da lista do seu idioma.
Casos de teste
! 113# -> 0 2 0 1 0 0
< 113# -> 0 2 0 1 0 0
> 113# -> 0 2 0 1 0 0
^ 113# -> 0 2 0 1 0 0
! 000# 12#2 -> 3 0 0 0 0 0
< 000# 12#2 -> 3 0 1 0 0 0
> 000# 12#2 -> 3 1 1 0 0 0
^ 000# 12#2 -> 3 0 2 0 0 0
! 000# 111# 222# -> 3 0 0 0 0 0
< 000# 111# 222# -> 3 0 0 0 0 0
> 000# 111# 222# -> 3 2 2 0 0 0
^ 000# 111# 222# -> 3 2 2 0 0 0
! 335# #101 21#2 333# 2#20 3#33 4#54 #133 3#33 32#2 -> 0 0 0 2 0 1
< 335# #101 21#2 333# 2#20 3#33 4#54 #133 3#33 32#2 -> 1 1 2 5 1 1
> 335# #101 21#2 333# 2#20 3#33 4#54 #133 3#33 32#2 -> 0 3 3 7 1 1
^ 335# #101 21#2 333# 2#20 3#33 4#54 #133 3#33 32#2 -> 2 4 4 10 1 2
Observe que algo como !
é entrada inválida, pois a lista é garantida como não vazia.
* Para os propósitos deste desafio, estamos ignorando as cores da pilha.