【id:423】【4分】I. 碰撞检测(循环)
题目描述
游戏中需要检测元素是否碰撞到一起,比如打飞机游戏,没躲避炮弹就算碰撞,检测出来,游戏game over。假设将游戏中的元素当作矩形,当两个矩形有重合点,则认为它们发生碰撞。
设屏幕左上角坐标为(0,0),x轴向右,y轴向下,屏幕上的点用(X,Y)坐标表示,如下图所示。
屏幕中的矩形用其左上角和右下角坐标标识。分别输入两个矩形的左上角和右下角坐标,检测其是否碰撞。
输入
3
0 0 10 10
11 11 20 20
10 10 15 15
8 13 13 20
4 4 20 20
20 20 30 30
测试次数T
每组测试数据两行:
第一行,矩形1的左上角坐标,右下角坐标
第二行,矩形2的左上角坐标,右下角坐标
输出
NO
YES
YES
对每组测试数据,输出碰撞检测结果,YES(碰撞)或NO(无碰撞)
t=int(input())
for x in range(t):
a=list(input().split())
b=list(input().split())
k1=[int(l) for l in a]
k2=[int(m) for m in b]
tes=0
for i in range(k1[0],k1[2]+1):
for j in range(k2[0],k2[2]+1):
if i ==j:
for op in range(k1[1], k1[3] + 1):
for ed in range(k2[1], k2[3] + 1):
if op==ed:
tes+=1
if tes:
print("Yes")
else:
print("No")