Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Snion
0 / 0 / 1
Регистрация: 10.04.2012
Сообщений: 12
1

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

19.04.2012, 02:12. Просмотров 580. Ответов 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
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2012, 02:12
Ответы с готовыми решениями:

Вычислить площадь поверхности стен внутри лабиринта
Добрый день! У меня есть 2 кода к задаче, но тот и другой я плохо понимаю. Хочу разобраться, но не...

Как сделать так, чтобы круг не мог выходить за стенки лабиринта?
Помогите плиз) Например, я нарисовал круг (который может двигаться с помощью клавиш). Потом я...

Нарисовать трапецию, которая будет двигаться от стенки до стенки, длины сторон трапеции задаются пользователем
Нарисовать трапецию, которая будет двигаться от стенки до стенки, длины сторон трапеции задаются...

Определите модуль ускорения пули при её движении внутри стенки, считая это движение прямолинейным с постоянным ускорением.
пуля пробила стенку толщиной d=20 см. модуль скорости пули перед попаданием в стенку v0=200 м/с,...

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

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

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

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Отскок шарика от стенки
Подскажите пожалуйста как сделать чтобы шарик стукался от стенки до стенки в любую сторону. При это...

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

Не получаются стенки в лабиринте
Не получаются стенки в лабиринте, персонаж их съедает, помогите пожалуйста решить проблемку! ...

Анимация: шарик отскакивает от стенки
Привет всем!! Спасибо, что уделили время на прочтение этой темы! Прошу вам помочь с анимацией...


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

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

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