Код Python-> C++ код
Пожалуйста, измените этот код на c++
из случайного импорта randint
R, L, D, U, SOLVE = 1, 2, 4, 8, 16RLDU = [R, L, D, U]MOVE_X = [0, 0, 1, -1]
MOVE_Y = [1, -1, 0, 0]
def make_way(x1, y1, x2, y2, org_maze, solve=0):
x_size = лен(org_maze)
y_size = len(org_maze[0])
УНТ = 0
в то время как cnt < x_size * y_size:
УНТ += 1
x, y = x1, y1
maze = [список(строка) для строки в org_maze]
посещенный = []
пока это правда:
направление = randint(0, 3)
если направление в посещенном:
продолжить
еще:
посещенный += [направление]
next_x = x + MOVE_X[направление]
next_y = y + MOVE_Y[направление]
если -1 < next_x < x_size и -1 < next_y < y_size, а не is_way_xy(next_x, next_y, maze):
лабиринт[x][y] |= RLDU[направление]
если решить == решить:
лабиринт[x][y] |= решить
х = next_x
г = next_y
посещенный = []
если next_x == x2 и next_y == y2:
обратный лабиринт
если лен(посещенный) == 4:
перерыв
деф random_xy(лабиринт, is_way):
x_size = len(лабиринт)
y_size = len(maze[0])
пока это правда:
x = randint(0, x_size - 1)
y = randint(0, y_size - 1)
если (x == 0 и y == 0) или (x == x_size - 1 и y == y_size - 1):
продолжить
если is_way и лабиринт[x][y] != 0:
возврат x, y
если не is_way и не is_way_xy(x, y, лабиринт):
возврат x, y
def is_way_xy(x, y, лабиринт):
если лабиринт[x][y] != 0:
вернуть true
еще:
если y > 0 и лабиринт[x][y - 1] & R:
вернуть true
если y < y_size - 1 и maze[x][y + 1] & L:
вернуть true
если x > 0 и лабиринт[x - 1][y] & D:
вернуть true
если x < x_size - 1 и лабиринт[x + 1][y] & U:
вернуть true
возвращать false
x_size = 10
y_size = 10
wrong_way = 10
maze = [[0] * y_size для i в диапазоне(x_size)]
maze = make_way(0, 0, x_size - 1, y_size - 1, maze, SOLVE)
для i в диапазоне(wrong_way):
пока это правда:
x1, y1 = random_xy(лабиринт, True)
x2, y2 = random_xy(лабиринт, ложь)
next_maze = make_way(x1, y1, x2, y2, лабиринт)
если next_maze:
перерыв
лабиринт = next_maze
Что я уже пробовал:
я не знаю питона.
пожалуйста, помогите мне.