より多くのC
2020年1月28日に、私は記事を書きました.
私が最初の記事を書いたとき、レポは8つのコンソールゲームの例を持っていました.今、私は27コンソールゲームをコード化しているので、私は過去2年間で19を追加しました.私はこのフォローアップ記事を書いているような気がしました.
心の中だけ私は楽しみのために私の余暇でこれに取り組んでください.レポのゲームのほとんどは私が開発するために10時間未満私を取ったが、いくつかの例外は以下に記載されます.
2021年11月追加
私はこのゲームを作っている間に克服しなければならなかった1つのトピックは、キーがダウンしていないかどうかをクエリする組み込み方法がないことですない
道路はランダムに生成されます.背景を下にスクロールするたびにランダムに上部にある新しい行を生成します.3種類の道がある.ストレート1 .左の方を左1 .私がランダムに道を生成し始めたとき、Right時に、私は均等にそれを分割して、各々の可能なオプションに次の列である1/3のチャンスを与えました.しかし、それは通常、ギザギザのエッジでほとんどまっすぐな道になりました.ディー
2021年10月追加
私はこのゲームを追加したい機能の一つは、現在のコンソールサイズを尊重していた.あなたは、コンソールウィンドウをリサイズすることができますゲームは、画面の中央に文字を自分でレンダリングされます.もちろん、革命的な画面サイズは、コンソール/端末アプリケーションを扱っているときに少し奇妙です.それがバグだったかどうかわからないが、私は
すべてのグラフィックはASCII文字で作られていたにもかかわらず、私はまだスプライトシートを作成し、スプライトでマップを定義することが有益であることがわかった.ゲームは3つの異なるマップ:町、フィールド、および城があります.フィールドマップの定義は現在のところです.
2022年1月追加
2020年12月追加
すべてのゲームのうち、これは本当に色を必要とする唯一のものです.他のすべてのゲームはかなり簡単に色に依存しないように作られる可能性がありますが、パックマンで異なる色なしで、あなたは幽霊やパックマンを区別することができないだろう、と我々はまた、PACの男が1つの
2022年2月追加
2020年2月追加
この記事の執筆中.
2020年8月追加
ここで何かが興味をキャッチした場合、またはあなたが楽しい初心者C Countプロジェクトを探している人を知っていれば、すべてのゲームがオープンソースであるRPOをチェックアウトすることをお勧めしますhttps://github.com/ZacharyPatten/dotnet-console-games . 私の一般的な推薦は初心者のためのゲームをプレイし、彼らが好きなものを見つけるし、ゼロからそれをコードしようとする;あなたが動けなくなるならば、あなたは言及する働く例を持っています.
あなたがあなた自身のコンソールゲームをするならば、私は喜んで貢献を受け入れるでしょう、そして、それをrepoに加える気があります.または、あなたがコンソールで見たいと思っているゲームのアイデアを持っているなら、以下のコメントを自由にしてください.
どのように多くのコンソールゲームを作るのだろうか?いいえ、Pしかし、私はいくつかのアイデアを持っているので、将来的にもっと見ることを期待することができます.
お読みありがとうございます.良い一日を!
TLDR: I have been working on a GitHub repository with open source C# console game examples aiming to help people learn C# in fun ways. :)
私が最初の記事を書いたとき、レポは8つのコンソールゲームの例を持っていました.今、私は27コンソールゲームをコード化しているので、私は過去2年間で19を追加しました.私はこのフォローアップ記事を書いているような気がしました.
心の中だけ私は楽しみのために私の余暇でこれに取り組んでください.レポのゲームのほとんどは私が開発するために10時間未満私を取ったが、いくつかの例外は以下に記載されます.
NOTE! The mobile versions of this site don't use monospace font for code blocks, so the visual examples in this article do not render correctly on mobile. They render correctly when on a desktop browser.
ドライブ
2021年11月追加
.............. ........................
............... .......................
................ ......................
................. .....................
.................. ....................
................... ...................
.................... ..................
.................... ..................
.................... ..................
.................... ..................
.................... ..................
.................... ..................
.................... ..................
................... ...................
.................. ....................
................. .....................
.................. ....................
................... ...................
.................... ..................
..................... .................
...................... ................
....................... ^ ...............
...................... ................
このゲームでは、背景を下にスクロールし、あなたの維持しようとする^
矢印キーで道路上の車↑, ←, →
.私はこのゲームを作っている間に克服しなければならなかった1つのトピックは、キーがダウンしていないかどうかをクエリする組み込み方法がないことですない
Console.IsKeyDown(ConsoleKey.LeftArrow)
メソッド.あなたはこれらのゲームの例を避けるためにしたかった、そのためのネイティブライブラリに掘る必要があります.だから、私はあなたが下に保持しながら車の動きを左にすることができなかった←
左矢印キー.矢のキーで妥協しなければならなかった↑, ←, →
車の速度を設定する必要はありません.左矢印キーを押す←
一度、それは左に曲がるために車の速度を設定します.別のキーが押されるまで、速度が一定であるので、左の矢印が下っているならば、すぐに質問する必要はありません.道路はランダムに生成されます.背景を下にスクロールするたびにランダムに上部にある新しい行を生成します.3種類の道がある.ストレート1 .左の方を左1 .私がランダムに道を生成し始めたとき、Right時に、私は均等にそれを分割して、各々の可能なオプションに次の列である1/3のチャンスを与えました.しかし、それは通常、ギザギザのエッジでほとんどまっすぐな道になりました.ディー
.................... ..................
................... ...................
.................... ..................
..................... .................
.................... ..................
.................... ..................
..................... .................
.................... ..................
..................... .................
..................... .................
...................... ................
..................... .................
...................... ................
....................... ^ ...............
...................... ................
どうやってこれを修正したの?私は、新しい行が生成されるとき、それが以前に生成された行と同じ4/5のチャンスを持っているように、バイアスで追加しました.たとえば、左のターンが始まったならば、それはたぶん少なくともいくつかの行のために左折し続けるでしょう.これは、いくつかの長いターンと真っ直ぐで運転ゲームで見ることを期待する道路をもたらした.Drive
最も簡単なゲームの1つは、私の意見でプレーする最も楽しいものの一つであることが判明した.Unlike Snake
, どちらが遅い/簡単に起動し、徐々に難しくなる.Drive
あなたがミスをし、死ぬまで一貫性のある難易度があります.ロールプレイングゲーム
2021年10月追加
╔═══════════════════════════════════════════════════════════════════════════════════════════════════╗
║ ║
║ ║
║ /---\ /---\ ║
║ /---\/-Inn-\ _._ /Store\ /---\ ║
║ /-\/-\| | |___| | | /-\/-\ ║
║ \ /\ /| █ | | █ | \ /\ / ║
║ O ║
║ L|( ║
║ | ║
║ ( \ ║
║--\ /---\ /---\ /---\ /---\ /---\ /---\ /--║
║---\ /-----\/-----\ /-----\ /-----\/-----\ /-----\ /---║
║ |#######| || |#######| | | || |#######| |#######| ║
║█ |#######| █ || █ |#######| █ | | █ || █ |#######| █ |#######| █║
║═══╗╔═════╗╔═════╗╔═════╗╔═════╗╔═════╗ |-| |-| |-| ╔═════╗╔═════╗╔═════╗╔═════╗╔═════╗╔═══║
║███║║█████║║█████║║█████║║█████║║█████║ _| |_ _| |_ _| |_ ║█████║║█████║║█████║║█████║║█████║║███║
║███║║█████║║█████║║█████║║█████║║█████║ \ / \ / \ / ║█████║║█████║║█████║║█████║║█████║║███║
║═══╝╚═════╝╚═════╝╚═════╝╚═════╝╚═════╝ \ / \ / \ / ╚═════╝╚═════╝╚═════╝╚═════╝╚═════╝╚═══║
║ ║
╚═══════════════════════════════════════════════════════════════════════════════════════════════════╝
Move: arrow keys or (w, a, s, d)
Check Status: [enter]
Quit: [escape]
このゲームはかなり自己説明です.それはロールプレイングゲームです.ほとんどの人が“テキストベースのRPG”を考えるとき、彼らはおそらく純粋なテキストの質問と答えのタイプのゲームのようなものを考えるWhere would you like to move (n, s, e, w)?
. Although Role Playing Game
技術的には“テキストベースのRPG”、それは視覚的にWASDの動きと文字アニメーション(むしろ簡単な文字アニメーション)と世界を表しています.Role Playing Game
現在、私はレポに追加したゲームの最も複雑です.ほとんどのゲームはコードに5〜10時間かかりました.Role Playing Game
コードに25〜30時間かかりました.幸運にも、私は他のゲームからいくつかの資産を再利用することができました、Highdlesからのキャラクタランニングアニメーションのような、そして、パンチ+落下+は、ファイターからのアイドルアニメーションを得ます.私はこのゲームを追加したい機能の一つは、現在のコンソールサイズを尊重していた.あなたは、コンソールウィンドウをリサイズすることができますゲームは、画面の中央に文字を自分でレンダリングされます.もちろん、革命的な画面サイズは、コンソール/端末アプリケーションを扱っているときに少し奇妙です.それがバグだったかどうかわからないが、私は
ArgumentOutOfRangeException
設定時の例外Console.BufferHeight
or Console.BufferWidth
私の価値観が全く有効だったとしても、私は醜い試みキャッチでそれを包まなければなりませんでした.また、いくつかの違いがありますcmd.exe
とVsDebugConsole.exe
( Visual Studioデバッグコンソール)行の最後の文字に書き込むとき、それらは異なった振る舞いをする.つは、文字を書くと、同じ行に他の文字と次の行にジャンプし、私はConsole.WriteLine()
-各行の終わりには、1つのコンソールには空白行があり、もう一方はコンソールにはなかった.しかし、私が何が起こっていたかについて考え出したならば、それは簡単なフィックスでした.すべてのグラフィックはASCII文字で作られていたにもかかわらず、私はまだスプライトシートを作成し、スプライトでマップを定義することが有益であることがわかった.ゲームは3つの異なるマップ:町、フィールド、および城があります.フィールドマップの定義は現在のところです.
public static readonly char[][] Field = new char[][]
{
"mmmpmmmmpmmmmmpmmmmmpmmmmmpmmmpmmmpmmmpmm".ToCharArray(),
"mmpppppppmmmpppmmmpppppmmppmmmpmmmmpppmmm".ToCharArray(),
"mmpmmpmmpmppmmpmpmmpmmpmmmmmmpppmmpmpmmmp".ToCharArray(),
"TTTTTc mpmm cTT m2mcmmpp".ToCharArray(),
"TTTT mm g mmm".ToCharArray(),
"TTT TT mm mpm".ToCharArray(),
"TTT TTT mmmm TT ppm".ToCharArray(),
"www T mm TTT www".ToCharArray(),
"www TT ww T www".ToCharArray(),
"www ww TTT wwwww".ToCharArray(),
"www w0w Tww mmmmmm".ToCharArray(),
"wwww wwwwwww TT cmmmmmmmm".ToCharArray(),
"wwwwwwwwwwwwwwwwwwwwwTTTTTTTTTTTTmmmmmmmm".ToCharArray(),
"wwwwwwwwwwwwwwwwwwwwTTTTTTTTTTTTTTmmmmmmm".ToCharArray(),
"wwwwwwwwwwwwwwwwwwwTTTTTTTTTTTTTTTTmmmmmm".ToCharArray(),
};
各文字はスプライトのIDです.完全なリストのソースコードを見てください.W
水です.m
山、そしてT
が木です.悪化する
2022年1月追加
╔═══╦═══╦═══╦═══╦═══╗
║ H ║ O ║ U ║ S ║ E ║
╠═══╬═══╬═══╬═══╬═══╣
║ P ║ L ║ A ║ C ║ E ║
╠═══╬═══╬═══╬═══╬═══╣
║ S ║ E ║ A ║ R ║ S ║
╠═══╬═══╬═══╬═══╬═══╣
║ ║ ║ ║ ║ ║
╠═══╬═══╬═══╬═══╬═══╣
║ ║ ║ ║ ║ ║
╠═══╬═══╬═══╬═══╬═══╣
║ ║ ║ ║ ║ ║
╚═══╩═══╩═══╩═══╩═══╝
「wordle」は少しウイルス性になりました、そして、社会的なメディアの上にあります.私は、私がこのゲームが嫌いであると言及したかったですPしかし、それはコード化しないほど簡単だったので、私は進んで、それをコード化しました:しかし、ゲームはまだ吸う.パックマン
2020年12月追加
╔═══════════════════╦═══════════════════╗
║ · · · · · · · · · ║ · · · · · · · · · ║
║ · ╔═╗ · ╔═════╗ · ║ · ╔═════╗ · ╔═╗ · ║
║ + ╚═╝ · ╚═════╝ · ╨ · ╚═════╝ · ╚═╝ + ║
║ · · · · · · · · · · · · · · · · · · · ║
║ · ═══ · ╥ · ══════╦══════ · ╥ · ═══ · ║
║ · · · · ║ · · · · ║ · · · · ║ · · · · ║
╚═════╗ · ╠══════ ╨ ══════╣ · ╔═════╝
║ · ║ ║ · ║
══════╝ · ╨ ╔════---════╗ ╨ · ╚══════
· ║ █ █ █ █ ║ ·
══════╗ · ╥ ║ ║ ╥ · ╔══════
║ · ║ ╚═══════════╝ ║ · ║
║ · ║ READY ║ · ║
╔═════╝ · ╨ ══════╦══════ ╨ · ╚═════╗
║ · · · · · · · · · ║ · · · · · · · · · ║
║ · ══╗ · ═══════ · ╨ · ═══════ · ╔══ · ║
║ + · ║ · · · · · · █ · · · · · · ║ · + ║
╠══ · ╨ · ╥ · ══════╦══════ · ╥ · ╨ · ══╣
║ · · · · ║ · · · · ║ · · · · ║ · · · · ║
║ · ══════╩══════ · ╨ · ══════╩══════ · ║
║ · · · · · · · · · · · · · · · · · · · ║
╚═══════════════════════════════════════╝
PacMan
...コンソールのパックマンクローン.ドットを得る.幽霊をかわす.しかし、それは非常に誠実であることを意図しません.私はゴーストのAIを研究しませんでした、私はちょうど働いた私自身のAISを思いつきました.ここでは、私たちは、あなたのために行ったのは、サイコロのパスを発見し、すべての6つのフレーム(高速)Chi - Chi - Chunz -ゴーストB:ランダムに移動して更新し、すべての6フレーム(高速)CalNugetパッケージへのリファレンスTowel それはダイクストラパス発見アルゴリズムの一般的なバージョンが含まれているため.すべてのゲームのうち、これは本当に色を必要とする唯一のものです.他のすべてのゲームはかなり簡単に色に依存しないように作られる可能性がありますが、パックマンで異なる色なしで、あなたは幽霊やパックマンを区別することができないだろう、と我々はまた、PACの男が1つの
+
大きなドット.The ConsoleColor
ENUMは16種類の色しか持っていませんが、幸運にも、私は非常に限られたパレットでこれまでにすべてを働かせることができました.はい、コンソールでより多くの色をレンダリングする方法があります、しかし、これらはより新しい開発者のための比較的簡単な例であるつもりであるので、私がちょうどConsoleColor
.PacMan
, ライクRole Playing Game
, 他のゲームのほとんどは、開発するよりも少しかかりました.私はコードに正確にどのくらいの時間を覚えていることはできませんが、良い推測は、私がコードに20時間かかりました.私は実際にPACの人のファンではなかったので、それは私のために作るすべての楽しみではなかった.Dでも.私は挑戦が好きです.マンカラ
2022年2月追加
╔══════════════════════════════════╗
║ | |[ 8][ 0][ 1][ 0][ 6][ 7]| | ║
║ | | | | ║
║ | 3| | 4| ║
║ | | \/ | | ║
║ | |[ 7][ 1][ 0][ 7][ 2][ 2]| | ║
╚══════════════════════════════════╝
Mancala
現在レポの最新のゲームです.それは、ユーザーからの提案でしたC# Discord Server . 私はこのゲームをコーディングする前にマンカラをプレイしたことがなかったので、誰かがマンカの専門家で、私のコードのバグを見つけたならば、知らせてください.ディーMancala
ゲーム自体は非常に簡単ですので、面白いゲームだったが、私は視覚的にそれが見えるよりも、コンソールでそれを視覚的にそれを表す見つけた.ときに移動すると、種子を拾うと反時計回りの動きで道に沿って各ピットに種を置く動き.どのように、あなたはそれをコンソールで代表しますか?私は少しのカウンタークロックアニメーションを作り始めました、しかし、すぐに、私は考えて、「このアニメーションは、誰でもマンカをする方法を学ぶのを助けるつもりでありません.」いくつかのファンシーアニメーションをしようとするのではなく、私は+X
and -X
移動後の各ピット・ストアの ╔══════════════════════════════════╗
║ | |[ 4][ 4][ 4][ 4][ 4][ 4]| | ║
║ | | | | ║
║ | 0| +1| 1| ║
║ | | -4 +1 +1 +1 | | ║
║ | |[ 4][ 4][ 0][ 5][ 5][ 5]| | ║
╚══════════════════════════════════╝
私は、それがユーザーに起こったことを伝える最善の方法であると思いました.しかし、それはまだ偉大ではないMancala
あなたはすでにマンカに精通していない限り、おそらく最も混乱したゲーム全体のrepoで再生することです.ファイター
2020年2月追加
HP █████ ███████████ HP
EN ███████ ███ EN
o
O___. _>)
L( \|
| |
/ >
=================================
私はコンソールで2 Dファイターゲームを見たことがないので、私はそれが可能だったかどうかを確認するために自分自身をプッシュしようとするこのゲームを作ることを決めた.いいですか.いいえDでも.ねえ.動く.だから、コンソールで2 Dゲームを作ることができますか?はい!はい、あなたはできます!この記事の執筆中.
Fighter
間違いなくすべてのゲームの最悪のコードの品質があります.スパゲッティコードとマジックナンバーがあります.Pを歓迎します.多分いつか、私はコードをきれいにして、少しゲームを改善します.しかし、ゴールはここでAAAゲームをすることでありません、これは結局コンソール/ターミナルです.数独
2020年8月追加
╔═══════╦═══════╦═══════╗
║ 7 6 2 ║ 9 1 5 ║ 8 4 3 ║
║ 5 4 3 ║ 7 8 6 ║ 2 1 9 ║
║ 9 1 8 ║ 2 3 4 ║ 5 7 6 ║
╠═══════╬═══════╬═══════╣
║ 4 3 1 ║ 5 9 8 ║ 7 6 2 ║
║ 6 2 5 ║ 4 7 3 ║ 1 9 8 ║
║ 8 7 9 ║ 1 6 2 ║ 3 5 4 ║
╠═══════╬═══════╬═══════╣
║ 3 9 6 ║ 8 5 1 ║ 4 2 7 ║
║ 1 8 4 ║ 6 2 7 ║ 9 3 5 ║
║ 2 5 7 ║ 3 4 9 ║ 6 8 1 ║
╚═══════╩═══════╩═══════╝
かなり正確にあなたが期待するもの.コンソールで数独.結論
ここで何かが興味をキャッチした場合、またはあなたが楽しい初心者C Countプロジェクトを探している人を知っていれば、すべてのゲームがオープンソースであるRPOをチェックアウトすることをお勧めしますhttps://github.com/ZacharyPatten/dotnet-console-games . 私の一般的な推薦は初心者のためのゲームをプレイし、彼らが好きなものを見つけるし、ゼロからそれをコードしようとする;あなたが動けなくなるならば、あなたは言及する働く例を持っています.
あなたがあなた自身のコンソールゲームをするならば、私は喜んで貢献を受け入れるでしょう、そして、それをrepoに加える気があります.または、あなたがコンソールで見たいと思っているゲームのアイデアを持っているなら、以下のコメントを自由にしてください.
どのように多くのコンソールゲームを作るのだろうか?いいえ、Pしかし、私はいくつかのアイデアを持っているので、将来的にもっと見ることを期待することができます.
お読みありがとうございます.良い一日を!
Reference
この問題について(より多くのC), 我々は、より多くの情報をここで見つけました https://dev.to/zacharypatten/more-c-console-games-27bgテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol