Uno2K

main.py

Nov 6th, 2021
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.56 KB | None | 0 0
  1. # Importações Necessárias
  2. import random
  3.  
  4. # Criando as peças do jogo
  5. def cria_pecas():
  6.     peças = []
  7.     for i in range(7):
  8.         for a in range(7):
  9.             if [i, a] not in peças and [a, i] not in peças:
  10.                 peças.append([i, a])
  11.     random.shuffle(peças)
  12.     return peças
  13.  
  14. # Iniciando o Jogo
  15. def inicia_jogo(jogadores, peças):
  16.     dicionario = {'jogadores': {}, 'monte': [], 'mesa': []}
  17.     for i in range(jogadores):
  18.         dicionario['jogadores'][i] = peças[0:7]
  19.         del peças[0:7]
  20.     dicionario['monte'] = peças
  21.     return dicionario
  22.  
  23. # Verificando Ganhador
  24. def verifica_ganhador(dicionario):
  25.     for k in dicionario.keys():
  26.         if dicionario[k] == []:
  27.             return k
  28.     else: return -1
  29.  
  30. # Soma das peças dos jogadores
  31. def soma_pecas(pecas_jogador):
  32.     soma = 0
  33.     for p in pecas_jogador:
  34.         soma += p[0]
  35.         soma += p[1]
  36.    
  37.     return soma
  38.  
  39. # Possíveis posições na mesa
  40. def posicoes_possiveis(mesa, pecas):
  41.     posicoes = []
  42.     if len(mesa) == 0: # mesa vazia
  43.         for i in range(len(pecas)):
  44.             posicoes.append(i)
  45.         return posicoes
  46.  
  47.     p1 = mesa[0][0]  # Uma das pontas da mesa
  48.     p2 = mesa[-1][1] # A outra ponta da mesa
  49.  
  50.     for c in range(len(pecas)):
  51.         if pecas[c][0] == p1 or pecas[c][0] == p2 or pecas[c][1] == p1 or pecas[c][1] == p2:
  52.             posicoes.append(c)
  53.     return posicoes
  54.  
  55. def adiciona_na_mesa(peca, mesa):
  56.     if len(mesa) == 0:
  57.         mesa.append(peca)
  58.         return mesa
  59.  
  60.     p1 = peca[0] # primeiro número da peça
  61.     p2 = peca[1] # segundo número da peca
  62.  
  63.     mesa1 = mesa[0][0] # primeiro número da primeira peça
  64.     mesa2 = mesa[-1][1] # Último número da última peça
  65.  
  66.     if p1 == mesa1:
  67.         inv = [p2, p1]
  68.         mesa.insert(0, inv) # Peça invertida na mesa
  69.  
  70.     elif p2 == mesa1:
  71.         mesa.insert(0, peca) # Peça na posição original na mesa
  72.  
  73.     elif p1 == mesa2:
  74.         mesa.append(peca) # Peca no final da mesa
  75.  
  76.     elif p2 == mesa2:
  77.         inv = [p2, p1]
  78.         mesa.append(inv) # Peça invertida na mesa
  79.        
  80.     return mesa
  81.  
  82. #---------------------------------------------------------------#
  83. #                       IGNORE - TEST ONLY                      #
  84. jogadores = 2
  85. peças = cria_pecas()
  86. dicionario = (inicia_jogo(jogadores, peças))
  87. pecas_testes = dicionario['jogadores'][0]
  88. pecas_testes2 = dicionario['jogadores'][0][1]
  89. #                       SOMENTE PARA TESTE                      #
  90. #---------------------------------------------------------------#
  91.  
  92.  
  93.  
  94.  
Add Comment
Please, Sign In to add comment