按照流程来,设定一个函数realmove专门用于判断坐标移动输入是否合法,如果合法,再进行main内的移动操作
合法的定义:
1.输入的move字符串长度只能为2或者3,长度为0,1输入也不会走,长度大于3,不合法
2.输入的move字符串定义为W/A/S/D+数字(注:str类型,需要转换),所以从前往后遍历一遍,如果第一项为W/A/S/D(可以使用set来快速查询),第二三项都是数字字符,那么就是合法字符串
a = input().split(";")
x = 0
y = 0
temp = set('WASD')
def realmove(char):
if len(char)>3 or len(char) == 0:#大于3个字符或者没有字符肯定是无效输入
return False
if char[0] not in temp:
return False
for i in char[1::]:#字符串至少2位
if ord(i) > ord('9') or ord(i) < ord('0'):#除去初始的ADWS之外,后续均为数字
return False
return True
for i in a:
if realmove(i):
if i[0] == 'A':
x -= int(i[1::])
if i[0] == 'D':
x += int(i[1::])
if i[0] == 'W':
y += int(i[1::])
if i[0] == 'S':
y -= int(i[1::])
print(str(x)+','+str(y))



京公网安备 11010502036488号