1

各プレイヤーが自分のボードにピースを配置する必要がある単純な 2 プレイヤー ボード ゲームを作成しています。私がやりたいことは、次のいずれかです。

  • ボードが変数内に保存されるように、両方のプレーヤーに対して新しいターミナル ウィンドウを開きます (プログラムが実行されている OS に関係なく)。

  • どちらのプレイヤーもスクロールして他のプレイヤーのボードを見ることができないように、現在のターミナルを完全にクリアします。unix の「clear」コマンドは知っていますが、求めている効果が得られず、すべての OS で動作しません (ただし、これは実用的な解決策を得るために犠牲にしなければならないものかもしれません)。

画面をクリアしようとしましたが、すべてのテキストを完全に削除することはできませんでした。好みはありません。どちらの方法も簡単です。また、私が思いもよらなかった別の方法を使用する方が簡単な場合は、他のすべての提案を歓迎します。前もって感謝します!

編集: 他の解決策では、テキストがクリアされたように見えますが、ユーザーは上にスクロールしてクリアされたテキストを見ることができます。ユーザーがこのテキストを見ることができる方法をすべて削除する方法が必要です。

編集2:トピック全体に関する多くの情報を提供するため、他の回答とコメントを読んでください。特に、@zondo に感謝します。

4

4 に答える 4

0

カーソル位置Cursor Escape Codesを毎回ボードの先頭に移動する単純な ANSI エスケープ コードをお勧めします。ただし、コンソールを完全にクリアする ANSI エスケープ コードもあるので、選択することができます。

coloramaWindows を使用している場合は、最初に Windows プロンプトで ANSI コードを使用できるようにするモジュールをインポートする必要があります。

import colorama   # OR: from colorama import init
colorama.init()   # AND THEN: init()

したがって、ボードにn行がある場合、ユーザーが順番に入力した後、カーソルを UPn行に移動します + ただし、ユーザー入力には多くの行が必要なので、書いた場合はInput row, col: ...UPn+1に移動します など...

簡単な例:

numLines = 1
print("Hello world!")
print("\033[<{0}>A".format(numLines), "This came AFTER hello world line")
于 2016-03-05T15:27:51.797 に答える