Python 项目,用于在 10 x 10 网格中移动的机器人,有一些额外的要求

问题描述 投票:0回答:1

我有一个用 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 的情况下给出错误消息。

感谢任何花时间帮助我的人!

我还没有尝试过任何事情,因为我不知道该做什么以及如何做。

python python-3.x robotics
1个回答
0
投票
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()
© www.soinside.com 2019 - 2024. All rights reserved.