0

こんにちは、私は Python でゲームを作成しています。ゲームでテキスト ドキュメントにデータを書き込むようにしました。テキスト ファイルに Bob という名前の人がレベル 4 にいると書かれている場合、プログラムを開始する方法はありますか?レベル 4 で。 for ループを使用して仕事をしようとしましたが、うまくいきません。テキスト ファイルを開始せず、レベル 1 に移行するだけです。ゲーム コードは次のとおりです (読み書き用:

import os
#---------------------------
os.system("color a")
#---------------------------
def ping(num):
    os.system("ping localhost -i", num, ">nul")
def cls():
    os.system("cls")
#--------------------------
print("the game")
ping(2)
cls()
print("1: New Game")
print("2: Continue")
print("3: Credits")
while True:
    choice=input("Enter")
    if choice==1:
        name=input("Enter your name")
        firstsave=open("data.txt", "W")
        firstsave.write(name, "     ")
        # there will be the game data here
    elif choice==2:
        opendata=file("data")
        #opening the file
        while True:
            ''' is the place where the file scanning part needs to come.
            after that, using if and elif to decide which level to start from.(there   are a total of 15 levels in the game)
            '''

テキストファイル:

User     Level
Bob     5
George     12
4

1 に答える 1

1

十分な情報を提供していませんが、1 つのアプローチを次に示します。

elif choice == 2:
    with open("x.txt") as f:
        f.readline()     # skip the first line
        for lines in f:  # loop through the rest of the lines   
            name, level = line.split()   # split each line into two variables
            if name == playername:       # assumes your player has entered their name
                playlevel(int(level))         # alternatively: setlevel = level or something
                break                    # assumes you don't need to read more lines

これは、プレーヤーの名前を知っていること、プレーヤーの行が 1 つしかないこと、名前が 1 つの単語にすぎないことなど、いくつかのことを前提としています。状況が異なると複雑になりますが、それが Python のドキュメントを読んで実験することです為に。

また、'w' を使用して選択肢 1 に書き込むことにも注意してください。これは追加ではなく (上書き) 書き込みを行います。意図したかどうかはわかりませんが、選択肢 1 と 2 に異なるファイル名を使用しています。

于 2013-11-06T12:49:21.410 に答える