def clear_screen():
if os.name == 'nt': # For Windows
_ = os.system('cls')
else: # For Mac/Linux/Unix
_ = os.system('clear')
def ValidaNum(Num):
NumValido = True
NumValido = False if len(Num) != 4 else NumValido
NumValido = False if not Num.isnumeric() else NumValido
if len(Num) == 4:
NumValido = False if Num[0] == "0" or Num[1] == "0" or Num[2] == "0" or Num[3] == "0" else NumValido
NumValido = False if Num[0] == Num[1] or Num[0] == Num[2] or Num[0] == Num[3] else NumValido
NumValido = False if Num[1] == Num[2] or Num[1] == Num[3] else NumValido
NumValido = False if Num[2] == Num[3] else NumValido
return NumValido
########
def GeraPalpite():
NumeroBom = False
while NumeroBom == False:
NumeroBom = True
N0 = random.randint(1,9)
N1 = random.randint(1,9)
N2 = random.randint(1,9)
N3 = random.randint(1,9)
NumeroBom = False if N0 == N1 or N0 == N2 or N0 == N3 else NumeroBom
NumeroBom = False if N1 == N2 or N1 == N3 else NumeroBom
NumeroBom = False if N2 == N3 else NumeroBom
PalpiteGerado = str(N0) + str(N1) + str(N2) + str(N3)
return PalpiteGerado
def ContaBOIs():
QtdBOIs = 0
QtdBOIs += 1 if Num[0] == Palpite[0] else 0
QtdBOIs += 1 if Num[1] == Palpite[1] else 0
QtdBOIs += 1 if Num[2] == Palpite[2] else 0
QtdBOIs += 1 if Num[3] == Palpite[3] else 0
return QtdBOIs
def ContaVACAs():
QtdVACAs = 0
QtdVACAs += 1 if Num[0] == Palpite[1] or Num[0] == Palpite[2] or Num[0] == Palpite[3] else 0
QtdVACAs += 1 if Num[1] == Palpite[0] or Num[1] == Palpite[2] or Num[1] == Palpite[3] else 0
QtdVACAs += 1 if Num[2] == Palpite[0] or Num[2] == Palpite[1] or Num[2] == Palpite[3] else 0
QtdVACAs += 1 if Num[3] == Palpite[0] or Num[3] == Palpite[1] or Num[3] == Palpite[2] else 0
return QtdVACAs
#########
import random
import os
Palpite = GeraPalpite()
FimJogo = False
QtdValida = 0
Lista_NUMS = []
Lista_VACAS = []
Lista_BOIs = []
clear_screen()
print("BOIS E VACAS, REGRAS DO JOGO.")
print("1 - Acertar, em até 10 tentativas, um número secreto, composto por 4 dígitos diferenentes, de 1 a 9, sem o zero.")
print("Exemplo: 5639.")
print("2 - BOIS: Quantidade de dígitos certos e nas posições exatas.")
print("Exemplo: 1659. Bois: 2, pois o 6 e o 9 estão nas posições exatas.")
print("3 - VACAS: Quantidade de dígitos certos, mas em posições erradas.")
print("Exemplo: 1659. Vacas: 1, pois o 5 está na posição errada.")
print("")
while FimJogo == False:
Num = input("Digite um Número de 4 dígitos diferentes de 1 a 9 (por exemplo: 3486): ")
NumValido = ValidaNum(Num)
if NumValido == False:
print(str(Num) + " é inválido, digite novamente.")
continue
QtdValida += 1
BOIs = ContaBOIs()
VACAs = ContaVACAs()
Lista_NUMS.append(Num)
Lista_BOIs.append(BOIs)
Lista_VACAS.append(VACAs)
clear_screen()
for i in range(len(Lista_NUMS)):
print(str(i+1) + " | " + Lista_NUMS[i] + " | Bois: " + str(Lista_BOIs[i]) + " | Vacas: " + str(Lista_VACAS[i]) )
if BOIs == 4:
print("PARABÉNS! Você acertou! O Número era " + str(Palpite) + ".")
FimJogo = True
elif QtdValida == 10:
print("SINTO MUITO! Você errou! O Número era " + str(Palpite) + ".")
FimJogo = True
#######