DalTXColtsFan
新成员
- 已加入
- 2018年1月25日
- 留言内容
- 1
- 编程经验
- 10+
这个问题与C#有关的问题更多与OOP有关。
假设我要用C#编写一个扑克模拟器。 AI玩家可以适应某些特征,例如被动鱼,积极进取的疯子,平衡玩家,紧张玩家甚至随机玩家。
显然,作为我代码的一部分,我将创建一个名为玩家的类,其属性包括开放式加注范围,开放式lim回范围,连续下注百分比,翻牌加注百分比yada yada yada(对论坛上不懂扑克的人表示歉意) 。
我正在尝试决定如何处理这样一个事实,即大多数AI玩家几乎可以完美地满足上述类别之一,但我希望能够灵活地为任何玩家调整任何属性。
我认为继承和/或多态性(尽管我承认我绝对不理解100%的多态性)是不必要的。无需创建名为疯子,鱼,紧身玩家,随机玩家等的类,并且可以多态化为称为玩家的类,并且无需创建一系列类玩家并可以使其成为疯子等。不论玩家类型如何,"action"将会是一样的,并且取决于他们的牌,他们的范围和他们的频率-在任何给定的点,我们进行计算,结果是检查,跟注,加注或弃牌。
我认为我想做的是使用接受字符串的重载构造函数创建player类。字符串必须是鱼,疯子,紧张的玩家或随机的(或其他我想出的东西),并且我只是根据该玩家类型的默认设置来设置所有属性。一旦所有属性都具有基于传递给构造函数的字符串的默认值,我便可以随意调整其中的任何一个。
这听起来像是一种可接受的方法吗?-创建一个名为Player的类,并使用重载的构造函数,属性和一个名为CalculateAction的方法,该方法将根据他的范围,频率,棋盘和直到该点的动作来计算下注,加注或弃牌。手?
我确定以后还会有其他问题,有关为纸牌组创建类别,为翻牌组创建类别等,但现在我很高兴能收到关于我对玩家类的思考的反馈。
希望这是有道理的,
DTXCF
假设我要用C#编写一个扑克模拟器。 AI玩家可以适应某些特征,例如被动鱼,积极进取的疯子,平衡玩家,紧张玩家甚至随机玩家。
显然,作为我代码的一部分,我将创建一个名为玩家的类,其属性包括开放式加注范围,开放式lim回范围,连续下注百分比,翻牌加注百分比yada yada yada(对论坛上不懂扑克的人表示歉意) 。
我正在尝试决定如何处理这样一个事实,即大多数AI玩家几乎可以完美地满足上述类别之一,但我希望能够灵活地为任何玩家调整任何属性。
我认为继承和/或多态性(尽管我承认我绝对不理解100%的多态性)是不必要的。无需创建名为疯子,鱼,紧身玩家,随机玩家等的类,并且可以多态化为称为玩家的类,并且无需创建一系列类玩家并可以使其成为疯子等。不论玩家类型如何,"action"将会是一样的,并且取决于他们的牌,他们的范围和他们的频率-在任何给定的点,我们进行计算,结果是检查,跟注,加注或弃牌。
我认为我想做的是使用接受字符串的重载构造函数创建player类。字符串必须是鱼,疯子,紧张的玩家或随机的(或其他我想出的东西),并且我只是根据该玩家类型的默认设置来设置所有属性。一旦所有属性都具有基于传递给构造函数的字符串的默认值,我便可以随意调整其中的任何一个。
这听起来像是一种可接受的方法吗?-创建一个名为Player的类,并使用重载的构造函数,属性和一个名为CalculateAction的方法,该方法将根据他的范围,频率,棋盘和直到该点的动作来计算下注,加注或弃牌。手?
我确定以后还会有其他问题,有关为纸牌组创建类别,为翻牌组创建类别等,但现在我很高兴能收到关于我对玩家类的思考的反馈。
希望这是有道理的,
DTXCF