Advertisement
Uno2K

game.py

Nov 6th, 2021
1,042
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.36 KB | None | 0 0
  1. # Importando funções e bibliotecas
  2.  
  3. from random import *
  4. from main import *
  5. import numpy as np
  6. from yachalk import chalk
  7.  
  8. # Começando o jogo
  9. flag = True
  10. continuar = True
  11.  
  12. while flag:
  13.     n_jogadores = int(input('Qual o número o de jogadores [2-4]: '))
  14.     if n_jogadores > 4 or n_jogadores < 2:
  15.         print(chalk.red('Número inválido, favor escolher um número entre 2 e 4!'))
  16.     else:
  17.         flag = False
  18.  
  19. pecas = cria_pecas()
  20. inicia = inicia_jogo(n_jogadores, pecas)
  21. mesa = inicia['mesa']
  22. jogadores_pecas = inicia['jogadores']
  23. monte = inicia['monte']
  24.  
  25. ordem = np.arange(0, n_jogadores)
  26. random.shuffle(ordem)
  27.  
  28. print(f'No jogo temos: \n{n_jogadores} jogadores com 7 peças cada!\n')
  29.  
  30. # Função de formatação do jogo
  31. game_on = True
  32. while game_on:
  33.     for i in ordem:
  34.         def formata():
  35.            
  36.             print(chalk.blue(f'Tamanho do monte: {len(monte)} peças'))
  37.             print(chalk.yellow(f"Mesa Atual: {mesa}\n"))
  38.  
  39.             print("-"*30)
  40.  
  41.             if i != 0:
  42.                 print(chalk.green(f'Jogador {i} com {len(jogadores_pecas[i])} peças: '))
  43.             else:
  44.                 print(chalk.green(f'Jogador {0} com {len(jogadores_pecas[0])} peças: '))
  45.                 print(chalk.magenta(jogadores_pecas[0]))
  46.  
  47.             print("-"*30)
  48.            
  49.             if len(posicoes_possiveis(mesa, jogadores_pecas[i])) >= 1  and i == 0 :
  50.                 print("\nPosições das peças possíveis: ")
  51.                 print(posicoes_possiveis(mesa, jogadores_pecas[i]))
  52.  
  53.  
  54.             if i == 0:
  55.                 jogar = int(input('Qual peça você quer jogar: '))
  56.                 adiciona_na_mesa(jogadores_pecas[i][jogar], mesa)
  57.                 jogadores_pecas[i].pop(jogar)
  58.  
  59.             # COMPRA DO MONTE!(Manual)
  60.             compra_monte = 0
  61.             while len(posicoes_possiveis(mesa, jogadores_pecas[0])) == 0 and len(jogadores_pecas[0]) > 0: # Apenas o jogador manual deve apertar ENTER para comprar peças
  62.                 user_input = input(
  63.                     chalk.red.bold(
  64.                         '\nVocê não tem peças possiveis! Aperte [ENTER] para comprar do monte!\n'
  65.                     )
  66.                 )
  67.  
  68.                 if user_input == '':
  69.                     jogadores_pecas[0].append(monte[0])
  70.                     monte.pop(0)
  71.                     compra_monte += 1
  72.                 else:
  73.                     print(chalk.red.bold("Opção Invalida! Precisione a tecla [ENTER]\n"))
  74.                 print(chalk.red(f"Você comprou {compra_monte} peça(s) nessa rodada\n"))
  75.            
  76.             # Jogador Automático
  77.             if i > 0:
  78.                 a = posicoes_possiveis(mesa,jogadores_pecas[i])
  79.                 if len(a) == 0:
  80.                     compra_monte2 = 0
  81.                     while len(posicoes_possiveis(mesa, jogadores_pecas[i])) == 0 and len(jogadores_pecas[i]) > 0: # Esse while não está funcionando - Quando o robo tira a peça que é possível de jogar o loop, porém ele não joga a peça possível na mesa
  82.                             jogadores_pecas[i].append(monte[0])
  83.                             monte.pop(0)
  84.                             compra_monte2 += 1
  85.  
  86.                             print(chalk.red(f"O Jogador {i} comprou {compra_monte2} peça(s) nessa rodada"))
  87.                             print(f'{jogadores_pecas[i]}\n') # Tirar esse print quando o código estiver pronto
  88.                            
  89.                 a = posicoes_possiveis(mesa,jogadores_pecas[i])
  90.                 print(jogadores_pecas[i])
  91.                 print(f'Posições possíveis{a}')
  92.                 # print(f'{jogadores_pecas[i][a[0]]}\n')
  93.                 adiciona_na_mesa(jogadores_pecas[i][a[0]], mesa) # Por causa do else esse a só pode ser igual a 0 - PROBLEMA
  94.                 jogadores_pecas[i].pop(a[0])
  95.                    
  96.                
  97.             if len(monte) == 0 and len(posicoes_possiveis(mesa, jogadores_pecas[i])) == 0:
  98.                 for c in ordem:
  99.                     pontuacao = soma_pecas(jogadores_pecas[c])
  100.  
  101.                     print(chalk.green(f"No desempate, o ganhador foi o jogador {i}!!")) # Precisa de ajuste
  102.  
  103.                 quit()
  104.                
  105.             if len(jogadores_pecas[i]) == 0:
  106.                 print(chalk.green(f"Jogo acabou! \nO ganhador foi o jogador {i}!!"))
  107.                 quit()
  108.                
  109.         formata()
  110.  
  111.  
  112.  
  113.  
  114.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement