编程题目:编程猫抓老鼠
题目描述:
编写一个程序,模拟一只猫抓老鼠的过程。猫和老鼠在一个二维平面上,猫的目标是抓住老鼠。每次猫可以向上、下、左、右移动一格,老鼠也可以向上、下、左、右移动一格。当猫到达老鼠的位置时,猫成功抓住了老鼠。如果猫无法在某一回合内到达老鼠的位置,老鼠逃跑。
输入:
第一行输入一个整数 `n`,表示老鼠的数量。
接下来的 `n` 行,每行输入两个整数 `x` 和 `y`,分别表示第 `i` 只老鼠的横坐标和纵坐标。
输出:
输出猫最后抓住的老鼠的编号。
示例:
输入:
```
3
1 1
2 2
3 3
```
输出:
```
1
```
解释:
1. 第一轮,猫从 (0,0) 出发,老鼠1从 (1,1) 出发,猫抓住老鼠1。
2. 第二轮,猫从 (0,0) 出发,老鼠2从 (2,2) 出发,猫抓住老鼠2。
3. 第三轮,猫从 (0,0) 出发,老鼠3从 (3,3) 出发,猫抓住老鼠3。
代码示例(Python):
```python
def find_mouse(mice):
cat_x, cat_y = 0, 0
for i, (mouse_x, mouse_y) in enumerate(mice):
if cat_x == mouse_x and cat_y == mouse_y:
return i + 1
if cat_x < mouse_x:
cat_x += 1
elif cat_x > mouse_x:
cat_x -= 1
if cat_y < mouse_y:
cat_y += 1
elif cat_y > mouse_y:
cat_y -= 1
return -1 如果猫无法抓住任何老鼠,返回-1(根据题目描述,这种情况不会发生)
示例输入
mice = [
(1, 1),
(2, 2),
(3, 3)
]
输出结果
print(find_mouse(mice)) 输出: 1
```
建议:
1. 可以使用面向对象的编程方法,定义猫和老鼠的类,分别实现它们的移动和追逐行为。
2. 可以使用广度优先搜索(BFS)或深度优先搜索(DFS)等算法来实现猫抓老鼠的过程。
3. 确保代码能够正确处理边界条件,例如猫和老鼠在同一个位置时。