3

我需要创建一个板球经理游戏(很像足球经理)。

长话短说,我需要根据每个用户的团队和战术来决定游戏的结果。我的想法是逐球决定结果。

因此,根据投球手的属性(力量、耐力、技能等),一个球(具有一些属性:速度等)被发送给击球手,击球手也会根据得分击球(或不击球),如果球是击球后,我会将球传给其中一名外野手(假设有 9 个,生成一个介于 1 和 9 之间的随机数并传给该外野手)。再次基于守场员的技能,它是否会接住球。

我缺少的是击球手在接球前的跑动次数。我想微调球的方向。我也不确定玩家进入的顺序会如何影响游戏结果。

你能帮我定义一个好的匹配工作流程吗?(我对板球不是很熟悉,阅读教程,观看比赛,但从未玩过)。

谢谢你。

更新:

我还认为一个球会存储大部分需要的决策数据,例如:

球。Bowler = player(投球的投球手)

球。击球手 = 球员(可能击球的击球手)

球。OverId = 超过这个球的位置

球。Hittable = 4(这个数字可能是由投球手力量+其他人产生的,也可能取决于投球手和击球手

球。数 = 2 击球者的跑数

ball.IsUsed 每当球磨损或新 ball.IsOutside = true 如果球被送到场外

===== 将用于计算击球手是否可以击球

球。投掷高度

球。投掷速度

球。投掷效果

球。ThrowNumberOfBounces

球。击球高度

球。击球速度

球。FieldlerDirection = 3(朝向第三个外野手),随机

球。FieldlerDirectionOffset = 2(在第 3 外野手的 2 米范围内。0 表示外野手可能直接从半空中接住它, ),随机

而且我还需要考虑投球手是否为树桩射击,这将是另一个工作流程..

更新2:

比赛是 20/20 板球比赛。

4

2 回答 2

3

这是一个有趣的问题,但我看不到它的实用性。你是在模拟吗?

无论如何,如果我处于你的位置,假设你拥有与球员对应的所有相关数据,我会为每个球做以下事情。

我会将其分为 4 个阶段,每个结果由

一种。战略

湾。力量

C。随机性

d。先前阶段的状态。

  1. 定义守备位置。根据保龄球队的策略,我会把我的强力外野手放在关键位置。这可以通过混合策略和一些随机性来完成。

  2. 定义球。这将取决于投球手的技能(旋转投球手/快速投球手/摇摆投球手)、比赛情况(局结束时的约克等)、一些随机因素和一些规则(每个投球手一个保镖等)(见此处)。这个阶段的结果是击球手附近完美定义的球位置/速度/方向(基本上是轨迹)。

  3. 定义笔划。这将取决于击球手的力量、比赛情况、一些随机性以及最重要的是第 2 阶段球的定义(参见 [此处])3。这将定义下一个轨迹/速度。

  4. 定义守备。这对你的问题来说是最关键的。现在这取决于第 1 阶段的场地布置、守场员力量,以及最关键的是第 3 阶段的球轨迹定义。根据这些因素,它可能是接球,或 0、1、2、4、6 次跑动. 一些明显的实现可能是,如果球的位置几乎平分两名守场员,并且附近没有其他守场员,并且如果球的速度足以到达边界,则为 4 分。在这里,您必须在第 4 阶段正确实现球轨迹的物理特性。不仅如此,如果轨迹没有接触地面并且附近有球员,如果球已经接触过,这可以定义为接球到达玩家附近之前的地面,

最后球应该回到投球手。

祝一切顺利。

于 2012-07-02T12:51:50.483 回答
1

我不认为板球的物理模拟通常是一个好主意。如果我是你,我会尝试在更抽象的层面上解决这个问题。

保龄球:

  1. 速度、长度和线路。这取决于战术和投球手的稳定性。
  2. 摆动或旋转。这取决于保龄球技术、球场和天气。
  3. 错误:无球或边路。这再次取决于投球手的一致性。

一旦你知道了投球的类型(yorker、bouncer、full toss、googly 等等),你就可以从击球手的角度玩类似的游戏:他是尝试击球、阻挡还是离开?他更喜欢踢前脚还是后脚?等等。

你明白了:结果应该直接从球员和环境属性中计算出来,使用板球分析中已经建立的概念。

作为奖励,您可以使用 DL 来验证您的算法是否现实。

于 2012-07-02T13:25:23.293 回答