С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Snion
0 / 0 / 0
Регистрация: 10.04.2012
Сообщений: 12
#1

Стенки внутри лабиринта - C++

19.04.2012, 02:12. Просмотров 524. Ответов 4
Метки нет (Все метки)

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

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
void Game::ControlMouse()
{
    Game gc;
    int hx,hy,ch,i=0,j=0;
    for(hx=80,hy=80;hx<560&&hx>80,hy<350&&hy>80;)
    {
        ch=getche();
        switch (ch)
        {
        case 27: return;
        case KEY_LEFT:
            if(PoleArray[i][j-1]!='1'||hx>=80)
            {
                j--;
                hx-=30;
            }
            //break;
        case KEY_UP:
            if(PoleArray[i-1][j]!='1'||hy>=80)
            {
                i--;
                hy-=30;
            }
            //break;
        case KEY_RIGHT:
            if(PoleArray[i][j+1]!='1'||hx<=560)
            {
                j++;
                hx+=30;
            }
            //break;
        case KEY_DOWN:
            if(PoleArray[i+1][j]!='1'||hy<=350)
            {
                i++;
                hy+=30;
            }
            //break;
        
        }
    }
 
    while ( getch() != KEY_ESCAPE );
}
Массив инциализирую так

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Menu mg;
    FILE *fin;
    int i,j;
    fin=fopen("Lab1.txt","rt");
    if(fin==NULL)
        mg.StartMenu();
    while(!feof(fin))
    {
 
    for(i=0;i<=10;i++)
        for(j=0;j<=16;j++)
        {
            //if(PoleArray[i][j]!='\n')
            fscanf(fin,"%c",&PoleArray[i][j]);
        }
    }
    fclose(fin);
 
}
Lab1.txt

0100000110001000
0101110100011010
0101010101001010
0100010101100010
0101110101111110
0101000101000010
0101011101101010
0101010020101010
0101011111101010
0001000000001000

Добавлено через 3 часа 47 минут
up
Прошу помощи
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2012, 02:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Стенки внутри лабиринта (C++):

Не получаются стенки в лабиринте - C++
Не получаются стенки в лабиринте, персонаж их съедает, помогите пожалуйста решить проблемку! #include &lt;vcl.h&gt; #pragma hdrstop ...

Рандомные стенки в игре Змейка - C++
Собираюсь делать стенки для игры Змейка. Хотелось бы спросить о математической части. Формулу для генерации лучше делать одну или возможно...

Шарик, летающий по экрану и ударяющийся об его стенки - C++
Тут такая тема: срочно нужна помощь в создании задания на С++. С помощью графического редактора С++ необходимо создать программу в которой...

Прохождение лабиринта - C++
Привет всем , вот такая задача ... Найдите маршрут в квадрате, который начинался бы и заканчивался в ячейке 1. При этом посетить все...

Обход лабиринта - C++
Добрый вечер. Стоит задача обойти лабиринт, заданный матрицей (вводятся размерности и начальное положение), т. е. посетить каждую клетку,...

Прохождение лабиринта - C++
Ниже програма ищет маршрут в квадрате, который начинаеться и заканчиваеться в ячейке 1. Посещает все ячейки по одному разу, не попадая в...

4
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
19.04.2012, 03:12 #2
вместо || надо &&. Я б заменил фор на вайл. Последний вайл зачем вообще? Он вне цикла.
0
Snion
0 / 0 / 0
Регистрация: 10.04.2012
Сообщений: 12
19.04.2012, 12:01  [ТС] #3
Цитата Сообщение от Nekto Посмотреть сообщение
вместо || надо &&. Я б заменил фор на вайл. Последний вайл зачем вообще? Он вне цикла.
Последний Ваил ждет нажатия клавиши для выхода

замена "или" на "и" не помогла.Я теряюсь,может быть массив не правильно иницализирую?
0
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
19.04.2012, 12:29 #4
Цитата Сообщение от Snion Посмотреть сообщение
Последний Ваил ждет нажатия клавиши для выхода

замена "или" на "и" не помогла.Я теряюсь,может быть массив не правильно иницализирую?
Так у тебя последний вайл вне цикла. Т.е. ты выполняешь цикл до условия выхода, а потом прога стопорится на вайле, пока не нажмёшь ескейп. Кстати оно вообще работает? А то начальные условия сразу по идее условие прекращения цикла выполняют (задал 80, а условие работы цикла строго больше 80).
0
Snion
0 / 0 / 0
Регистрация: 10.04.2012
Сообщений: 12
19.04.2012, 13:33  [ТС] #5
Цитата Сообщение от Nekto Посмотреть сообщение
Так у тебя последний вайл вне цикла. Т.е. ты выполняешь цикл до условия выхода, а потом прога стопорится на вайле, пока не нажмёшь ескейп. Кстати оно вообще работает? А то начальные условия сразу по идее условие прекращения цикла выполняют (задал 80, а условие работы цикла строго больше 80).
Проблема решилась)немного не так массив инициализировал)Спасибо за помощь
0
19.04.2012, 13:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.04.2012, 13:33
Привет! Вот еще темы с ответами:

Выход из лабиринта - C++
Всем привет, возник вопрос по поводу лабиринта. Посмотрев форум не нашел такого же задания. Суть - написать программу, с помощью которой...

Проход лабиринта в C++ - C++
Ребята, помогите...вобщем, необходимо пройти по лабиринту и найти самый короткий маршрут...лабиринт я создал, а как пройти по нему ума не...

Прохождение лабиринта - C++
Нужно пройти от 1 до 16 самым коротким путем. И вывести на экран количество шагов.

Генерация лабиринта - C++
Разработать приложение, генерирующее лабиринт размером m x n клеток. Дополнительные условия: а) Вход и выход – произвольные клетки...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.