【发布时间】:2017-03-14 22:53:32
【问题描述】:
所以我有一个创建网格的代码(有点长)
width = int(input('Enter the width: '))
height = int(input('Enter the height: '))
# print the grid
# prints y-axel
y = 1
print(' ', end='')
for x in range(0, width):
print(y, end='')
y = y + 1
if y == 10:
y = 0
print('')
print(' +', '-' * (width), sep='') # prints the top row
# prints all remaining x-axels
z = 1
for i in range(0, height):
print(z, '|', '.' * width, sep='')
z = z + 1
if z == 10:
z = 0
# ask do you wanna put a point in a grid
point = input('Shall we add a point (Y/N)? ')
if point == 'Y' or point == 'y':
x_coord = int(input('Enter X-coordinate: '))
y_coord = int(input('Enter Y-coordinate: '))
# prints y-axel
y = 1
print(' ', end='')
for x in range(0, width):
print(y, end='')
y = y + 1
if y == 10:
y = 0
print('')
# prints all remaing x-axels
print(' +', '-' * (width), sep='')
z = 1
for i in range(0, height):
if i != (y_coord - 1):
print(z, '|', '.' * (width), sep='')
if i == (y_coord - 1):
print(z, '|', '.' * (x_coord - 1), 'X', '.' * (width - x_coord),
sep='') # add the point
z = z + 1
if z == 10:
z = 0
这将打印一个网格,您可以在其中决定其宽度和高度。以及您可以将点添加到网格的位置。例如 grid (width=15 and height=5) 给你一个看起来像这样的网格:
Enter the width: 15
Enter the height: 5
123456789012345
+---------------
1|...............
2|...............
3|...............
4|...............
5|...............
之后,您可以将 X 点添加到您制作的网格中
Shall we add a point (Y/N)? y
Enter X-coordinate: 13
Enter Y-coordinate: 2
123456789012345
+---------------
1|...............
2|............X..
3|...............
4|...............
5|...............
之后是我的问题。我不知道如何保存这个 X 点,所以它会保留在网格上。之后,我应该可以向网格添加新的 X 点。因此,如果我想向 (2,2) 添加新的 X 点,它看起来像
Shall we add a point (Y/N)? y
Enter X-coordinate: 2
Enter Y-coordinate: 2
123456789012345
+---------------
1|...............
2|.X..........X..
3|...............
4|...............
5|...............
所以基本上我的问题是我不知道如何将更改保存到我的网格。 提前致谢。
【问题讨论】:
-
您可以将网格点坐标存储在列表中。您拥有的代码不是很适应。例如,您有两个单独的代码块打印出网格。一个打印空网格,另一个打印一个点。无论有多少点,您确实需要一个打印网格的代码块。这可能意味着每次在循环中一次打印一个网格坐标,并每次检查当前坐标对是否在列表中,如果是则打印一个“X”。