現時点でのプログラムでトランプのゲームが作れるか確認しています
ご覧くださいましてありがとうございます。
前回は3回目のコロナワクチンの副反応で、
注射した箇所だけでなく、腋まで痛くなってキーボード叩くのもままならない、
という過去に経験のない痛みで作業がままならないという状況でしたが、
現在は完全になくなりましたので、
先々週から、実装を再開いたしました。
今回はゲームのアルゴリズムの実装部分で、
Unityを使用しておらず、かつコンソール画面という、
黒い画面に白い文字だけが表示されているだけの、
いつも以上に地味な内容ですが、
お付き合いいただけますと幸いです。
コンソール画面でポーカーを作成
山札をシャッフルして、
カードを5枚配って、
取り替えるカードを選んで、
入れ替えた後に役ができたかを判定して、
最後に片づける、
という流れができるかどうかの確認をしておりました。
ポーカーを題材にしたゲームをリリースする予定は現時点ではないのですが、
トランプを使ったゲームをコンスタントに出していきたいと考えておりますので、
「ルールが複雑なゲームが、現時点でのプログラムで、
過不足なくつくることができるかを検証しておく必要があるな」
と感じて、
まずはポーカーを作成してみよう!
と考えて実装してみました。
データの構造はなかなかいい感じで実装できた気がするのですが、
カードの移動のプログラムは、
もうすこし良い実装方法がないかな?と感じているところです。
地味なことですが、
データの設計とアルゴリズムの設計は、
初期にきちんとやっておかないとたいへんなことになりがちなので、
もう少し時間を掛けて検討したいと思っています。
なぜUnityで実装していないのか?
上記の内容をお読みになって、
Unity上でトランプの絵を表示して実装したほうがいいのではないか?
とお考えになる方もいらっしゃるかと思います。
わたしがこのような実装方針を採っているのは、
「Unity側で実装した機能と、ゲームのアルゴリズムの機能を分離しておきたい」
と思っているからです。
トランプのゲーム自体は、Unityでなくても作ることができます。
それこそ今回のように、
絵が必要でなければ、文字列だけで作成することも可能です。
ですが、Unityとは完全に独立して実装することで、
「不具合を特定しやすくなる」
というメリットがあります。
Unity側にゲームのアルゴリズムの実装をして、そこで不具合が出た場合、
Unity向けの処理で不具合が出たのか、
それともトランプのゲームのアルゴリズムに不備があったのか、
原因を特定するのが難しくなります。
例えば、「ゲームが止まった」という問題が起きた時、
「トランプのアルゴリズムかな?」と思って調べてみたら、
Unityのグラフィック関連の処理にミスがあった、
ということが起きてしまう、ということです。
こういうミスを可能な限り減らすのが、
不具合をなくすことにつながると考えています。
ですので、いったん純粋なC#のコンソール画面で、
トランプがきちんと実装できることを確認したうえで、
Unity側にトランプのゲームのアルゴリズムを持っていく、
というやり方で開発を進めています。
いずれUnity側に今回実装しているプログラムを持っていくことになりますが、
そこで不具合が出た時に、
「トランプのゲームのアルゴリズム自体は完成しているから、
不具合が出たとしたら、自分がUnity側で書いたコードの部分だ」
と特定できる状況になっているのが理想だと考えているためです。
回りくどい実装方針かもしれませんが、
元々このような実装の仕方で仕事を進めることが多かったですので、
個人開発でもこの実装方法を踏襲していこうと思っています。
そのため、しばらくはこんな感じの黒い画面で、
非常に地味な更新が続いてしまうかと思いますがご容赦ください。
最後までお読みいただきましてありがとうございます。
引き続きよろしくお願いいたします。