8

長時間実行されるプロセスを開始するコンソールアプリを作成しています。そのため、ユーザーに画面を数分間見つめるのではなく、処理をバックグラウンドスレッドにスローして、その間にユーザーにゲームをプレイさせたいと思います。

あなたが私の年齢なら、DOSに何年も同梱されていたQBasicで書かれたNibblesゲームを間違いなく覚えています。数年前に誰かがC#コンソールモードで書き直したことを読んだことを覚えています。しかし、私はそれを見つけることができません。誰が私がそれをつかむことができるか知っていますか?

4

1 に答える 1

12

私はあなたの質問を見て、すぐに先に進み、元のNIBBLES.BASを直接C#に変換しました。

もちろん、コードは基本主義でいっぱいです。特に、配列は1から始まります。配列は0から始まるように変更しましたがsammy、配列は変更していません(これには未使用のインデックスがあります)。colorTablearena0

多くのことがC#でより「適切に」行われる可能性があります(たとえば、上、下、左、右の方向には、数値1、2、3、4の代わりに列挙型を使用する必要があります。ConsoleColor色には整数の代わりに列挙型を使用する必要があります)。

ただし、いくつかのC#ismを使用しました。初期画面のスパークル効果は別のスレッドで実行されるConsole.ReadKey()ため、ユーザー入力を待つために使用できます。

ConsoleC#では状態を読み取ることしかできず、変更することはできないため、Num Lock、Caps Lock、およびScrollLockを設定/設定解除するコードをコメントアウトする必要がありました。これにはWinAPIを使用する必要がありましたが、これはやり過ぎだと判断しました。

コメントはすべてオリジナルからのものです。

編集:これまでに完成したバージョンはgithubにあります。上記のリンクを変更して、ペーストビンではなくgithubリポジトリに移動しました。オリジナルの最初のバージョンにまだ興味がある人のために、ここにオリジナルのペーストビンのリンクがあります。

于 2010-10-05T00:08:58.697 に答える