#esse jogo ainda está sob teste... e não deve ser considerado completo #setup import turtle as tl import random posx = [-200, -100, 0, 100, 200] posy = [-200, -100, 0, 100, 200] tl.setup(650,650,None,None) tl.title("Naval Battle 1943 Loading...") tl.speed(0) #posições possiveis tiro_pos = { "A1": (200,200), "A2": (200,100), "A3": (200,0), "A4": (200,-100), "A5": (200,-200), "B1": (100,200), "B2": (100,100), "B3": (100,0), "B4": (100,-100), "B5": (100,-200), "C1": (0,200), "C2": (0,100), "C3": (0,0), "C4": (0,-100), "C5": (0,-200), "D1": (-100,200), "D2": (-100,100), "D3": (-100,0), "D4": (-100,-100), "D5": (-100,-200), "E1": (-200,200), "E2": (-200,100), "E3": (-200,0), "E4": (-200,-100), "E5": (-200,-200), "QUIT": (1000, 1000), } #funções def linhax(x,y): tl.up(); tl.goto(x,y) tl.down(); tl.goto(x+600,y) #pass def linhay(x,y): tl.up(); tl.goto(x,y) tl.down(); tl.goto(x,y+600) #pass #radar screen tl.bgcolor("lime green") #moldura tl.tracer(0) linhax(-300,-300) linhay(-300,-300) linhay(300,-300) linhax(-300,300) #linhas X linhax(-300,-200); tl.write("5",False,align="right") linhax(-300,-100); tl.write("4",False,align="right") linhax(-300,0); tl.write("3",False,align="right") linhax(-300,100); tl.write("2",False,align="right") linhax(-300,200); tl.write("1",False,align="right") #linhas Y linhay(-200,-300); tl.write("E",False,align="right") linhay(-100,-300); tl.write("D",False,align="right") linhay(0,-300); tl.write("C",False,align="right") linhay(100,-300); tl.write("B",False,align="right") linhay(200,-300); tl.write("A",False,align="right") #Tabuleiro pronto tl.update() tl.tracer(1) tl.title("Naval Battle 1943") tl.hideturtle() bullet = tl.Turtle() bullet.color("Yellow") bullet.hideturtle() bullet.up() #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 = "A1" #str(input("Senhor, Onde Nosso Submarino Deve Ficar? ")) p1.goto(tiro_pos[spawnp1]) p2 = tl.Turtle() p2.up() spawnp2 = "A2" #str(input("Senhor, Onde Nosso Crusador Deve Ficar? ")) p2.goto(tiro_pos[spawnp2]) p3 = tl.Turtle() p3.up() spawnp3 = "A3" #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.up() e2.color("red") e2.goto(random.choice(posx), random.choice(posy)) if e1.pos() == e2.pos(): e2.goto(random.choice(posx), random.choice(posy)) e3 = tl.Turtle() e3.up() e3.color("red") e3.goto(random.choice(posx), random.choice(posy)) if e1.pos() == e3.pos(): e3.goto(random.choice(posx), random.choice(posy)) if e2.pos() == e3.pos(): e3.goto(random.choice(posx), random.choice(posy)) #pass while win == False: tiro = tl.textinput("Onde Devemos Disparar?","Em Qual Intersecão Devemos Disparar?\nDigite (quit) Para Sair").upper() while tiro not in tiro_pos: tiro = tl.textinput("linha X do disparo","Em qual quadrante X devemos disparar a artilharia") #acerto Submarino if (tiro_pos[tiro]) == e1.pos(): bullet.showturtle() bullet.goto(tiro_pos[tiro]) print("Acerto!") bullet.write("U-boat Afundado\n Capitão!",False,align="center") bullet.hideturtle() e1.goto(-1000,-1000) #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.goto(-1000,-1000) #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.goto(-1000,-1000) #erro elif (tiro_pos[tiro]) != e1.pos() and (tiro_pos[tiro]) != e2.pos() and (tiro_pos[tiro]) != e3.pos(): bullet.showturtle() bullet.goto(tiro_pos[tiro]) print("errou!") bullet.write("Erramos o alvo\n Capitão!",False,align="center") bullet.hideturtle() #vencer if (e1.pos() == (-1000, -1000)) and (e2.pos() == (-1000, -1000)) and (e3.pos() == (-1000, -1000)): print("voçe ganhou") break #sair if bullet.pos() == (1000, 1000): break #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 tl.mainloop() tl.exitonclick()