Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Задача лабиринт- Проблем

Featured Replies

Здравейте,

Задачата ми е да направя произволен лабиринт,изграден от nxn  клетки и n се въвежда от потребителя.Програмата подсигурява повече от един възможен коридор  до изхода на лабиринта.Проблема е ,че когато се компилира кода излизат различни символи от тези ( # . ),който съм сложила в print и самия output изкарва нещо като дупки в лабиринта,а не коридори.Също така трябва да е oop програмата,но все още съм неориентирана ,как точно да разпределя функциите за лабиринта в класове.Моля за мнение къде бъркам,предполагам на не малко места.Ето го и кода :

#include <stdio.h>
#include <time.h>
#include <stdlib.h>

#define SIZE 12 // instead it has to be with input from the user ,not defined 
void mazeGenerator(char [][SIZE]);

int main(void)
{
    char maze[SIZE][SIZE];
    srand((unsigned int)time(NULL));
    mazeGenerator(maze);
    return 0;
}
void mazeGenerator(char a[SIZE][SIZE])
{
    size_t row,column = 0;

    // initialize '#' to all positions of left-hand wall
    for ( row = 0; row < SIZE; ++row )
    {
        a[row][column] = '#';
    }
    // initialize '#' to all positions of left-hand wall
    for ( row = 0; row < SIZE; ++row )
    {
        a[row][SIZE - 1] = '#';
    }

    // initialize '.' to left-hand wall random positions from 1 -> 10
    row = rand() % 11 + 1;
    a[row][0] = '.';

    // initialize '.' to right-hand wall random positions from 1 -> 10
    row = rand() % 11 + 1;
    a[row][SIZE - 1] = '.';

    // intialize '#' to all positions of top maze
    for (column = 1; column < SIZE - 1; ++column)
    {
        a[0][column] = '#';
    }

    // intialize '#' to all positions of bottom maze
    for (column = 1; column < SIZE - 1; ++column)
    {
        a[SIZE - 1][column] = '#';
    }

    // print maze
    puts("");
    for (row = 0; row < SIZE; ++row)
    {
        for (column = 0; column < SIZE; ++column)
        {
            printf("%2c",a[row][column]);
        }
        puts("");
    }
    puts("");
}

 

Редактирано от yoana.st (преглед на промените)

Масива е неинициализиран и садържа случайни символи.

Като начало може да се нулира масива в началото 

char maze[SIZE][SIZE]={};
    

 

Редактирано от ined (преглед на промените)

Имаш грешка в началото на мейзгенератор функцията. Имаш двумерен масив, обаче в цикъла достъпваш само редовете?

Ами доколкото виждам инициализираш само страните на мазето. И слагаш само 2 точки в двете страни на лабиринта вход и изход да речем.  Трябва да добавиш и другите точки но да добавиш и по някакъв начин условие за свързаност т.е. да ти прави тунели.

преди 5 часа, yoana.st написа:

Здравейте,

Задачата ми е да направя произволен лабиринт,изграден от nxn  клетки и n се въвежда от потребителя.Програмата подсигурява повече от един възможен коридор  до изхода на лабиринта.Проблема е ,че когато се компилира кода излизат различни символи от тези ( # . ),който съм сложила в print и самия output изкарва нещо като дупки в лабиринта,а не коридори.Също така трябва да е oop програмата,но все още съм неориентирана ,как точно да разпределя функциите за лабиринта в класове.Моля за мнение къде бъркам,предполагам на не малко места.Ето го и кода :

...

@yoana.st  под сложила copy-paste ли имаше впредвид?

 http://stackoverflow.com/questions/22747974/random-maze-generator-in-c

 

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    25%
    Дарени 252.69 EUR от нужните 1,000.00 EUR

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.