我需要创建一个板球管理员游戏(很像足球经理)。
长话短说我需要根据每个用户团队和战术来决定游戏的结果。我的想法是逐球决定结果。
因此,根据Bowlers属性(力量,耐力,技能等),球(具有一些属性:速度等)被发送给击球手,击球手也会根据得分击中(或不击球),如果球被击中然后我会将球送向其中一个守场员(假设有9个,产生1到9之间的随机数并通过那个守场员)。再次基于外野手的技术,它会接球还是没有。
我缺少的是击球手在击球前的跑动次数。 我想微调球的方向。 我也不确定球员入场顺序会如何影响比赛结果。
您能帮我定义一个好的匹配工作流程吗? (我对板球不太熟悉,阅读教程,观看比赛,但从未参加比赛)。
谢谢。
更新
我还想到一个球会存储大部分需要的决策数据,例如:
球。 Bowler =球员(扔球的投球手)
球。击球手 =球员(可能击球的击球手)
球。 OverId =在这个球上打了
ball。 Hittable = 4(这个数字可能来自投球手强项+其他人,也可能取决于Bowler和Batsmen
球。运行 = 2击球手击球手的数量
ball.IsUsed用于球磨损或新的 ball.IsOutside =如果球被送到场外,则为真
=====将用于计算击球手是否可以击球这个球
球。的 ThrowHeight
球。的 ThrowSpeed
球。的 ThrowEffect
球。的 ThrowNumberOfBounces
球。的 BattedHeight
球。的 BattedSpeed
ball。 FieldlerDirection = 3 (朝向第三个追踪者),随机
球。 FieldlerDirectionOffset = 2 (在第3个投手的2米范围内。0将是守场员可能直接从半空中捕获它),随机
我还需要考虑投球手是否为树桩射击,这将是另一个工作流程。
UPDATE2:
比赛是20/20板球。
答案 0 :(得分:3)
这是一个有趣的问题,但我没有看到它的实用性。你在做模拟吗?
在任何情况下,如果我在你的位置,我会为每个球做以下事情,假设你拥有与球员相对应的所有相关数据。
我会将其分为4个阶段,每个结果由
定义<强>一个。策略强>
<强>湾强度强>
<强>℃。随机性强>
<强> d。以前阶段的状态。
定义守备阵地。根据保龄球队的战略,我会把我的强大的外野手放在关键的positions。这可以通过策略和一些随机性的组合来完成。
定义球。这将取决于投球手的技能(旋转/快速投球手/挥杆投球手),比赛情况(比赛结束时的比赛等),一些随机因素和一些规则(每人一个保镖等)(参见{{3}) })。这个阶段的结果是在击球手附近完美定义的球位置/速度/方向(基本上是轨迹)。
定义笔画。这将取决于击球手的力量,比赛情况,一些随机性,最重要的是第2阶段球的定义(见[这里])here。这将定义下一个轨迹/速度。
定义守备。这对你来说是最重要的问题。现在这取决于第1阶段的场地位置,守场员的力量,最重要的是第3阶段的球轨迹的定义。根据这些因素,它可能是一个捕获,或0,1,2,4,6运行。一些明显的实施方案可能是,如果球的位置几乎将两个守门员一分为二并且附近没有其他的弹射器,并且如果球的速度足够好以到达边界,那么它是4次运行。在这里你必须在第4阶段正确地实现球轨迹的物理学。不仅如此,如果轨迹没有接触地面,并且如果附近有玩家,这可以被定义为捕获,如果球已经触及在到达球员附近之前的地面,你可以修改弹道以引导球回到守门员等。也许你可以在进入困境之前实施简单的规则,例如跑出来。
最后球应该回到投球手。
一切顺利。
答案 1 :(得分:1)
我认为板球的物理模拟通常不是一个好主意。如果我是你,我会尝试在更抽象的层面解决问题。
保龄球:
一旦你知道了什么类型的交付(约克,保镖,完全折腾,googly,等等),你可以从击球手的角度玩类似的游戏:他试图击中它,阻止它还是离开它?他喜欢在前脚还是后脚上踢球?等等。
你明白了:结果应该直接根据球员和环境属性计算,使用已经在板球分析中建立的概念。
作为奖励,您可以使用D-L验证您的算法是否真实。