2017-11-25 12 views
1

私のプログラムでは、正しく綴りの単語(wordsCorrect.txt)と同じ単語を持つもの、同じ行に2つの.txtファイルがあります。何らかの形でスペルミスがあります。スペルミスのある単語の1つがランダムに選択され、画面に表示されます。ユーザーはその単語の正しいバージョンを入力する必要があります。Pygame - 2つの.txtファイルとユーザー入力に一致するものを探す

.txtファイルの単語を比較するコードを作成しようとしましたが、ユーザーの入力が正しい単語と一致するかどうかを調べる方法がありません。これがひどく説明されていれば申し訳ありませんが、どんな助けも素晴らしいでしょう!

while word_pick == True: 
     for event in pg.event.get(): 
      file1 = open("words.txt","r") 
      file2 = open("wordsCorrect.txt","r") 
      with file1 and file2: 
       same = set(file1).intersection(file2) 
+1

1つのファイルに2つの単語を1行にまとめることができます。これで、 'zip()'を使って単語のペアを作ることができます。 'pairs = list(zip(file1、file2))'しかし、すべての単語の末尾に '\ n'があります。 – furas

答えて

3

は開けないでくださいとイベントループ内のファイル、それ以外のファイルは再びあなたがマウスを動かすか、キーを押した場合など、イベントがキューに追加されるたびに、もう一度読んでいるをお読みください。

スペルミスのある単語を1つのファイル(おそらくCSVファイル)に保存し、辞書を作成してファイルを開き、キーとして誤った単語を追加し、正しい単語を値として追加することをおすすめします。

current_word = 'bred' 
user_input = 'bread' 
if words[current_word] == user_input: 
    print('Correct answer.') 

また、あなたが一緒に2つのファイルに単語を圧縮するzip機能を使用することができます。

words = {} 

with open('words.txt') as f: 
    for line in f: 
     misspelled, correct = line.strip().split(',') # Comma as word separator. 
     words[misspelled] = correct 

次に、ユーザ入力が、このように正確であるかどうかを確認することができます。これは、ファイルが異なる行番号を持つ可能性があるため、エラーが発生しやすくなります。

with open('misspelled.txt') as f1, open('correct_words.txt') as f2: 
    for misspelled, correct in zip(f1, f2): 
     misspelled = misspelled.strip() 
     correct = correct.strip() 
     words[misspelled] = correct 
関連する問題