renix1

Batalha naval com 2 players, done in python 3.x

Jul 24th, 2016
272
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 8.55 KB | None | 0 0
  1. # coding: utf-8
  2. # Ideia do jogo
  3. """ Construir um jogo de batalha naval para dois jogadores """
  4. # Falta desenvolver
  5. """Nenhum bug à ser consertado... Só esperando incluir mais funções!"""
  6. from random import randrange
  7. from datetime import datetime
  8.  
  9. now = datetime.now()
  10. board = []
  11. acertos_player_1 = 0
  12. acertos_player_2 = 0
  13. for x in range(5):
  14.     board.append(['O'] * 5)
  15.  
  16.  
  17. def print_board(x):
  18.     print("Índices: ")
  19.     print("  0 1 2 3 4")
  20.     i = 0
  21.     for row in x:
  22.         print(str(i)+":"+" ".join(row))
  23.         i+=1
  24. def random_row(x):
  25.     return (randrange(0, len(x)))
  26. def random_col(x):
  27.     return (randrange(0, len(x[0])))
  28. def salvar_pontuacao(acertos, player, nome):
  29.     if player == 1:
  30.         file = open('player1_pont.txt', 'a')
  31.         file.write(
  32.             '{} acertos. Pontuação feita em {}/{}/{} às {}:{} por player {} chamado {}\n'.format(acertos, now.day,
  33.                                                                                                  now.month, now.year,
  34.                                                                                                  now.hour, player,
  35.                                                                                                  now.minute, nome))
  36.         file.close()
  37.     elif player == 2:
  38.         file = open('player2_pont.txt', 'a')
  39.         file.write(
  40.             '{} acertos. Pontuação feita em {}/{}/{} às {}:{} por player {} chamado {}\n'.format(acertos, now.day,
  41.                                                                                                  now.month, now.year,
  42.                                                                                                  now.hour, now.minute,
  43.                                                                                                  player, nome))
  44.         file.close()
  45.     else:
  46.         try:
  47.             menu()
  48.         except ErroDesconhecido:
  49.             print("Erro desconhecido!")
  50. def menu():
  51.     players = {1: "X", 2: "V"}
  52.     game_over = False
  53.     while not game_over:
  54.         linha_player_2 = random_row(board)
  55.         coluna_player2 = random_col(board)
  56.         linha_player_1 = random_row(board)
  57.         coluna_player1 = random_col(board)
  58.         for player in players:
  59.             print_board(board)
  60.             if player == 1:
  61.                 print("\nO player atual é o %d\n" % (player))
  62.                 print("Linha {}, coluna {}".format(linha_player_2, coluna_player2))
  63.                 tentativa_linha = int(input("Digite a linha: "))
  64.                 tentativa_coluna = int(input("Digite a coluna: "))
  65.                 if tentativa_linha == linha_player_2 and tentativa_coluna == coluna_player2:
  66.                     global acertos_player_1
  67.                     acertos_player_1 += 1
  68.                     if acertos_player_1 == 1:
  69.                         linha_player_2 -= 1
  70.                         if linha_player_2 == -1:
  71.                             linha_player_2 = 0
  72.                         else:
  73.                             linha_player_2 = linha_player_2
  74.                         coluna_player2 -= 1
  75.                         if coluna_player2 == -1:
  76.                             coluna_player2 = 0
  77.                         else:
  78.                             coluna_player2 = coluna_player2
  79.                         board[linha_player_2][coluna_player2] = players[player]
  80.                         print("Você ganhou!!!!!!\nParabéns, você destroçou o player %d\n" % (player + 1))
  81.                     else:
  82.                         linha_player_2 = linha_player_2 - 1
  83.                         if linha_player_2 == -1:
  84.                             linha_player_2 = 0
  85.                         else:
  86.                             linha_player_2 = linha_player_2
  87.                         coluna_player2 = coluna_player2 - 1
  88.                         if coluna_player2 == -1:
  89.                             coluna_player2 = 0
  90.                         else:
  91.                             coluna_player2 = coluna_player2
  92.                         board[linha_player_2][coluna_player2] = players[player]
  93.                         print("Você ganhou mais uma vez!, parabéns você destroçou o player %d\n de novo!!!\n" % (
  94.                             player + 1))
  95.                         deseja_salvar = input("Deseja salvar a pontuação? Digite (S/n) para confirmar: ")
  96.                         if deseja_salvar.title() == 'S':
  97.                             nome_player = input("Digite o seu nome: ")
  98.                             if len(nome) > 1:
  99.                                 salvar_pontuacao(acertos_player_1, player, nome_player)
  100.                                 print("A pontuação foi salva!\n")
  101.                             else:
  102.                                 print("Você não digitou seu nome!")
  103.                         elif deseja_salvar.title() == 'N':
  104.                             print("Não iremos salvar!\n")
  105.                         else:
  106.                             print("Você não digitou nenhum dos caracteres\nNão iremos salvar...\n")
  107.                 else:
  108.                     if (tentativa_linha < 0 or tentativa_linha > 4) or (tentativa_coluna < 0 or tentativa_coluna > 4):
  109.                         print("Isso não é nem mesmo o oceano. Uau, você errou feio!\n")
  110.                     else:
  111.                         print("Você perdeu!\n")
  112.             elif player == 2:
  113.                 print("\nO player atual é o %d\n" % (player))
  114.                 print("Linha {}, coluna {}".format(linha_player_1, coluna_player1))
  115.                 tentativa_linha = int(input("Digite a linha: "))
  116.                 tentativa_coluna = int(input("Digite a coluna: "))
  117.                 if tentativa_linha == linha_player_1 and tentativa_coluna == coluna_player1:
  118.                     global acertos_player_2
  119.                     acertos_player_2 += 1
  120.                     if acertos_player_2 == 1:
  121.                         linha_player_1 -= 1
  122.                         if linha_player_1 == -1:
  123.                             linha_player_1 = 0
  124.                         else:
  125.                             linha_player_1 = linha_player_1
  126.                         coluna_player1 -= 1
  127.                         if coluna_player1 == -1:
  128.                             coluna_player1 = 0
  129.                         else:
  130.                             coluna_player1 = coluna_player1
  131.                         board[linha_player_1][coluna_player1] = players[player]
  132.                         print("Você ganhou!!!!!!\nParabéns, você destroçou o player %d\n" % (player - 1))
  133.                     else:
  134.                         linha_player_1 -= 1
  135.                         if linha_player_1 == -1:
  136.                             linha_player_1 = 0
  137.                         else:
  138.                             linha_player_1 = linha_player_1
  139.                         coluna_player1 -= 1
  140.                         if coluna_player1 == -1:
  141.                             coluna_player1 = 0
  142.                         else:
  143.                             coluna_player1 = coluna_player1
  144.                         board[linha_player_1][coluna_player1] = players[player]
  145.                         print("Você ganhou mais uma vez!, parabéns você destroçou o player %d\n de novo!!!\n" % (
  146.                             player - 1))
  147.                         acertos_player_2 += 1
  148.                         deseja_salvar = input("Deseja salvar a pontuação? Digite (S/n) para confirmar: ")
  149.                         if deseja_salvar.title() == 'S':
  150.                             nome_player = input("Digite o seu nome: ")
  151.                             if len(nome) > 1:
  152.                                 salvar_pontuacao(acertos_player_2, player, nome_player)
  153.                                 print("A pontuação foi salva!\n")
  154.                             else:
  155.                                 print("Você não digitou seu nome!")
  156.                         elif deseja_salvar.title() == 'N':
  157.                             print("Não iremos salvar!\n")
  158.                         else:
  159.                             print("Você não digitou nenhum dos caracteres\nNão iremos salvar...\n")
  160.                 else:
  161.                     if (tentativa_linha < 0 or tentativa_linha > 4) or (tentativa_coluna < 0 or tentativa_coluna > 4):
  162.                         print("Isso não é nem mesmo o oceano. Uau, você errou feio!\n")
  163.                     else:
  164.                         print("Você perdeu!\n")
  165.             else:
  166.                 try:
  167.                     game_over = False
  168.                     player = 1
  169.                 except GameOverFail:
  170.                     print("Deu algum erro que nós não sabemos...\n")
  171. menu()
Advertisement
Add Comment
Please, Sign In to add comment