目标:点击页面中的所有“星星”,方法是先移动锡库里的行,再移动列
例如:恒星排列在一个网格中,如下所示:
* * * * *
* * * * *
* * * * *
* * * * *
编辑:点击顺序如下:
^{pr2}$首先点击左上角的那个,然后点击右边的星,以此类推。下一步到第二行的左上角,重复。在
我的当前代码:
def by_x(match):
return match.x
def by_y(match):
return match.y
stars = findAll("imgOfStar")
sorted_stars_x = sorted(stars, key=by_x)
sorted_stars_y = sorted(stars, key=by_y)
for icon in sorted_stars_x:
for icon2 in sorted_stars_y:
click("imgOfStar")
这也许不是最优雅的方式,但我首先想到的是:
说明:你的例子中的前五颗星应该有匹配的y值,也就是说,它们都应该是最上面的一行。现在,您只需对它们的x值进行排序,并将它们附加到一个列表中,然后转到下一个5,依此类推。在
如果事先不知道网格的大小,可以用几种不同的方法来实现 如果你的网格总是完全平方的,你可以找到你的星数的平方根:
^{pr2}$如果您的网格不是完全方正的,您还可以做一些其他的事情,但除非这是您要寻找的,否则这个答案会变得有点长,所以我们将把这个讨论留到后面:)
编辑: 由于您知道列数始终为5,因此可以找到如下所示的行数:
然后,您可以使用while循环遍历您的星:
说到底,这会帮你完成任务,@Tenzin的回答更优雅:)
你可以给自己下个定义,明确你喜欢怎样在星空中移动。 屏幕本身有一个x.y位置。从左上角开始,右下角结束,你需要 match.y,match.x
那你需要找到一个星星.png)星星。 你去整理的那些星星,按照你定义的顺序。在
然后使用for循环来处理星星。在
示例代码:
相关问题 更多 >
编程相关推荐