Advertisement
clesiomatias

Clone jogo Blackjack (21)

Feb 4th, 2019
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 7.01 KB | None | 0 0
  1. #-*-coding: utf-8 -*-
  2.  
  3. ##Clone do jogo clássico 21
  4. ##Programado de forma procedural
  5. ##Linguagem Python 3.6
  6.  
  7. __author__ = 'Clésio Matias <clesiofmatias@gmail.com>'
  8. __version__ = '1.0'
  9.  
  10. #---------IMPORTS NECESSÁRIOS---------------#
  11. import random
  12. import time
  13.  
  14. #----------ESCOPO GLOBAL -------------------#
  15. credito =100
  16. valores =0#variavel de controle de vitória e derrota
  17. valor={}#dicionario que anexa valor às cartas
  18. jogando = True #variavel de controle do loop do jogo
  19. as_onze=0 #variavel que controla se um ás é comprado junto com uma carta valor 10
  20.  
  21. #variaveis de montagem das cartas
  22. face = ('A','2','3','4','5','6','7','8','9','10','J','Q','K')
  23. naipe = ( "♥","♣", "♦", "♠")
  24.  
  25. #lista dos valores das cartas
  26. deckv = [1,2,3,4,5,6,7,8,9,10,10,10,10,
  27.          1,2,3,4,5,6,7,8,9,10,10,10,10,
  28.          1,2,3,4,5,6,7,8,9,10,10,10,10,
  29.          1,2,3,4,5,6,7,8,9,10,10,10,10]
  30.  
  31. deck =[] #lista das cartas montadas
  32.  
  33. #-----------------FUNÇÕES DO JOGO-----------------#
  34.  
  35. #função de criar baralho
  36. def deckBuild():
  37.     global naipe
  38.     global face
  39.     global deck
  40.     global decv
  41.     global valor
  42.     #--------------CRIANDO O DECK -------------#
  43.    
  44.     for n in naipe:
  45.         for f in face:
  46.             carta = f+n
  47.             deck.append(carta)
  48.            
  49.            
  50.  
  51.     #-------------- ANEXANDO VALORES ÀS CARTAS--------#
  52.     valor=dict(zip(deck,deckv))
  53.     '''A função built-in zip do Python retorna uma lista
  54.    contendo tuplas, onde o primeiro valor é o da primeira lista,
  55.    e o segundo valor da tupla, corresponde a segunda lista'''
  56.  
  57.  
  58.  
  59. #função de embaralhar
  60. def embaralhar():
  61.     random.shuffle(deck)
  62.    
  63. #função comprar
  64. def comprar(n):
  65.     global valores
  66.     global as_onze
  67.     '''Esta função recebe um inteiro com a quantidade
  68.       de cartas a serem compradas, na sequencia elimina
  69.       as mesmas do baralho'''
  70.     for i in range(0,n):
  71.         e = random.choice(deck)
  72.         deck.remove(e)
  73.         print(e,end='-')
  74.         valores+= valor[e]
  75.         if valor[e]==1:
  76.             as_onze =11
  77.    
  78.     print('')
  79.    
  80. #----------- LOOP DO JOGO ----------#
  81.  
  82. while jogando:
  83.     # criando e embaralhando as cartas:
  84.     deck=[]
  85.     deckBuild()
  86.     embaralhar()
  87.    
  88.     #verficando saldo de creditos
  89.     if credito<=0:
  90.         print('Saldo insuficiente para continuar jogando, desculpe!')
  91.         break
  92.    
  93.     recomeço=False #variavel que controla se é o começo do jogo
  94.    
  95.     #----criando o cabeçalho
  96.     print('-='*35)
  97.     print('CLÁSSIC GAME BLACKJACK')
  98.     print('-='*35)
  99.     print(f'Seu saldo é de ${credito}')
  100.     #-----fim cabeçalho
  101.  
  102.     #-----recebendo e validando aposta
  103.     while True:
  104.         aposta = input('Digite o valor da aposta: ')
  105.         if aposta.isnumeric()and float(aposta)<= credito:
  106.             aposta = float(aposta)
  107.             credito-=aposta #reduzindo valor da aposta nos creditos
  108.            
  109.             break
  110.         else:
  111.             print('Aposta inválida. Digite o valor de sua aposta')
  112.     #------aposta validada
  113.  
  114.     #----pontinhos com pausa dramática :)
  115.     time.sleep(0.5)
  116.     print('.', end='')
  117.     time.sleep(0.5)
  118.     print('.', end='')
  119.     time.sleep(0.5)
  120.     print('.', end='')
  121.     time.sleep(0.5)
  122.     print('.', end='')
  123.     time.sleep(0.5)
  124.     print('.', end='')
  125.     print('.')
  126.     #-------fim dos pontinhos
  127.  
  128.     comprar(2) # primeiras duas cartas
  129.    
  130.  
  131.     #se vierem de cara um ás e uma carta valor dez
  132.     if valores ==11 and as_onze==11:
  133.         valores=21
  134.  
  135.     #resolvendo se ganhou, perdeu ou se quer mais cartas:
  136.     while recomeço == False:
  137.             #ganhando!
  138.             if valores == 21:
  139.                 credito+=aposta+aposta/2
  140.                 print(f'PARABÉNS VOCÊ GANHOU!!!\n Seu novo saldo de créditos é: ${credito}')
  141.  
  142.                 #reiniciando ou não
  143.                 novo_jogo = input('Jogar novamente? [S/N]')
  144.                 while True:
  145.                     if novo_jogo in 'Ss':
  146.                          valores=0
  147.                          recomeço = True
  148.                          break
  149.                     elif novo_jogo in 'Nn':
  150.                           print('Até a próxima!')  
  151.                           jogando =False
  152.                           recomeço=True
  153.                           break
  154.                     else:
  155.                         print('Opção inválida!')
  156.                         novo_jogo = input('Jogar novamente? [S/N]')
  157.  
  158.  
  159.                     #com menos de 21
  160.             elif valores<21:
  161.                
  162.                 #continuando ou desistindo
  163.                 while valores < 21:
  164.                     print(f'Você tem {valores} pontos.')
  165.                     continuar = input('Deseja mais cartas? [s/n]')
  166.                    
  167.                     if continuar in 'Ss':
  168.                         # validando entrada e comprando novas cartas
  169.                         while True:
  170.                             cartas = input('Quantas cartas quer? ')
  171.                             if cartas.isnumeric():
  172.                                 cartas=int(cartas)
  173.                                 comprar(cartas)
  174.                                 break                            
  175.                             else:
  176.                                 print('Quantidade Inválida!')
  177.                                 continue
  178.                         break
  179.                    
  180.                     elif continuar in 'Nn':
  181.                         novo_jogo = input('Jogar novamente? [S/N]')
  182.                         while True:
  183.                             if novo_jogo in 'Ss':
  184.                                  valores=0
  185.                                  recomeço = True
  186.                                  break
  187.                             elif novo_jogo in 'Nn':
  188.                                   print('Ate a próxima!')
  189.                                   jogando =False
  190.                                   recomeço = True
  191.                                   break
  192.                             else:
  193.                                 print('Opção inválida!')
  194.                                 novo_jogo = input('Jogar novamente? [S/N]')
  195.                                 break
  196.                            
  197.                     break
  198.  
  199.                
  200.                     #perdendo
  201.             else:
  202.                 print(f'Voce perdeu! Estourou com {valores} pontos')
  203.                 print(f'Seu saldo de creditos é de ${credito}')
  204.                 novo_jogo = input('Jogar novamente? [S/N]')
  205.                 while True:
  206.                     if novo_jogo in 'Ss':
  207.                          valores=0
  208.                          recomeço = True
  209.                          break
  210.                     elif novo_jogo in 'Nn':
  211.                           jogando =False
  212.                           recomeço = True
  213.                           break
  214.                     else:
  215.                         print('Opção inválida!')
  216.                         novo_jogo = input('Jogar novamente? [S/N]')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement