gpt4 book ai didi

数学 - 困难的 Pong AI

转载 作者:行者123 更新时间:2023-12-02 01:47:34 25 4
gpt4 key购买 nike

我正在为我的 Pong 克隆编写一些困难,我写这些是为了熟悉 SFML 和 Xcode。对于最难的难度,我想创建一个人工智能关卡,让计算机立即知道球会去哪里。所以,如果我有 xVelocity 和 yVelocity,我就可以有效地得到斜率。问题是,每次球撞击顶部或底部时,yVelocity 都会反转。所以本质上,我有一个代数斜率问题,每次撞到墙壁时都会产生相反的结果。

现在,我的屏幕高度为 600 像素,命中检测为顶部和底部 5 像素,使空间为 590 像素。

我的问题:是否有某种公式可以包含所有这些因素。举例来说,球在 x = 30 和 y = 240 处击打,斜率为 1.45,我想获取当 x = 770 时球击中的 y 值。

请告诉我是否可以简化此操作。再说一次,我知道如何通过计算它来计算出它,比如说如果球弹跳 4 次,则计算 4 次,但我想知道是否有一种方法可以计算出在边界处进行 y 速度切换。

谢谢!

最佳答案

编辑:只需阅读您的屏幕实际上是 590 像素高,这会改变数学,但不会改变公式

计算球会击中的位置,忽略碰撞。如果 (0,0) 是竞技场的左上角,则取 y = mx + b,其中 b 是 y 偏移量(球在 y = 240 处击中),m 是坡度 (1.45)

现在我们想知道当 x 进一步770-30位时 y 等于多少,所以做一下数学计算:

y = (1.45)(740) + (240) = 1313

这显然超出了你的范围。它会反射(reflect)出来

y/height = floor(1313/590) = 2 times

意味着斜坡仍在向上移动,它将到达

y mod height = 1313 mod 590 or 133

如果它反射了奇数次(floor(y/2) %2 == 1),那么您必须使用以下方法来计算它

MAX_HEIGHT - (y mod height) = 590 - (1903 mod 590) = 590 - 133 = 457

您可以通过将多个 590 高度字段堆叠在一起来可视化这一点,其中一个是您开始的位置:

--------------------------------------------------------------------
|
|
|
| ball ends up here (*)
| *
| *
| *
------------------------(reflection two)------------*---------------
| *
| *
| *
| *
| *
| *
| *
---------------------*---------(reflection 1)------------------------------
| *
| *
| *
| *
|*ball hit here
|
|
-----------------------------------------------------------------------

同样的想法也适用于向下。计算位置,计算出反射次数,使用 mod 或 590 - mod 来确定它应该在哪里。

关于数学 - 困难的 Pong AI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11461249/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com