2016-03-10 2 views
0

Я делаю игру похожей на текстовое завихрение на python, и мне было интересно, как предотвратить возможность ввода пользователем одного и того же слова дважды. Вот то, что я до сих пор ...Запретить пользователю вводить один и тот же ввод дважды

import random 
correct = 0 
incorrect = 0 
usedwords = [] 
print 'Welcome to text twist, you have 14 guesses to get 7 words made up of 4, 5 or 6 letters. Good Luck!' 

for i in range(14): 
    print "Your letters are 'E' 'P' 'L' 'B' 'E' 'B', what is your guess?" 
    answer = raw_input() 
    if answer in usedwords: 
     print "Sorry, you've already used this word" 
    if answer == 'belle' or answer == 'bleep' or answer == 'pebble' or answer == 'beep' or answer == 'bell' or answer == 'peel' or answer == 'peep': 
     if answer in usedwords: 
      print 'Nice that was one of the words!' 
     usedwords.append(answer) 
     correct = correct + 1 
    if answer != 'belle' and answer != 'bleep' and answer != 'pebble' and answer != 'beep' and answer != 'bell' and answer != 'peel' and answer != 'peep': 
     print 'Sorry, that was not one of the words.' 
     incorrect = incorrect + 1 


print 'Your final score was', correct, 'correct and', incorrect, 'wrong.' 
+1

Вы забыли вставить свой код – Selcuk

ответ

1
import random 
correct = 0 
incorrect = 0 
usedwords = [] 
print 'Welcome to text twist, you have 14 guesses to get 7 words made up of 4, 5 or 6 letters. Good Luck!' 

for i in range(14): 
    print "Your letters are 'E' 'P' 'L' 'B' 'E' 'B', what is your guess?" 
    answer = raw_input() 
    if answer in usedwords: 
     print "Sorry, you've already used this word" 
    else: #Newly added 
     usedwords.append(answer) #We have to add the input words to the list if they are new 
     if answer == 'belle' or answer == 'bleep' or answer == 'pebble' or answer == 'beep' or answer == 'bell' or answer == 'peel' or answer == 'peep': 
      if answer in usedwords: 
       print 'Nice that was one of the words!' 
      usedwords.append(answer) 
      correct = correct + 1 
     if answer != 'belle' and answer != 'bleep' and answer != 'pebble' and answer != 'beep' and answer != 'bell' and answer != 'peel' and answer != 'peep': 
      print 'Sorry, that was not one of the words.' 
      incorrect = incorrect + 1 


print 'Your final score was', correct, 'correct and', incorrect, 'wrong.' 
1

Этот код может быть изменен, как показано ниже:

import random 
correct = 0 
incorrect = 0 
usedwords = [] 
print 'Welcome to text twist, you have 14 guesses to get 7 words made up of 4, 5 or 6 letters. Good Luck!' 
for i in range(14): 
    print "Your letters are 'E' 'P' 'L' 'B' 'E' 'B', what is your guess?" 
    answer = raw_input() 
    if answer in usedwords: 
     print "Sorry, you've already used this word" 
     incorrect = incorrect + 1 
     continue 
    elif answer == 'belle' or answer == 'bleep' or answer == 'pebble' or answer == 'beep' or answer == 'bell' or answer == 'peel' or answer == 'peep': 
     print 'Nice that was one of the words!' 
     usedwords.append(answer) 
     correct = correct + 1 
    else: 
     print 'Sorry, that was not one of the words.' 
     incorrect = incorrect + 1 


print 'Your final score was', correct, 'correct and', incorrect, 'wrong.' 

Изменения:

  • включен "Продолжить" заявление пропустить итерацию, когда повторяется одно и то же слово .
  • неправильный = неправильный + 1, чтобы увеличить неверную попытку, когда повторяется одно и то же слово.

  • Используется, если..elif..else вместо нескольких операторов if для лучшей ясности и для игнорирования проверки «! =».

  • Удалено «iList itemf answer in usedwords:» подтверждение во втором оператор if, как это уже было проверено ранее.

  • Если слово не в используемых словах или слово не находится в списке ожидаемых слов, то, очевидно, слово неверно, поэтому в противном случае неверный счетчик увеличивается с сообщением.

Предложение: Вместо того, чтобы использовать множественные или в Элиф заявлении, вы можете объявить список, как, expectedwords = [ «красавица», «бип», «галька», «звуковой сигнал»,» колокол ',' peel ',' peep '] и использование, elif ответ в ожидаемых словах: ....

Смежные вопросы