Python - Listas

1. Python - Listas

Akira War
Akira_war

(usa Outra)

Enviado em 18/11/2020 - 16:00h

Olá galera, estou com dificuldades para fazer essa questão:

Elastiman

Roberto é um game designer muito famoso na região onde mora por ter lançado alguns jogos de sucesso, mas nunca estabeleceu uma empresa de fato.

Há duas semanas, Roberto chegou em você com a sua mais nova ideia revolucionária de jogo, Elastiman! Sem saber a quem chamar para ajudá-lo a desenvolver, ele recorreu ao programador mais próximo, que aconteceu de ser você.

Seu trabalho na primeira versão do jogo é desenvolver a parte da engine que lida com gravidade.

Entrada:

A primeira linha da entrada contém um inteiro N.

As próximas N linhas conterão uma matriz N x N, descrevendo o cenário atual:

cada '.' corresponde a um espaço vazio;

cada 'x' corresponde a um bloco fixo, que não está sujeito à gravidade;

cada 'o' corresponde a um bloco móvel, que está sujeito à gravidade.

Saída:

Seu programa deve imprimir a tela após um ciclo do loop de jogo, após a execução da gravidade. Para simplificar sua vida, considere a gravidade uma força que só puxa um espaço para baixo por loop, não uma força física de facto.

Note que blocos móveis não podem atravessar blocos fixos.

For example:

3
o o o
o o o
. . .

Resultado:
. . .
o o o
o o o


O meu problema é que o resultado do exemplo acima está saindo como:

o o o
. . .
o o o

O que tem de errado com o meu código??



Meu código:

K = int(input())
matrix = []

for i in range(K):

linha = input().split()
matrix.append(linha)

for j in range(len(matrix)-1):

for _ in range(len(matrix[j])):
if matrix[j][_] == "o":
if matrix[j+1][_] == ".":
matrix[j][_] = "."
matrix[j+1][_] = "o"
for i in matrix:
print(*i)





  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts