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

делаю игру,но мешает getch - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найдите контрпример http://www.cyberforum.ru/cpp-beginners/thread240826.html
вот задача http://www.olymp.vinnica.ua/index_ua.php?lng=ua&cid=279 вот моя программа #include<iostream> #include<fstream> #define input "cell.dat" using namespace std; long ramka(long a) { long i=1; while(i*i<a)
C++ Список list и итератор есть такой вот код //----h.файл--------------------------- struct RECIEVED { char sms; }; class MESSAGES { http://www.cyberforum.ru/cpp-beginners/thread240789.html
C++ Не могу понять смысл задания.
День (утро, вечер, ночь - нужное подчеркнуть)) добрый! Взялся помочь человеку с контрольной по C и столкнулся с проблемой - не могу понять смысл одного задания. Цитирую: "Даны 2 натуральных числа n и m. Получить из них несократимую дробь n/m." Я вижу решение так: вводятся 2 числа (или задаются в тексте программы) и далее проверяется является ли дробь n/m несократимой. Но вот как получить...
C++ Определить систему исчисления (Написать программу.....)
Написать прогу которая! распознает числа и показывает к какой системе исчесления относится! Например вводишь 10110110 прога выводит десятичная! 1000000001 выводит Шестнадцатеричная и тд? заранее спасибо!
C++ циклический алгоритм с++ (лаб.работа) http://www.cyberforum.ru/cpp-beginners/thread240768.html
Помогите с решением Постановка задачи Для х изменяющегося от a до b с шагом (b-a)/k, где (k=10), вычислить функцию f(x), используя ее разложение в степенной ряд в двух случаях: для заданного n; для заданной точности ε (ε=0.0001). Для сравнения найти точное значение функции.
C++ Прога на Си, все правильно вроде, но выскакивает Проверьте, пожалуйста, вроде задержку сделала, но выскакивает почему-то не считает результат... #include <vcl.h> #include <conio.h> #include <stdio> #include <math.h> #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused подробнее

Показать сообщение отдельно
Vandris
 Аватар для Vandris
63 / 63 / 13
Регистрация: 19.01.2011
Сообщений: 90
02.03.2011, 06:31     делаю игру,но мешает getch
А как передвигать по Оу?
Увы, сам не знаю, но догадывюсь что как-то стредствами WinAPI.
ну если интерпретировать поле, где бегает точка как матрицу, то все просто и без привлечения WinAPI

могу для примера показать движение той же точки, но по всем осям координат, правда в пределах матрицы, но ведь ничто не мешает сделать ее в аккурат под размер консоли

все проверки выхода за границы массива на вашей совести, так же по желанию прикрутите очистку экрана ну и обсуждаемый здесь kbhit(), я бы прикрутил да мне надо бежать
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <iostream>
#include <conio.h>
 
void show(int**, size_t, size_t);
 
int main()
{
    size_t n, m; //n, m - размеры матрицы
    std::cin >> n >> m;
    int **field = new int *[n];
    for (size_t i = 0; i < n; i++)
    {
        field[i] = new int[m];
        for (size_t j = 0; j < m; j++)
            field[i][j] = 0;  //будет матрицы состоящая из нулей и единицы - нашей точки
    }
 
    int x, y; //пусть x, y - координаты нашей точки
    std::cin >> x, y;
    field[x][y] = 1;
 
    while (1e-5)
    {
        switch (getch())
        {
        case 'a': //движение влево
        case 'A':
            field[x][y] = 0; //старое значение обнуляем, точки там уже нет.
            field[x][--y] = 1;
            break;
        case 'd': //движение вправо
        case 'D':
            field[x][y] = 0;
            field[x][++y] = 1;
            break;
        case 'w':  //движение вверх
        case 'W':
            field[x][y] = 0;
            field[--x][y] = 1;
            break;
        case 's': //движение вниз
        case 'S':
            field[x][y] = 0;
            field[++x][y] = 1;
            break;
        }
        show(field, n, m);
        std::cout << std::endl << "_____________________________________________" << std::endl;
    }
    return 0;
}
 
void show(int **array, size_t n, size_t m)
{
    for (size_t i = 0; i < n; i++)
    {
        for (size_t j = 0; j < m; j++)
            std::cout << (array[i][j] ? "*" : " ") << " ";
        std::cout << std::endl;
    }
}
 
Текущее время: 22:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru