2016-08-01 4 views
0

私はPythonで作成したコードゲームを更新して、コンピュータに対してシングルプレイヤーゲームをプレイすることができます。何らかの理由で、インタプリタは、プレイヤーカウントを決定するために使用された入力から取り除かれたデータを使用しないか、入力から取り除かれたデータを使用するifステートメントをスキップします。どちらの場合でも、プレイヤー番号を入力すると、正しいコード文字の空のリストで推測コードにまっすぐ進みます。Skipped If Statement/unstripped Pythonの入力データ

プレイヤー数を決定すると、コード作成のための私のコードは次のとおりです。

plyrs = 0 
correctanswer = [] 
print('Welcome!') 
plyrs = str(input('How many players are there? (minimum 1, maximum 2) ')) 
if plyrs == 2: 
    print("I'm gonna ask you for some alphanumerical (number or letter characters to make a code for the other player to guess.") 
    input('Press enter when you are ready to enter in the code!') #Like all of my games, it has a wait. 
i = 0 
    while i < 4: 
     correctanswer.append(input('What would you like digit ' + str(i + 1) + " to be? ")) 
     i = i + 1 
    print("Ok, you've got your code!") 
    i = 0 
    while i < 19: #Generates seperator to prevent cheating 
     print('') 
     i = i + 0.1 
    print("Now, it's the other player's turn to guess!") 
elif plyrs == 1: 
    import random 
    characters = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9','0'] 
    i = 0 
    while i < 4: 
     correctanswer.append(characters[randint(0,36)]) 
     i = i + 1 
    print('Time for you to guess!') 
print('') 

なしスキップ文の質問がこれに該当する場合はとても助けてください。

答えて

2

plyrsは文字列で、これをintと比較しています。 "2" == 2は常に偽になります。 plyrs == 1と同じですが、これは全体にわたって偽です。

+0

どうすればintに変換できますか?私は入力にint()関数を使用したので、正解でないか、何か間違っています。 –

+0

nvm何らかの理由でstr()を使用しました –

+0

必要なら 'ValueError'を上げる必要があります安全でない入力を処理する(非数値入力) –