2017-09-20 22 views
1

私はプログラミングの初心者です。誰かが私を助けてくれることを願っています。 私は2人のプレイヤーが他のプレイヤーが入れた単語の最後の2文字に基づいて単語を入力する必要があるゲームを作ろうとしています。 私はその部分を働かせましたが、私は勝者を決定する部分を得ることができません。同じ2 elifステートメントですが、異なる結果が表示されるはずです。同じ入力が2つの異なる結果

Ex。 P1:バナナP2:ナルニア国物語のP1:イアン・P2:動物 だから、基本的に選手の一人が、最後の2文字を一致させるタスクを達成するために失敗したとき、彼らはゲーム

used_words=[] 

while True: 
    player_one=raw_input("Player one \n") 
    first= list(player_one) 
    player_two=raw_input("Player two \n") 
    second=list(player_two) 

    if first[-2:] == second[:2] and first and second not in used_words: 
     used_words.append(player_one) 
     used_words.append(player_two) 
     continue 

    elif first[-2:] != second[:2]: 
     print "Player one wins! \n" 
     print "The word you had to match was: ", second 
     break 

    elif second[:2] != first[-2:]: 
     print "Player two wins!" 
     print "The word you had to match was: ", first 
     break 

    else: 
     break 
+0

あなたは2つのワードだから、 –

+2

の例を使用してゲームを説明することができ、あなたは、同じ2つの 'elif'文を持っています。あなたの状態が最初の 'elif'自体で選ばれると、コードはどのように2番目の' elif'に行くことができますか? '1!= 2'はプログラミングで' 2!= 1'と同じです。同じ結果をTrueに返します。 – RetardedJoker

+0

@be_good_do_good例。 P1:バナナP2:ナルニアP1:イアンP2:動物など ゲームの目標は、前の言葉の最後の2文字に存在する単語を出すことができないようにすることです。 – kryleas

答えて

-1

私はand firstは基本的にはそうif first[-2:] == second[:2] and first not in used_words and second not in used_words:に変更し、firstが空の文字列でないことをテストしているため、問題はあなたの条件if first[-2:] == second[:2] and first and second not in used_words:であると思います。しかし、あなたが望むものを達成者のために確認する必要があり、他の変更があります。

player_one = raw_input("Player one \n") 
used_words = [player_one] 

while True: 
    player_two = raw_input("Player two \n")   

    if used_words[-1][-2:] != player_two[:2] and player_two not in used_words: 
     print "Player one wins! \n" 
     print "The word you had to match was: ", player_one 
     break 

    used_words.append(player_two) 
    player_one = raw_input("Player one \n") 

    if used_words[-1][-2:] != player_one[:2] and player_one not in used_words: 
     print "Player two wins! \n" 
     print "The word you had to match was: ", player_two 
     break 
-1

を失うあなたが実際にあなたの比較シナリオを変更する必要があります

used_words=[] 

while True: 
    word=raw_input("Enter sth \n") 

    if(len(used_words) == 0): 
     used_words.append(word) 
     continue 

    if(used_words[-1][-2:] == word[:2] and word not in used_words): 
     used_words.append(word) 

    elif(word in used_words): 
     print "You lose! \n" 
     print word, " is previously used" 
     break 

    elif(used_words[-1][-2:] != word[:2]): 
     print "You lose! \n" 
     print "The first two characters you had to start with was: ", used_words[-1][-2:] 
     break 
    else: 
     break 
+0

はい!これは私が欲しかったものです。タイ! – kryleas

関連する問題