5

カードゲームの戦術をいくつかテストしたいのですが、私の目標は、魔女の戦術が実際のライブでより優れていることを知ることです. これを行うためにシミュレーションを作成しましたが、良いシミュレーションを作成したかどうかはわかりません。ですから、良いシミュレーションを作成する方法を知りたいです。

ブラフなど、実際に押し付けられるすべての要素をシミュレートすることはできません。排除できる要素もありますが、可能な限り排除しました。ブラフのような、残された要素は範囲外です。それらをシミュレートすることは不可能です。

シミュレーション プロジェクトを使用して、いくつかの戦術を互いに比較します。このようにして、他の戦術に対して使用できる戦術を確認できます。これの欠点は、相手の戦術を知っている場合にのみ使用できることです。それに対してどの戦術を使用できるかわからない場合は、それをテストするためのコンピューターが必要です。したがって、このプロジェクトは自分のプレイ スタイルを確認するためだけに使用できます。

この質問は「神の戦術」を作成することに関するものではありませんが、カード ゲームなどのシミュレーションに使用できる優れたシミュレーション ソフトウェアを作成することに関するものです。ですから、どうすれば良いシミュレーションができるか知りたいです。

  • 何を持っていく必要がありますか?
  • 自分のシミュレーションが優れたシミュレーションであることをどのように判断できますか?
  • 状況をどのように処理すればよいですか? たとえば、いくつかのランダムなハンドを生成するか、すべての可能性を試してください。
4

4 に答える 4

4

3 つの質問への回答:

  1. カード同士のくっつきや、さまざまなシャッフル テクニックなどの要因は、実際には重要ではありません。カードの順序をランダム化するために、疑似ランダム ノイズ ソース (rand() など) を使用してシャッフルをモデル化すると仮定します。ほとんどのシャッフル手法はおそらく十分に優れているため、目的に完全に十分なモデルです。

  2. 戦略を簡単に説明できるほど、私はこのゲームをよく知りません。あなたが説明したテストは、それらの戦術が直接対決したときにどちらが勝つかという質問に答える必要があります. これらが 2 つの戦略のみであり、それらが完全に実装できるほど単純である場合、はい、どちらが優れているかはテストでわかります。このゲームがほとんどのそのようなゲームのようであり、多くの異なる戦略と微妙な点が含まれている場合、これら 2 つの戦略が直接対決したときにどちらが勝つかを知っていても、実際にどちらがより優れた戦略であるかについてはほとんどわかりません。

  3. 基本的には 2 番目の質問への回答で説明しましたが、戦術を 100% 正しくプログラムした場合、ボット対決の結果は、これら 2 つの戦略のどちらがより頻繁に勝つかを教えてくれるという点で役立ちます。彼らが直接対決するとき。ただし、このようなほとんどのゲームでは、それだけでは戦略が全体的にどれだけ優れているかはわかりません. 繰り返しますが、私はこのゲームについて確信を持って言えるほど十分に知っているわけではありませんが、ゲームに多くの可能な戦略が含まれている場合、テストはおそらくそれが非常に役立つことをあまり教えてくれません.

于 2012-07-28T21:13:21.930 に答える
2

この種のシミュレーションでは何も証明できません。あなたが本当に学んでいるのは、シミュレーション A が B よりも優れているということだけですが、現実の世界で、または他の戦略に対してどのように機能するかではありません。

何が良くて何が悪くなるかについての一般的なアイデアを得ることができますが、それはそれについてです.

于 2012-07-28T21:23:55.130 に答える
1

私の答えは研究に基づくものではなく、狭い範囲で戦術をシミュレートするという私の考え方です。

これが私がシミュレーションを作成した方法です:

最初に行う必要があるのは、比較したい戦術を実装できることを確認することです。それらをプログラムする方法がない場合、それらを自分でテストする方法はありません。

テスト範囲を書き留めてください。新しいアイデアが浮かぶたびにプロジェクトを拡張できます。それを行うと、決して終わらないプロジェクトを作成しています。したがって、やりたいことをマークし、すべてのオプションを検討してください。ブラフが良い例です。ブラフ シミュレーションを実装することはほとんど不可能です。勝つ可能性を計算することはできますが、通常の人は、たとえば、他の人がパスするか、勝つと思うときにブラフします。「想い」をプログラムに実装するのは大変な作業です。すべての人がブラフに対して同じ感情を持っているわけではありません。しかし、さまざまなブラフ セット (感情) を作成し、ボットにすべての戦術でそれらを使用させることができます。これは大変な作業になります。私の場合、これは価値がありませんでした。

戦術を比較する方法を見つけます。勝つために必要な変化率を知りたいですか? それとも、他の理由でランダムなゲームをしたいですか?

すべてのゲームにはより多くの方言があります。従うべきルールのセットを見つけてください。それらのルールを実装します。これを行わないと、シミュレーションが正しく行われません。

すべての戦術を実装し、可能な限り同じ機能を使用します。このようにして、コア機能を自動的にテストしています。このアプローチを使用すると、より早く作業を完了でき、発見されなかったバグを見つけることができます。

システムをテストします。シミュレーションではテストが非常に重要です小さな問題が 1 つでもあると、間違った結果が生じることがあります。デバッガーでコードを調べて、ライドが行われるかどうかを確認してください。「デバッグ モード」を作成し、このモードですべてのゲームの結果を表示してレビューします。また、ゲームのプレイ方法を他の人にレビューしてもらいます

于 2013-01-08T09:37:23.900 に答える
0

In your more details request you ask:

What is important?

How can you make a good simulation?

How do you know it is relevant in a real live situation.

The answer to the first question can only be answered by expert at the game; creating AI is not an easy task and to create great AI you need to know all the strategies in the game and you need to program those strategies in. Then you either need to know when to use those strategies or in the case of what you are trying to determine have the computer cycle through all the combinations.

Make a good simulations depends a lot on what you are trying to achieve. You could go with the Chess method and have the AI play out all the possible scenarios and choose the best ones. This would in effect remove the strategies from the game entirely but it also might come up with some new ones; but good chess programs use opening books and what-not. To simulate real life you would probably want to use some combination of strategies and playing out all the possible moves depending on the situation.

Also, you say that you can't bluff, but that is not necessarily true. If it is a strategy in the game then you should probably program bluffing in and attempt to program in a response to bluffing. If you are going to do that you would need to implement a bluffing skill and detect bluffing skill and also a bluffing percentage. With that you could also learn how often bluffing could be useful for a given real life skill level. If you do implement bluffing you probably want to be able to run your simulation with it on or off.

To test you simulator, and insure it is accurate to real life, I would advise having the computer face off all the know combinations/results and insure that the results are the same as what you would see in real life. After that start cycling through but ramp up testing slowly just run a few strategies at first and check the results, then add in a few more. If you put all the strategies in from the get-go you will have a very hard time finding out that one of them doesn't work correctly.

于 2013-01-08T15:27:27.050 に答える