所以我编写了一个python函数,用于以[column][row]
- >格式测试用户输入的输入。例如。 " 23"对于第2列,第3行。我可以更改电路板的大小,但我不太确定实施检查的最佳方法是确保程序不会被压缩。这些输入,但只是提示用户再次输入坐标:
这是我目前的python检查:
def checkIfMoveIsValid(Board, Move):
Row = Move % 10
Column = Move // 10
MoveIsValid = False
if Board[Row][Column] == " ":
MoveIsValid = True
return MoveIsValid
我尝试了这个 - >
inp = input()
if inp and inp.isdigit():
Coordinates = int(inp)
else:
return 0
return Coordinates
但是这只检查没有坐标和除正确输入之外的任何东西。但是,它不会检查坐标是否在范围内,因此,如果输入超出范围的坐标,程序会崩溃并显示:list index out of range
。
答案 0 :(得分:-1)
def checkIfMoveIsValid(Board, Move):
MoveIsValid = False
while MoveIsValid == False:
inp = raw_input("coordinates: ")
if inp.isdigit() and len(inp) == 2:
x_coord = int(inp[0])
y_coord = int(inp[1])
MoveIsValid = True
return x_coord, y_coord
else:
print "enter the coordinates again please."
答案 1 :(得分:-1)
我会用两种方法。一个用于获取输入,一个用于检查:
def check_input(Board,input):
#I assume the Board has dimensions (Board.size) x (Board.size)
#I also assume you can get the dimensions of the board
return input in range(11,Board.size**2+1)
def get_input():
valid = False
while valid is False:
position = int(raw_input("Enter a valid board position: "))
valid = check_input(Board,position)
return position