# python3.6实现
本地测试了几组数据都过了,不知道哪里出了错误提示**答案错误!**
看代码,**有注释**!
**具体思想:**就是把蚂蚁当作一个对象,通过更换蚂蚁的位置与头部完成运动最后输出蚂蚁的最终位置,我觉得我没做错,希望大神找一下错误!
```python
#黑-1向右90度,白-0左90度。
#map_y=[[0,0,0,0,0,0],[0,0,0,0,0,0],[0,0,1,0,0,0],[0,0,0,0,0,0],[0,0,0,0,0,0]]
#蚂蚁
class ldmy():
def __init__(self,head,l,r):
self.head=head
self.l=l
self.r=r
def re(self):
self.l=0
self.r=0
def point(self):
P=self.head
i=self.l
j=self.r
if P=='L':
if map_y[i][j]==1:
yi_1.l=i-1
yi_1.head='U'
else :
yi_1.l=i+1
yi_1.head='D'
if P=='U':
if map_y[i][j]==1:
yi_1.r=j+1
yi_1.head='R'
else :
yi_1.r=j-1
yi_1.head='L'
if P=='R':
if map_y[i][j]==1:
yi_1.l=i+1
yi_1.head='D'
else :
yi_1.l=i-1
yi_1.head='U'
if P=='D':
if map_y[i][j]==1:
yi_1.r=j-1
yi_1.head='L'
else :
yi_1.r=j+1
yi_1.head='R'
a,b=map(int,input().split())#数组大小
map_y=[[0]*b]*a
#输入数组
for i in range(0,a):
map_y[i]=input().split(' ')
map_y[i]=[int(j) for j in map_y[i]]#变整形
#蚂蚁初始位置
a,b,str,x=input().split(' ')
a=int(a)
b=int(b)
x=int(x)
yi_1=ldmy(str,a,b)
#运动
while(x!=0):
x=x-1
i=yi_1.l
j=yi_1.r
yi_1.point()
if map_y[i][j]==0:
map_y[i][j]=1
else:
map_y[i][j]=0
#最终位置
print(yi_1.l,yi_1.r)
```
##第一次更新
class ldmy():
def __init__(self,head,l,r):
self.head=head
self.l=l
self.r=r
def point(self):
P=self.head
i=self.l
j=self.r
if P=='L':
if map_y[i][j]==1:
yi_1.l=i-1
yi_1.head='U'
else :
yi_1.l=i+1
yi_1.head='D'
if P=='U':
if map_y[i][j]==1:
yi_1.r=j+1
yi_1.head='R'
else :
yi_1.r=j-1
yi_1.head='L'
if P=='R':
if map_y[i][j]==1:
yi_1.l=i+1
yi_1.head='D'
else :
yi_1.l=i-1
yi_1.head='U'
if P=='D':
if map_y[i][j]==1:
yi_1.r=j-1
yi_1.head='L'
else :
yi_1.r=j+1
yi_1.head='R'
a,b=map(int,input().split())
map_y=[[0]*b]*a
for i in range(0,a):
map_y[i]=input().split(' ')
map_y[i]=[int(j) for j in map_y[i]]
l,r,s,x=input().split(' ')
l=int(l)
r=int(r)
x=int(x)
yi_1=ldmy(s,l,r)
#运动
try:
while(x!=0):
x=x-1
i=yi_1.l
j=yi_1.r
yi_1.point()
if map_y[i][j]==0:
map_y[i][j]=1
else:
map_y[i][j]=0
except :
x=0
print(yi_1.l,yi_1.r)
0.0分
1 人评分