1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| # 示例2:模拟物体碰撞检测
def check_collision(obj1_pos, obj1_size, obj2_pos, obj2_size):
"""
检测两个矩形物体是否发生碰撞
模拟AI理解物理世界中的空间关系
参数:
obj1_pos: 物体1的位置 (x, y)
obj1_size: 物体1的大小 (width, height)
obj2_pos: 物体2的位置 (x, y)
obj2_size: 物体2的大小 (width, height)
返回:
bool: 是否碰撞
"""
# 计算两个物体的边界
left1, right1 = obj1_pos[0], obj1_pos[0] + obj1_size[0]
top1, bottom1 = obj1_pos[1], obj1_pos[1] + obj1_size[1]
left2, right2 = obj2_pos[0], obj2_pos[0] + obj2_size[0]
top2, bottom2 = obj2_pos[1], obj2_pos[1] + obj2_size[1]
# 碰撞检测逻辑
if (right1 > left2 and left1 < right2 and
bottom1 > top2 and top1 < bottom2):
return True
return False
# 测试用例
print("测试1 (应返回True):", check_collision((0, 0), (10, 10), (5, 5), (10, 10)))
print("测试2 (应返回False):", check_collision((0, 0), (10, 10), (20, 20), (10, 10)))
print("测试3 (边缘接触,应返回False):", check_collision((0, 0), (10, 10), (10, 0), (10, 10)))
|