Создание узора через цикл
Xочю научиться вышивать крестиком и сделать орнаменты на вышивки.
Появилась идея написать программу, которая будет делать орнамент нужной ширины и длины,
которые можно будет использовать в качестве примера для вышивки.
Вышивка – это прямоугольник m×n.
Орнаменты — это два луча, выходящих из верхних углов вышивки
и имеющих углы 45 градусов.
Луч отражается, когда прикасается к вертикальному краю.
Когда луч прикасается к нижнему краю, он исчезает.
Помогите, пожалуйста, написать такую программу, которая согласно заданной ширине n и длине m выведет пример орнамента.
Входные данные Первая строка содержит два целых числа m и n (3≤n,m≤1000) - высота и ширина соответственно.
Выходные данные Выведите орнамент размерами n×m.
Для лучшего понимания вы можете посмотреть примеры.
Входные данные: 6 4
Входные данные:
x..x
.xx.
.xx.
x..x
.xx.
.xx.
Входные данные: 12 5
Входные данные:
x...x
.x.x.
..x..
.x.x.
x...x
.x.x.
..x..
.x.x.
x...x
.x.x.
..x..
.x.x.
Входные данные: 21 12
Входные данные:
x..........x
.x........x.
..x......x..
...x....x...
....x..x....
.....xx.....
.....xx.....
....x..x....
...x....x...
..x......x..
.x........x.
x..........x
.x........x.
..x......x..
...x....x...
....x..x....
.....xx.....
.....xx.....
....x..x....
...x....x...
..x......x..
main.py:
m,n = map (int, input(). split())
vishivanka = []
for x in range(m):
vishivanka.append([])
for y in range(n):
vishivanka[x].append(".")
for x in range(m):
print()
for y in range(n):
if x==y:
vishivanka[x][y] = "x"
for y in range(n):
vishivanka[y][n-y-1] = "x"
for x in range(m):
print()
for y in range(n):
print(vishivanka[x][y], end=" ")
Написанный код не работает как надо, помогите пожалуйста.
Ответы (1 шт):
Попробуйте так:
flag = True
while flag:
m, n = map(int, input('\nВведите количество строк и столбцов \n'\
'например: 6 4 или 0 0 для выхода: ').split())
if not m:
break
vishivanka = []
print(f'\nстрок={m}; столбцов={n}') #
for x in range(m):
vishivanka.append([])
for y in range(n):
vishivanka[x].append(".")
for x in range(m):
if not (x % (n-1)):
_y = -1
_x = 0
vishivanka[x][_x] = "x"
vishivanka[x][_y] = "x"
_y -= 1
_x += 1
for x in range(m):
print()
for y in range(n):
print(vishivanka[x][y], end=" ")
print()
