Как мне завершить этот фрагмент кода?
Я делаю игру под названием Codebreaker. 4-значный номер генерируется в то время как пользователь угадывает номер. Он должен выводить количество правильных цифр (до 4) в правильном месте и количество правильных цифр в неправильном месте (до 4). Есть 12 жизней и это то что я сделал до сих пор
import random code=[random.randint(1,9), random.randint(0,9), random.randint(0,9), random.randint(0,9)] code=[2, 3, 6, 3] display_answer= ["X","X","X","X"] guesses= 1 corrPlace= 0 wronPlace= 0 instructions= input("Welcome to Codebreaker! Would you like to see the instructions type 'Yes' or 'No' ") if (instructions == "Yes") or (instructions == "yes"): print("I will randomly generate a 4 digit number, try and guess it using your keyboard.") else: print("Alrighty") mode= input("What mode would you like to play on? 'Easy', 'Medium' or 'Hard': ") mode= mode.lower() if mode== "easy": print("Let's get on with it!" ) print('\n') print("I am thinking of a four digit number, try and guess that number!") while True: print("You have: " , 13 - guesses, " guesses left") guess = input("Have a guess! Type 'quit' to quit: ") 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 elif len(guess) != 4: print("The code is 4 digits long! Go again.") print('\n') continue elif guess.isdigit()== False: print("Please type in a NUMBER guess!") print('\n') continue if guesses == 12: print("You have no guesses left...") print("The number I was thinking of was: ", code) print("xX !YOU LOSE! Xx") break guesses = guesses+1 guess1= int(guess[0]) guess2= int(guess[1]) guess3= int(guess[2]) guess4= int(guess[3]) if guess1== code[0]: display_answer[0]= guess1 if guess2== code[1]: display_answer[1]= guess2 if guess3== code[2]: display_answer[2]= guess3 if guess4== code[3]: display_answer[3]= guess4 print("You have guessed this part correctly:") print(display_answer, '\n') if display_answer[0] != "X" and display_answer[1] != "X" and display_answer[2] != "X" and display_answer[3] != "X": print('\n') print("You won! The number I was thinking of was: ") print(code) print('\n') print("xX !YOU WON! Xx") break elif mode== "medium": ### print('\n') print("I am thinking of a four digit number, try and guess that number!") print (code) while True: print("You have: " , 13 - guesses, " guesses left") guess = input("Have a guess! Type 'quit' to quit: ") ### ### 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 ### ### elif len(guess) != 4: print("The code is 4 digits long! Go again.") print('\n') continue ### ### elif guess.isdigit()== False: print("Please type in a NUMBER guess!") print('\n') continue ### ### if guesses == 12: print("You have no guesses left...") print("The number I was thinking of was: ", code) print("xX !YOU LOSE! Xx") break guesses = guesses+1 ### ### guess1= int(guess[0]) guess2= int(guess[1]) guess3= int(guess[2]) guess4= int(guess[3]) ### #### corrPlace= 0 if guess1==code[0]: corrPlace= (corrPlace+1) if guess2==code[1]: corrPlace= (corrPlace+1) if guess3== code[2]: corrPlace= (corrPlace+1) if guess4== code[3]: corrPlace= (corrPlace+1) #### ##### wronPlace= 0 if guess1=! code[0]: if guess1== code[1] or code[2] or code[3]: wronPlace= (wronPlace+1) if guess2=! code[1]: if guess2== code[0] or code[2] or code[3]: wronPlace= (wronPlace+1) if guess3!= code[2]: if guess3== code[0] or code[1] or code[3]: wronPlace= (wronPlace+1) if guess4!= code[3]: if guess4== code[0] or code[1] or code[2]: wronPlace= (wronPlace+1) if corrPlace== 4: wronPlace= 0 ##### ### print ("You have guessed ", corrPlace, " digits in the correct place.") print ("But there are ", wronPlace, " correct digits in the wrong place.") print ('\n') if corrPlace== 4: print('\n') print("You won! The number I was thinking of was: ") print(code) print('\n') print("xX !YOU WON! Xx") break ### elif mode== "hard": print ("Under construction")
Проблема вот в чем:
##### wronPlace= 0 if guess1=! code[0]: if guess1== code[1] or code[2] or code[3]: wronPlace= (wronPlace+1) if guess2=! code[1]: if guess2== code[0] or code[2] or code[3]: wronPlace= (wronPlace+1) if guess3!= code[2]: if guess3== code[0] or code[1] or code[3]: wronPlace= (wronPlace+1) if guess4!= code[3]: if guess4== code[0] or code[1] or code[2]: wronPlace= (wronPlace+1) if corrPlace== 4: wronPlace= 0
Он должен выводить до четырех цифр, но имитирует переменную corrPlace. План, который я сделал для этого куска кода, таков:
Цитата:сравните код, чтобы угадать одно и то же число
От 1 до [0]
От 2 до [1]
От 3 до [2]
От 4 до [3]
не переключать
если же после 1
если отличается то 0
1=0
0=1
если [1] совпадает, не сравнивайте (FALSE)
если [0] совпадает, не сравнивайте
если [2] совпадают, не сравнивайте
если [3] совпадают, не сравнивайте
если [1] не совпадает, сравните (TRUE)
если [0] не совпадает, сравните
если [2] не совпадает, сравните
если [3] не совпадают, сравните
если сравнивать с [1], то это дает истинную остановку
если ложь продолжайте
если по сравнению с [0] дает истинную остановку
если ложь продолжайте
если сравнивать с [2], то это дает истинную остановку
если ложь продолжайте
если сравнивать с [3], то это дает истинную остановку
если ложь продолжайте
TRUE= wronPlace+1
4 = макс.
Пожалуйста, помогите мне изменить этот фрагмент кода в план ниже! Я уже некоторое время борюсь с этим
Что я уже пробовал:
Перед планом он Рид, используя цикл while, если statemts и все, что привело к неудаче. Мне удалось придумать базовый план, используя свои знания о Булевом поле и оценивая ситуацию с помощью 1 и 0 (True и False). Я предсказываю, что ключевое слово continue должно присутствовать
Richard Deeming
Репост
Вы уже опубликовали это домашнее задание:
https://www.codeproject.com/Questions/1229655/How-may-I-shorten-this-code-Python[^]
Если вы хотите обновить свой вопрос, чтобы добавить недостающую информацию, Нажмите зеленую ссылку "улучшить вопрос" и отредактируйте свой вопрос. НЕ опубликуйте обновление как новый вопрос.
Member 13672432
Не домашнее задание. Я пытаюсь научиться программировать, а ты мне не помогаешь.