6

Macターミナルでコマンドを使用するlessと、指定したファイルの23行のスライスが表示されます。ファイルを下に移動してからターミナルウィンドウを上にスクロールすると、現在のスライスの前にファイルの内容が表示されません。代わりに、を使用する前に入力したコマンドが表示されますless

この効果または同様の効果を使用して、履歴なしで現在の画面のみを表示するASCIIゲームインターフェイスを作成したいと思います。画面にフレームを描画し、それらのフレーム内のテキストまたはオプションのみを変更します。これは、ほとんどまたは完全にコマンドライン環境で実行されていた古いシステムでは非常に一般的です。

これを提供するPythonモジュールはありますか?自分で実装できる、または実装すべき効果ですか?

この効果の恩恵を受ける可能性のある画面要素の例を次に示します。

+-------------------------------------------------------------------+
|                                                                   |
| Dialog dialog dialog dialog dialog dialog dialog dialog dialog    |
| dialog dialog dialog dialog dialog dialog dialog dialog dialog    |
| dialog dialog dialog dialog dialog dialog dialog dialog dialog    |
| dialog dialog dialog dialog dialog dialog dialog dialog dialog    |
| dialog dialog dialog dialog.                                      |
|                                                                   |
|                                                                   |
|                                                                   |
+--------------------+---------------+------------------------------+
|   Attack           |     South     |            HP/Max   MP/Max   |
| > Cast Magic       |       -       |   Tom:    120/120   60/91    |
|   Use Item         |      New      | > Dick:    27/133   47/47    |
|   Tactics          |  Schwartzton  |   Harry:   87/104   16/113   |
+--------------------+---------------+------------------------------+
4

3 に答える 3

7

私もこの問題に苦しんでいます。シンプルなクロスプラットフォームソリューションが欲しかったので、asciimaticsを拡張して、このようなフォームベースのUIを作成するためのウィジェットのセットを提供しました。例えば:

テキストUIウィジェット

結果のコードは非常に簡潔で、追加のネイティブライブラリをインストールしなくても最新のOS(Windows、Linux、OSXを含む)で動作するはずです。連絡先リストのサンプルからわかるように、標準のウィジェットはレイアウトが簡単で、ほとんどのニーズを提供するはずです。

于 2016-04-15T14:47:10.313 に答える
6

モジュールを調べることをお勧めしcursesます。これは、まさにこの目的で使用されるライブラリへのインターフェイスncursesです(多くの端末アプリケーションがライブラリに記述されていると思います)。ドキュメントはかなりまともであり、正しい方向にあなたを設定する必要があるいくつかの素晴らしいチュートリアルがあります。

(それまたは自由な使用のいずれか。)モジュールは、あなたが探していることに対してより柔軟性を提供するはずなので、\r強くお勧めします。curses

編集:クロスプラットフォームアプリケーションの作成に興味がある場合は、cursesモジュールが*nixシステムでのみ使用可能であることに注意してください。ドキュメントによると:

誰もcursesモジュールのWindowsポートを作成していません。

このチュートリアルでは、このライブラリをWindowsで使用することを推奨していますが、ダウンロードページの日付が何らかの兆候を示している場合は、かなりの時間で更新されていません。このモジュールを調べることができますが、これはかなり最近のものに見えます。

于 2012-07-01T18:55:39.230 に答える
3

あなたが話しているのはですcurses。これは、ncursesとインターフェイスするPythonモジュールです。私が使用するために見つけた最高のチュートリアルcursesはこれです:http ://www.dev-explorer.com/articles/python-with-curses

(別の言語からではあるが)呪いを使用するいくつかの人気のあるプログラムは、適性とナノです。

于 2012-07-01T18:58:22.533 に答える