lst = []
for i in range(10): # 存储地图 但是我没有用边界限定
lst.append(list(input()))
boo = [False] * 160005
def move(x, y, mi, h): # x y是位置 mi是移动方位 h是类型0是牛 1是农夫
if mi == 0: # 假如是向上走
if x == 0 or lst[x - 1][y] == "*":
if h == 0:
c[0] = 1
else:
f[0] = 1
else:
if h == 0:
c[1] -= 1
else:
f[1] -= 1
if mi == 1: # 假如是向右走
if y == 9 or lst[x][y + 1] == "*":
if h == 0:
c[0] = 2
else:
f[0] = 2
else:
if h == 0:
c[2] += 1
else:
f[2] += 1
if mi == 2: # 假如是向下走
if x == 9 or lst[x + 1][y] == "*":
if h == 0:
c[0] = 3
else:
f[0] = 3
else:
if h == 0:
c[1] += 1
else:
f[1] += 1
if mi == 3: # 假如是向左走
if y == 0 or lst[x][y - 1] == "*":
if h == 0:
c[0] = 0
else:
f[0] = 0
else:
if h == 0:
c[2] -= 1
else:
f[2] -= 1
cns = 0
f = [0]
c = [0]
for i in range(10): # 找到农夫与牛的位置
for j in range(10):
if lst[i][j] == "F": # f是农夫
f.append(i)
f.append(j)
if lst[i][j] == "C": # c是牛
c.append(i)
c.append(j)
tdz = 0
while f[1] != c[1] or f[2] != c[2]:
move(f[1], f[2], f[0], 1) # 移动农夫
move(c[1], c[2], c[0], 0) # 移动牛
cns += 1
if cns > 1000000: # 耍赖方法 大于一定的值就程序退出就可以了
print(0)
exit(0) # 程序退出
print(cns)
洛谷 P1518 [USACO2.4]两只塔姆沃斯牛 The Tamworth Two Python题解
最新推荐文章于 2024-07-27 12:20:46 发布