def posicao_valida?(mapa, posicao)
linhas = mapa.size
colunas = mapa[0].size
estourou_linha = posicao[0] < 0 || posicao[0] >= linhas
estourou_coluna = posicao[1] < 0 || posicao[1] >= colunas
if estourou_linha || estourou_coluna
return false
end
if mapa[posicao[0]][posicao[1]] == "X"
return false
end
true
end
if !posicao_valida?(mapa, nova_posicao)
next
end
O uso do do operador ! é para inverter o resultado logico da expressao e nos possilitar sair deste laço ?