Member 13672432 Ответов: 0

Как мне интегрировать эти два фрагмента кода, чтобы программа работала правильно


Вот два фрагмента кода, необходимых для создания одной программы. Это игра для решения кода.:

# Bringing random number for a randomly generated code
import random

code=[random.randint(1,9), random.randint(0,9), random.randint(0,9), random.randint(0,9)]
print(code)

guesses= 1
# Setting up variables

while True:
  print("You have: " , 13 - guesses, " guesses left")
  guess = input("Have a guess! Type 'quit' to quit: ")
# Taking a guess away for every incorrect answer, allowing an input
  
# Checking the user input
  if guess == "quit":
      print('\n')
      print("You quit! The number I was thinking of was: ")
      print(code)
      print('\n')
      print("xX !YOU LOSE! Xx")
      break
# Allowing an input exit of the game

# Checking the user input... AGAIN
  elif len(guess) != 4:
    print("The code is 4 digits long! Go again.")
    print('\n')
    continue
# Checking length of guess

  elif guess.isdigit()== False:
    print("Please type in a NUMBER guess!")
    print('\n')
    continue
# Allowing the user to carry on

И вот подпрограмма, которую мне нужно включить:

from collections import Counter


def main():
    answers = [3, 3, 4, 4]
    guesses = [3, 5, 6, 4]

    answers_counter = Counter(answers)
    guesses_counter = Counter(guesses)
    diff_counter = answers_counter - guesses_counter
    number_of_all_correct_digits = len(answers) - len(diff_counter.values())

    number_of_correct_digits_in_correct_place = len(
        list(filter(lambda x: x == 0, [a - g for a, g in zip(answers, guesses)])))

    number_of_correct_digits_in_wrong_place = number_of_all_correct_digits - number_of_correct_digits_in_correct_place

    return number_of_correct_digits_in_correct_place, number_of_correct_digits_in_wrong_place

### r1= correct place
### r2 = correct digits in wrong place
if __name__ == "__main__":
    r1, r2 = main()
    print(r1)
    print(r2)


Мне нужно уметь делать "ответы" на первые четыре цифры кода и "догадки" (будут изменены на догадки 2) на первые четыре цифры догадки. Затем мне нужно иметь возможность вызвать подпрограмму, чтобы получить r1 и r2 для вывода позже в программе.

Что я уже пробовал:

Переназначение переменных, создание новых операторов if и очевидное "главное()"

Richard MacCutchan

В чем же проблема? Просто сделайте одну из них подпрограммой и вызовите ее из другой.

Member 13672432

Как мне вызвать подпрограмму

0 Ответов