1

私は現在Pythonでゲームを作っています。ゲームでヘルプが必要な場合はいつでも、helpと入力するだけで、ヘルプ セクションを読むことができます。

唯一の問題は、レベルごとに機能ブロックを追加する必要があることです。

def level_01():
    choice = raw_input('>>>: ')
    if choice=='help':
        level_01_help()


def level_012():
    choice = raw_input('>>>: ')
    if choice=='help':
        level_02_help()

それで、すべてのレベルのグローバル機能ブロックを作成できるかどうか疑問に思っていましたか? help を入力すると、help() が表示され、その後、元の関数ブロックに自動的に戻ります。

私の言いたいことを理解していただければ幸いです。私が得られるすべての助けに本当に感謝しています。

4

4 に答える 4

4

実際には help 関数をパラメーターとして渡すことができます。つまり、コードは次のようになります。

def get_choice(help_func):
    choice = raw_input('>>>: ')
    if choice == 'help':
        help_func()
    else:
        return choice

def level_01():
    choice = get_choice(level_01_help)

def level_02():
    choice = get_choice(level_02_help)

理想的には、ゲームとインターフェイスが 2 つの別個のエンティティになるように、すべてのインターフェイス関連のタスクに対して個別のモジュールを用意する必要があります。これにより、これらの 2911 行がもう少し読みやすくなるはずです。インターフェイスを変更することにした場合 (たとえば、コマンド ラインから Tkinter または Pygame に)、はるかに簡単に作業できるようになります。ちょうど私の2¢

于 2013-08-07T23:48:37.640 に答える
1

確かに、一般化することは常に可能です。しかし、あなたが提供する情報が少ないため (「ヘルプ」が唯一の共通機能であると仮定すると)、元のコードは非常に単純です。レベルごとに 1 行のコードを節約するためだけに、このプロパティを犠牲にするつもりはありません。

于 2013-08-08T00:06:24.000 に答える