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

LODE RUNNER - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить количество простых чисел в массиве http://www.cyberforum.ru/cpp-beginners/thread291049.html
Преобразовать заданный массив целых положительных чисел F(n) таким образом, чтобы цифры каждого его элемента были записаны в обратном порядке. Определить количество простых чисел в массиве до и после...
C++ malloc relloc c Помогите пожалуйста. Необходимо создать м-цу н*н размера с помощью маллок, а затем сделать ее (н+1)*(н+1) мерной c помощью реаллок, и чтобы if(i==n+1||j==n+1) a=999999; http://www.cyberforum.ru/cpp-beginners/thread291039.html
Class Complex C++
Товарищи Программисты, проблема более теоритического характера, чем практического. А проблема в следующем: есть класс комплексное число, какой класс логичнее от него наследовать, чтобы не слишком...
Вопрос C++
Я знаю что вопрос покажится вам смешным но укажите пожалуйста ошибку я никак не могу найти а помочь некому #include<iostream> int main() { int number1; int number2; int sum; std::cout <<...
C++ Закон Амдала http://www.cyberforum.ru/cpp-beginners/thread291015.html
Закон Амдала (Время: 1 сек. Память: 16 Мб Сложность: 23%) Параллельное программирование изучает методы построения программ, которые будут выполняться на нескольких процессорах. В результате...
C++ Возвращение массива из функции Я знаю, что массив из функции можно вернуть с помощью указателя. Например int* f (int n) { // тело функции int *a= new int; return a; } А как это можно сделать через класс, если эта... подробнее

Показать сообщение отдельно
dimon1984
40 / 38 / 0
Регистрация: 22.01.2011
Сообщений: 670
09.05.2011, 10:54  [ТС]
если что, управление adws и пробел

Добавлено через 4 часа 19 минут
Вообщем дело такое:
координаты текстовой консоли как известно 80-ширина, 25-высота
есть переменная COORD xxyy; в которой xxyy.X - это перемещение человечика в ширину (80), xxyy.Y - в высоту(25).
Двумерный массив лабиринта - 40(высота) на 160(длина)
xm, ym - это координаты чел-а в массиве.
Get_dx() Get_dy() - это текущее начало массива, которое отображается на экране, в зависимости от нажатой клавы.
C++
1
2
3
4
5
6
7
        if(xm>=Get_dx() && xm<Get_dx()+80 && \
            ym>=Get_dy() && ym<Get_dy()+25)
        {
            xxyy.X=xm%80; xxyy.Y=ym%25;
            SetConsoleCursorPosition(hConsole, xxyy);
            cout<<'x';
        }
в этом коде если чел-о попал в текущие координаты экрана , то должен отображаться.
тоесть Get_dx() - допустим 0 и Get_dx()+80 (ширина экрана). Здесь нормально отображается человечик, если Loder стоит. А если Loder перемещается допустим вправо,то перемещается экран и надо декрементировать координату чел-а, чтобы он корректно отображался:
C++
1
2
3
4
5
6
7
8
9
10
11
        if(KEYDOWN('D'))// kl=='d')  //нажато вправо
        {
            if(xy.X<60 || xy.X>=60 && Get_dx()==80)
                {if(xy.X<79) xy.X++;}
            else if(Get_dx()<80) 
            {add_dx();
            if(xm>=Get_dx() && xm<Get_dx()+80 && \
                ym>=Get_dy() && ym<Get_dy()+25)
            {xxyy.X--;}  // декрементируется
            }
            if(mx<159) mx++;
но всёравно некорректно отображается. Код конечно немного корявый, просто переделывал уже несколько раз, и уже хотелось чтобы работало. Со временем доработаю. Подскажите плиз

Добавлено через 15 часов 8 минут
может подскажете алгоритм отображения человечика?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru