我有一个用 Python 编写代码的项目,该代码将控制机器人在 10 x 10 网格中的运动。首先我想指出,我是一个初学者,所以如果我能得到我可以消化的简单代码行,对我来说会更好。
因此,该项目要求:
一个 10 x 10 的网格,机器人从最左上角的位置 X(0,0) 开始。
从 X(0,0) 向下移动一个图块会将值增加到 (1,0) 直到最左下角 (9,0),而从 X(0,0) 向右移动将增加每个图块时间经过 (0,1) 直到右上角 (0,9)。从位置 (9,0) 向右移动将再次到达 (9,9)。
它将接受向上、向下、向左、向右移动的命令(u、d、l、r)。每个命令都应与整数一起给出,该整数表示向给定方向的步骤(例如 u5 或 d2)。
用户将连续发出命令,直到按下 ENTER 键,这将使程序退出。
在每个命令之后,程序必须计算机器人的位置并用它打印出一条消息。
如果用户发出无法执行的命令或会使机器人超出网格范围,则必须出现错误消息。它还必须在 X 或 Y => N 的情况下给出错误消息。
感谢任何花时间帮助我的人!
我还没有尝试过任何事情,因为我不知道该做什么以及如何做。
while True:
try:
n = int(input("Δώσε διαστάσεις του grid:"))
n1 = n*n
print(f"Το ρομπότ κινείται σε χώρο {n1}. Η αρχική του θέση είναι:", x, ",", y)
except ValueError:
print("Παρακαλώ δώσε θετικό ακέραιο αριθμό")
continue
while True:
try:
move = input("Δώσε κίνηση:")
if move[0] == 'r':
if int(move[1:])+y >= n1:
print("ΣΦΑΛΜΑ! Κίνηση έξω από τα όρια του χώρου.\nΗ θέση του ρομπότ παραμένει:", x, ",", y)
else:
y = y+int(move[1:])
print("Η νέα θέση του ρομπότ είναι:", x, ",", y)
if move[0] == 'l':
if int(move[1:])-y > 0:
print("ΣΦΑΛΜΑ! Κίνηση έξω από τα όρια του χώρου.\nΗ θέση του ρομπότ παραμένει:", x, ",", y)
else:
y = y-int(move[1:])
print("Η νέα θέση του ρομπότ είναι:", x, ",", y)
if move[0] == 'u':
if int(move[1:])-x > 0:
print("ΣΦΑΛΜΑ! Κίνηση έξω από τα όρια του χώρου.\nΗ θέση του ρομπότ παραμένει:", x, ",", y)
else:
x = x-int(move[1:])
print("Η νέα θέση του ρομπότ είναι:", x, ",", y)
if move[0] == 'd':
if int(move[1:])+x >= n1:
print("ΣΦΑΛΜΑ! Κίνηση έξω από τα όρια του χώρου.\nΗ θέση του ρομπότ παραμένει:", x, ",", y)
else:
x = x+int(move[1:])
print("Η νέα θέση του ρομπότ είναι:", x, ",", y)
except ValueError:
print("ΣΦΑΛΜΑ! Κίνηση έξω από τα όρια του χώρου.\nΗ θέση του ρομπότ παραμένει:", x, ",", y)
continue
while move == "":
print("Τερματισμός προγράμματος")
exit()