Naval Battle 1.1

This commit is contained in:
Kaio Henrique 2024-11-25 12:47:10 -03:00
parent 92a6efc621
commit 93eda0f85f
1 changed files with 174 additions and 48 deletions

View File

@ -1,3 +1,4 @@
#esse jogo ainda está sob teste... e não deve ser considerado completo
#setup #setup
import turtle as tl import turtle as tl
import random import random
@ -19,7 +20,7 @@ tiro_pos = {
"B2": (100,100), "B2": (100,100),
"B3": (100,0), "B3": (100,0),
"B4": (100,-100), "B4": (100,-100),
"B5": (100,-100), "B5": (100,-200),
"C1": (0,200), "C1": (0,200),
"C2": (0,100), "C2": (0,100),
"C3": (0,0), "C3": (0,0),
@ -37,23 +38,21 @@ tiro_pos = {
"E5": (-200,-200), "E5": (-200,-200),
} }
#funções #funções
def linhax(x,y): def linhax(x,y):
tl.up(); tl.goto(x,y) tl.up(); tl.goto(x,y)
tl.down(); tl.goto(x+600,y) tl.down(); tl.goto(x+600,y)
pass #pass
def linhay(x,y): def linhay(x,y):
tl.up(); tl.goto(x,y) tl.up(); tl.goto(x,y)
tl.down(); tl.goto(x,y+600) tl.down(); tl.goto(x,y+600)
pass #pass
#radar screen #radar screen
tl.bgcolor("lime green") tl.bgcolor("lime green")
#moldura #moldura
tl.tracer(0)
linhax(-300,-300) linhax(-300,-300)
linhay(-300,-300) linhay(-300,-300)
linhay(300,-300) linhay(300,-300)
@ -73,50 +72,105 @@ linhay(0,-300); tl.write("C",False,align="right")
linhay(100,-300); tl.write("B",False,align="right") linhay(100,-300); tl.write("B",False,align="right")
linhay(200,-300); tl.write("A",False,align="right") linhay(200,-300); tl.write("A",False,align="right")
#Tabuleiro pronto #Tabuleiro pronto
tl.update()
tl.tracer(1)
tl.title("Naval Battle 1943") tl.title("Naval Battle 1943")
tl.hideturtle() tl.hideturtle()
boat = tl.Turtle()
boat.up(); boat.goto(0,0); boat.left(90)
#Enemies bullet = tl.Turtle()
e1 = tl.Turtle() bullet.color("Yellow")
e1.up() bullet.hideturtle()
e1.color("red") bullet.up()
e1.goto(random.choice(posx), random.choice(posy))
#gamemode SinglePlayer
gmode = tl.textinput("Modo de Jogo","Qual Modo Deseja jogar?\ndigite multi para jogar com um amigo do lado\ne single para jogar sozinho")
if gmode == "single":
win = False
print("Modo Solitario Selecionado! escolha onde ficaram seus navios")
#Player 1
p1 = tl.Turtle()
p1.up()
spawnp1 = str(input("Senhor, Onde Nosso Submarino Deve Ficar? "))
p1.goto(tiro_pos[spawnp1])
p2 = tl.Turtle()
p2.up()
spawnp2 = str(input("Senhor, Onde Nosso Crusador Deve Ficar? "))
p2.goto(tiro_pos[spawnp2])
p3 = tl.Turtle()
p3.up()
spawnp3 = str(input("Senhor, Onde Nosso Destroyer Deve Ficar? "))
p3.goto(tiro_pos[spawnp3])
#pass
#inimigos
e1 = tl.Turtle()
e1.up()
e1.color("red")
e1.goto(random.choice(posx), random.choice(posy))
e2 = tl.Turtle() e2 = tl.Turtle()
e2.up() e2.up()
e2.color("red") e2.color("red")
e2.goto(random.choice(posx), random.choice(posy)) e2.goto(random.choice(posx), random.choice(posy))
if e1.pos() == e2.pos(): if e1.pos() == e2.pos():
e2.goto(random.choice(posx), random.choice(posy)) e2.goto(random.choice(posx), random.choice(posy))
e3 = tl.Turtle() e3 = tl.Turtle()
e3.up() e3.up()
e3.color("red") e3.color("red")
e3.goto(random.choice(posx), random.choice(posy))
if e1.pos() == e3.pos():
e3.goto(random.choice(posx), random.choice(posy)) e3.goto(random.choice(posx), random.choice(posy))
if e2.pos() == e3.pos(): if e1.pos() == e3.pos():
e3.goto(random.choice(posx), random.choice(posy)) e3.goto(random.choice(posx), random.choice(posy))
if e2.pos() == e3.pos():
e3.goto(random.choice(posx), random.choice(posy))
#pass
#partidas while win == False:
win = False e1_sunk = False
while win == False: e2_sunk = False
e3_sunk = False
tiro = tl.textinput("linha X do disparo","Em qual quadrante X devemos disparar a artilharia") tiro = tl.textinput("linha X do disparo","Em qual quadrante X devemos disparar a artilharia")
if (tiro_pos[tiro]) == e1.pos() or (tiro_pos[tiro]) == e2.pos() or (tiro_pos[tiro]) == e3.pos(): #acerto Submarino
boat.goto(tiro_pos[tiro]) if (tiro_pos[tiro]) == e1.pos():
bullet.showturtle()
bullet.goto(tiro_pos[tiro])
print("Acerto!") print("Acerto!")
boat.write("U-boat Afundado\n Capitão!",False,align="center") bullet.write("U-boat Afundado\n Capitão!",False,align="center")
break bullet.hideturtle()
else: e1_sunk = True
boat.goto(tiro_pos[tiro]) #acerto Crusador
elif (tiro_pos[tiro]) == e2.pos():
bullet.showturtle()
bullet.goto(tiro_pos[tiro])
print("Acerto!")
bullet.write("Crusador Afundado\n Capitão!",False,align="center")
bullet.hideturtle()
e2_sunk = True
#acerto Destroyer
elif(tiro_pos[tiro]) == e3.pos():
bullet.showturtle()
bullet.goto(tiro_pos[tiro])
print("Acerto!")
bullet.write("Destroyer Afundado\n Capitão!",False,align="center")
bullet.hideturtle()
e3_sunk = True
#erro
elif (tiro_pos[tiro]) != e1.pos() or (tiro_pos[tiro]) != e2.pos() or (tiro_pos[tiro]) != e3.pos():
bullet.showturtle()
bullet.goto(tiro_pos[tiro])
print("errou!") print("errou!")
boat.write("Erramos o alvo\n Capitão!",False,align="center") bullet.write("Erramos o alvo\n Capitão!",False,align="center")
bullet.hideturtle()
continue continue
elif e1_sunk == True and (e2_sunk == True) and (e3_sunk == True):
break
else:
print("Voçe ganhou!")
@ -125,17 +179,89 @@ while win == False:
#Multiplayer
elif gmode == "multi":
win = False
print("Modo Multiplayer Selecionado! Fique ao lado de seu amigo\nnão olhe os navios dele e vice-versa")
#Player 1
p1 = tl.Turtle()
p1.up()
spawnp1 = str(input("Senhor, Onde Nosso Submarino Deve Ficar? "))
p1.goto(tiro_pos[spawnp1])
p2 = tl.Turtle()
p2.up()
spawnp2 = str(input("Senhor, Onde Nosso Crusador Deve Ficar? "))
p2.goto(tiro_pos[spawnp2])
p3 = tl.Turtle()
p3.up()
spawnp3 = str(input("Senhor, Onde Nosso Destroyer Deve Ficar? "))
p3.goto(tiro_pos[spawnp3])
#pass
#player 2
p1_2 = tl.Turtle()
p1_2.up()
spawnp1_2 = str(input("Senhor, Onde Nosso Submarino Deve Ficar? "))
p1_2.goto(tiro_pos[spawnp1_2])
p2_2 = tl.Turtle()
p2_2.up()
spawnp2_2 = str(input("Senhor, Onde Nosso Crusador Deve Ficar? "))
p2_2.goto(tiro_pos[spawnp2_2])
p3_2 = tl.Turtle()
p3_2.up()
spawnp3_2 = str(input("Senhor, Onde Nosso Destroyer Deve Ficar? "))
p3_2.goto(tiro_pos[spawnp3_2])
#pass
while win == False:
tiro = tl.textinput("linha X do disparo","Em qual quadrante X devemos disparar a artilharia")
if (tiro_pos[tiro]) == p1.pos() or (tiro_pos[tiro]) == p1_2.pos():
bullet.showturtle()
bullet.goto(tiro_pos[tiro])
print("Acerto!")
bullet.write("U-boat Afundado\n Capitão!",False,align="center")
bullet.hideturtle()
break
elif (tiro_pos[tiro]) == p2.pos() or (tiro_pos[tiro]) == p2_2.pos():
bullet.showturtle()
bullet.goto(tiro_pos[tiro])
print("Acerto!")
bullet.write("Crusador Afundado\n Capitão!",False,align="center")
bullet.hideturtle()
break
elif(tiro_pos[tiro]) == p3.pos() or (tiro_pos[tiro]) == p3_2.pos():
bullet.showturtle()
bullet.goto(tiro_pos[tiro])
print("Acerto!")
bullet.write("Destroyer Afundado\n Capitão!",False,align="center")
bullet.hideturtle()
break
else:
bullet.showturtle()
bullet.goto(tiro_pos[tiro])
print("errou!")
bullet.write("Erramos o alvo\n Capitão!",False,align="center")
bullet.hideturtle()
continue
#partidas
#Execução #Execução
tl.mainloop() tl.mainloop()
tl.exitonclick() tl.exitonclick()