Member 13978037 Ответов: 3

Код 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

Что я уже пробовал:

я не знаю питона.
пожалуйста, помогите мне.

3 Ответов

Рейтинг:
2

OriginalGriff

Здесь есть два варианта:
1) Мы не делаем домашнее задание: оно задано не просто так. Она существует для того, чтобы вы думали о том, что вам сказали, и пытались понять это. Он также существует для того, чтобы ваш наставник мог определить области, в которых вы слабы, и сосредоточить больше внимания на корректирующих действиях.

Попробуйте сами, возможно, вы обнаружите, что это не так сложно, как вы думаете!

Если вы столкнетесь с конкретной проблемой, то, пожалуйста, спросите об этом, и мы сделаем все возможное, чтобы помочь. Но мы не собираемся делать все это для вас!

Или
2) Мы не делаем вашу работу за вас.
Если вы хотите, чтобы кто - то написал ваш код, вы должны заплатить- я предлагаю вам пойти в Freelancer.com и спросите там.

Но знайте: вы получаете то, за что платите. Плати копейки, получай обезьян.

Идея "развития" заключается в следующем: "систематическое использование научно - технических знаний для достижения конкретных целей или требований." BusinessDictionary.com[^]
Это не то же самое, что "быстро гуглите и сдавайтесь, если я не могу найти точно правильный код".
Так что либо заплатите кому-нибудь за это, либо научитесь писать сами. Мы здесь не для того, чтобы делать это за вас.

И оба они игнорируют, что переведенный код не означает хороший код на целевом языке - часто есть гораздо более простые способы сделать некоторые вещи на каждом языке.


Рейтинг:
2

Patrice T

Цитата:
я не знаю питона.

Вы не проявляете ни малейшего усилия, вы не застреваете, у вас нет вопроса, поэтому проще просто попросить нас сделать вашу домашнюю работу.
Мы не делаем тебе домашнее задание.

Думаю вам не понравится третий вариант:
3) Изучите Python, это не так сложно.

Интернет полон ресурсов, если вы осмелитесь искать.


Рейтинг:
0

KarstenK

Сначала вам нужно понять этот код python. В лучшем случае ты попросишь об этом какого-нибудь приятеля или коллегу. Это не должно быть так сложно, если я правильно помню, что "def" запускает функцию, а "return" заканчивает ее.

Для написания на C++ вам нужно узнать некоторые Учебник по C++ . В C++ это тоже штраф функция rand.

Чем испечь все вместе в ТВОЙ домашнее задание. ;-)