Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Snion
0 / 0 / 0
Регистрация: 10.04.2012
Сообщений: 12
19.04.2012, 02:12     Стенки внутри лабиринта #1
Господа эксперты,не пойму почему код не работает:
"Мышь" не должна бегать по стенка(стенки определяются в массиве),а на деле результата нет.

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
Прошу помощи
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2012, 02:12     Стенки внутри лабиринта
Посмотрите здесь:

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

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

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

Текущее время: 01:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru