Skip to content

Instantly share code, notes, and snippets.

@lrlucena
Created March 26, 2024 13:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lrlucena/f535a039294996a4f38be49aef8624d1 to your computer and use it in GitHub Desktop.
Save lrlucena/f535a039294996a4f38be49aef8624d1 to your computer and use it in GitHub Desktop.
tipo Posicao = (Inteiro, Inteiro)
tipo Tabuleiro = Lista[Posicao]
criarTabuleiro(tamanho: Inteiro): Tabuleiro =
para
x de 1 até tamanho,
y de 1 até tamanho
gere (x, y)
fim
colocarNavio(tabuleiro: Tabuleiro, areaTabuleiro, l, r: Inteiro): Tabuleiro =
tabuleiro.pegue(areaTabuleiro - r).descarte(l)
imprimirTabuleiro(tabuleiro: Tabuleiro, tamanhoQuebra: Int) =
para pos em tabuleiro faça
imprima "{pos} "
se (pos.segundo mod tamanhoQuebra == 0) então
escreva ""
fim
fim
imprimirNavio(areaTabuleiro: Inteiro, tabuleiro: Tabuleiro, tamanhoNavio: Inteiro): Nada
l = aleatório(1, 22)
r = areaTabuleiro - tamanhoNavio - l
navio = colocarNavio(tabuleiro, areaTabuleiro, l, r)
imprimirTabuleiro(navio, areaTabuleiro)
fim
# Programa principal
tamanhoTabuleiro = 5
areaTabuleiro = tamanhoTabuleiro * tamanhoTabuleiro
tamanhoNavio = 3
tabuleiro = criarTabuleiro(tamanhoTabuleiro)
escreva "Tabuleiro de Batalha Naval:"
imprimirTabuleiro(tabuleiro, tamanhoTabuleiro)
escreva "Navio1:"
imprimirNavio(areaTabuleiro, tabuleiro, tamanhoNavio)
escreva "Navio2:"
imprimirNavio(areaTabuleiro, tabuleiro, tamanhoNavio - 1)
escreva "Navio3:"
imprimirNavio(areaTabuleiro, tabuleiro, tamanhoNavio - 2)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment