Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 22.12.2016
Сообщений: 2

перевести программу с C++ на Python

22.12.2016, 18:31. Показов 602. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
помогите перевести программу с C++ на Python.
изучаю Python, задали создать программу генерирующую лабиринты. Не получается, нашел код на C++. Помогите перевести код на Python

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
int maze[height][width];
for(i = 0; i < height; i++){
        for(j = 0; j < width; j++){
            if((i % 2 != 0  && j % 2 != 0) &&  (i < height-1 && j < width-1))
                   maze[i][j] = CELL;
            else maze[i][j] = WALL;
        }
    }
typedef struct cell{ 
    unsigned int x;
    unsigned int y;
} cell;
cellString getNeighbours(unsigned int width, unsigned int height, int** maze, cell c){
    unsigned int i;
    unsigned int x = c.x;
    unsigned int y = c.y;
    cell up = {x, y - distance};
    cell rt = {x + distance, y};
    cell dw = {x, y + distance};
    cell lt = {x - distance, y};
    cell d[4]  = {dw, rt, up, lt};
    unsigned int size = 0;
 
    cellString cells;
    cells.cells = malloc(4 * sizeof(cell));
 
    for(i = 0; i < 4; i++){ //для каждого направдения
        if(d[i].x > 0 && d[i].x < width && d[i].y > 0 && d[i].y < height){
            unsigned int mazeCellCurrent = maze[d[i].y][d[i].x];
            cell     cellCurrent     = d[i];
            if(mazeCellCurrent != WALL && mazeCellCurrent != VISITED){ 
                cells.cells[size] = cellCurrent; 
                size++;
            }
        }
    }
    cells.size = size;
    return cells;
 
    mazeMatrix removeWall(cell first, cell second, int** maze){
    short int xDiff = second.x - first.x;
    short int yDiff = second.y - first.y;
    short int addX, addY;
    cell target;
 
    addX = (xDiff != 0) ? (xDiff / abs(xDiff)) : 0;
    addY = (yDiff != 0) ? (yDiff / abs(yDiff)) : 0;
 
    target.x = first.x + addX; 
    target.y = first.y + addY;
 
    maze[target.y][target.x] = VISITED;
    return maze;
}
 
typedef struct cellString{ 
    cell* cells;
    unsigned int size;
} cellString;
 
cell startCell = {1, 1}
cell currentCell = startCell;
cell neighbourCell;
do{
    cellString Neighbours = getNeighbours(width, height, maze, startPoint, 2);
    if(Neighbours.size != 0){ 
        randNum  = randomRange(0, Neighbours.size-1);
        neighbourCell = cellStringNeighbours.cells[randNum];
        push(d.startPoint); 
        maze = removeWall(currentCell, neighbourCell, maze); 
        currentCell = neighbourCell; //делаем соседнюю точку текущей и отмечаем ее посещенной
        maze = setMode(d.startPoint, d.maze, VISITED);
        free(cellStringNeighbours.cells);
    }
    else if(stackSize > 0){
        startPoint = pop();
    }
    else{ 
        cellString cellStringUnvisited = getUnvisitedCells(width, height, maze);
        randNum = randomRange(0, cellStringUnvisited.size-1);
        currentCell = cellStringUnvisited.cells[randNum];
        free(cellStringUnvisited.cells);
    }
while(unvisitedCount() > 0);
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.12.2016, 18:31
Ответы с готовыми решениями:

Перевести программу с Python на С++
a=2000001 s=list(range(2,a)) s_sum=0 for i in s: if i**2&lt;a: k=0 while k&lt;len(s): if...

Перевести программу с c++ в Python
Задача такая : Пишем число M потом пишем N. N - Это сколько первых цифры из числа M мы &quot;вырезаем&quot;. Надо перевести в Python и...

Перевести программу с Pascal на Python
var a, b, t, M, R : longint; function F(x: longint) : longint; begin F := abs(abs(x - 9) + abs(x + 12) - 25) + 4; end; ...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.12.2016, 18:31
Помогаю со студенческими работами здесь

Перевести программу из pascal в python
Помогите пожалуйста перевести программу из pascalABC в python. Заранее благодарю) var A, B, L, P, Circle:Integer; Begin ...

Перевести программу с языка СИ на Python
#include&lt;stdio.h&gt; int main() { int x,y; scanf(&quot;%d&quot;,&amp;x); scanf(&quot;%d&quot;,&amp;y); printf(&quot;x=%d, y=%d&quot;, x, y); ...

Нужно перевести программу с Pascal на Python
Пожалуйста, помогите перевести программу с Pascal на Python. program nalichie_odinacovih_chisel_v_chetirehznachnom_chisle; var ...

Перевести в python
Rectangle ob = new Rectangle(3, 5); - язык C# Rectangle- class как создать такую же переменную в python?Буду очень благодарен!

Перевести с Python на С++
&lt;program&gt; ::= &lt;statement&gt; &lt;statement&gt; ::= &quot;if&quot; &lt;paren-expr&gt; &lt;statement&gt; | &quot;if&quot; &lt;paren-expr&gt; &lt;statement&gt; &quot;else&quot;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru