0% acharam este documento útil (0 voto)
46 visualizações2 páginas

Jogo da Batalha Naval em Python

O documento contém um código Python para um jogo de batalha naval. O jogo permite que o jogador acerte navios em um tabuleiro de 5x5, fornecendo dicas após cada tentativa. O jogo termina quando todos os navios são acertados, e o número total de tentativas é exibido.
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato TXT, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
46 visualizações2 páginas

Jogo da Batalha Naval em Python

O documento contém um código Python para um jogo de batalha naval. O jogo permite que o jogador acerte navios em um tabuleiro de 5x5, fornecendo dicas após cada tentativa. O jogo termina quando todos os navios são acertados, e o número total de tentativas é exibido.
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato TXT, PDF, TXT ou leia on-line no Scribd

import random

def inicializaTabuleiro(tabuleiro):
for linha in range(5):
for coluna in range(5):
tabuleiro[linha][coluna] = -1

def mostraTabuleiro(tabuleiro):
print("\t1 \t2 \t3 \t4 \t5")
print()
for linha in range(5):
print(linha+1, end="")
for coluna in range(5):
if tabuleiro[linha][coluna] == -1:
print("\t~", end="")
elif tabuleiro[linha][coluna] == 0:
print("\t*", end="")
elif tabuleiro[linha][coluna] == 1:
print("\tX", end="")
print()

def iniciaNavios(navios):
[Link]()
for navio in range(3):
navios[navio][0] = [Link](0, 4)
navios[navio][1] = [Link](0, 4)
for anterior in range(navio):
if (
navios[navio][0] == navios[anterior][0] and
navios[navio][1] == navios[anterior][1]
):
while (
navios[navio][0] == navios[anterior][0] and
navios[navio][1] == navios[anterior][1]
):
navios[navio][0] = [Link](0, 4)
navios[navio][1] = [Link](0, 4)

def darTiro(tiro):
tiro[0] = int(input("Linha: ")) - 1
tiro[1] = int(input("Coluna: ")) - 1

def acertou(tiro, navios):


for navio in range(3):
if tiro[0] == navios[navio][0] and tiro[1] == navios[navio][1]:
print("Você acertou o tiro ({},{})".format(tiro[0]+1, tiro[1]+1))
return True
return False

def dica(tiro, navios, tentativa):


linha = 0
coluna = 0
for fila in range(3):
if navios[fila][0] == tiro[0]:
linha += 1
if navios[fila][1] == tiro[1]:
coluna += 1
print("\nDica {}: \nlinha {} -> {} navios\ncoluna {} -> {} navios".format(
tentativa, tiro[0]+1, linha, tiro[1]+1, coluna
))

def alteraTabuleiro(tiro, navios, tabuleiro):


if acertou(tiro, navios):
tabuleiro[tiro[0]][tiro[1]] = 1
else:
tabuleiro[tiro[0]][tiro[1]] = 0

tabuleiro = [[0]*5 for _ in range(5)]


navios = [[0]*2 for _ in range(3)]
tiro = [0, 0]
tentativas = 0
acertos = 0

inicializaTabuleiro(tabuleiro)
iniciaNavios(navios)

print()
while acertos != 3:
mostraTabuleiro(tabuleiro)
darTiro(tiro)
tentativas += 1

if acertou(tiro, navios):
dica(tiro, navios, tentativas)
acertos += 1
else:
dica(tiro, navios, tentativas)

alteraTabuleiro(tiro, navios, tabuleiro)

print("\n\n\nJogo terminado. Você acertou os 3 navios em {}


tentativas".format(tentativas))
mostraTabuleiro(tabuleiro)

Você também pode gostar