

果物の名前をあてる英語のゲームを作成したいと思っています。

ゲームのルールとしてはプログラムが一つの果物の名前を選択し、その字数をハイフンで表示するので、プレーヤーはその字数に合った果物の名前のアルファベットを一文字ずつ入力していきます。プログラムが選択する果物の名前は、イチジク
"fig"、キウイ "kiwi"、マンゴ "mango"、バナナ "banana"のいずれかです。

プレーヤーは10回まで文字入力が可能で、それまでに正しい解答をしていれば"You are right!"、"You won!"と出力します。

しかし、10回までに正しい果物の名前が表示されていなければ、その時点でゲームは終了し、"You lost!"と出力します。

また、プログラムによって選択された果物の名前にプレーヤーが入力した文字が含まれていない場合は"The letter doesn't appear in
the name!"と出力します。

しかし、もし既に入力されて表示されている文字をプレーヤーが入力した場合は、これ以上改善することは無いので、"No more improve!"と出力します。

例1:

[code]

    ----
    Input a letter: > i
    
    -i-i
    Input a letter: > g
    The letter doesn't appear in the name!
    
    -i-i
    Input a letter: > a
    The letter doesn't appear in the name!
    
    -i-i
    Input a letter: > w
    
    -iwi
    Input a letter: > k
    
    kiwi
    You are right!
    You won!
    
[/code]

でも、もし例えば次のように最初に0がある場合は0を出力します。

例2:

[code]

    ---
    Input a letter: > i
    
    -i-
    Input a letter: > a
    The letter doesn't appear in the name!
    
    -i-
    Input a letter: > i
    No more improve!
    
    -i-
    Input a letter: > e
    The letter doesn't appear in the name!
    
    -i-
    Input a letter: > t
    The letter doesn't appear in the name!
    
    -i-
    Input a letter: > r
    The letter doesn't appear in the name!
    
    -i-
    Input a letter: > h
    The letter doesn't appear in the name!
    
    -i-
    Input a letter: > d
    The letter doesn't appear in the name!
    
    -i-
    Input a letter: > g
    
[/code]

[code]

    -ig
    Input a letter: > m
    The letter doesn't appear in the name!
    You lost!
    
    
[/code]

そこで、このようなコードを書きました。

[code]

    import random
    fruits = ["fig", "kiwi", "mango", "banana"]
    choice_fruit = random.choice(fruits)
    choice_fruit_2 = "-" * len(choice_fruit)
    temp = list(choice_fruit_2)
    
    x = 10
    while x > 0:
        i = 0
        print(choice_fruit_2)
        player_input = (input("Input a letter: "))
        if for word not in choice_fruit:
            print("The letter doesn't appear in the name")
        elif for word in choice_fruit:
                if player_input == word:
                    temp[i] = player_input
                i = i + 1
            choice_fruit_2 = "".join(temp)
            print()
        else:        
            for word in choice_fruit and word in temp: 
            print("No more improvement")
    else:
        if choice_fruit == temp 
            print("You are right!")
            print("You won!")
        else:
            print("You lost!")
    
[/code]

ですが、このようなエラーメッセージが表示されました。

`SyntaxError: invalid syntax (<string>, line 12)`

どのように改善すれば良いでしょうか。よろしくお願いいたします。


CC BY-SA 4.0
2021-07-21T21:33:38.200
78348
2021-07-21T22:45:14.473
47136
question
python python3
名前あてゲームの構文エラー


エラーメッセージはきちんと読みましょう。英語が苦手ならエラーメッセージをそのまま翻訳サービスにかけましょう。

`SyntaxError: invalid syntax (<string>, line 12)`  
[![google翻訳結果](https://i.stack.imgur.com/KyfNu.png)](https://i.stack.imgur.com/KyfNu.png)  
エラーメッセージには12行目が無効な構文である、と書かれています。  
12行目をよくチェックしてください。

[code]

    if for word not in choice_fruit:
    
[/code]

このような構文はpythonには存在しません。正しい構文になるよう、プログラムを考え直しましょう。


CC BY-SA 4.0
2021-07-21T22:45:14.473
78349
2021-07-21T22:45:14.473
46944
78348
answer