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

Тетрис - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ функция нахождения среднего арифметического массива http://www.cyberforum.ru/cpp-beginners/thread87601.html
подскажите пожалуста код программы по нахождению среднего арифметического одномерного массива использую функцию.
C++ строка В файле записана строка. Нужно считать эту строку. Тот символ из считанной строки находящийся в квадратных кавычках , нужно удалить из строки. Затем считать символ с клавиатуры, и удалить этот символ из полученной строки. Если в строке есть запись: "у++" то ее нужно заменить на "у+=1" Выводим результат на экран: но с учетом, что очередная строка на экране оканчивается символом ";" вот Сама... http://www.cyberforum.ru/cpp-beginners/thread87595.html
C++ Функции(MS C++ 6.0)
Составить программу, которая определяет количество положительных элементов до последнего нулевого элемента и количество отрицательных после него в массивах Y(N) и X(M). Вычисление количества элементов оформить в виде функции. Помогите решить, желательно с пояснением на этапе применения фун-ии.:)
C++ Найти простые числа
Привет.Помогите пожалуйста решить задачу (уже запарился искать правильный и рациональный ход решения) Определить какие из несклольких чисел являются простыми. (использовать только if-else и циклы)
C++ Класс "студентов" http://www.cyberforum.ru/cpp-beginners/thread87580.html
Помогите пожалуйста с задачкой: "Разработать класс для представления сведений о студентах: фамилия, группа, массив из четырёх оценок. Класс должен включать весь необходимый интерфейс: конструкторы, перегрузку операций, другие необходимые методы. Разработать функции: -ввода данных о нескольких студентов в массив(поощряется - из файла); -сортировка массива по группам(поощряется - при...
C++ Каждую цифру текста, которая находится перед первым символом "+", заменить на запятую Всем доброго вечера, если Вам не сложно, помогите с задачей. Решить желательно, на С (Си), но если Вам лучше на С + +, буду также благодарен. Вот задание: Дано текст. Если он не содержит символа "+", то оставить его без изменения. В противном случае каждую цифру, которая находится перед первым символом "+", заменить на запятую. Заранее благодарен. Добавлено через 2 часа 45 минут Готов... подробнее

Показать сообщение отдельно
QWAN
58 / 57 / 1
Регистрация: 02.09.2008
Сообщений: 181
25.01.2010, 12:18     Тетрис
Вот пример как сделать передвижение фигуры влево или вправо при нажатии на клавишу.
Программка выводит типа квадратик пока он падает им можно двигать влево вправо. Никаких столкновений я не делал. Поэтому как только квадратик столкнется со стенкой или опустится вниз нужно запускать программку по новому.
Я сделал его на своей давно забытой заготовке (чистая консоль без каких либо графических библиотек), так что извини разбираться будешь сам.
Вот дополнительно ссылка на сайт http://www.vsokovikov.narod.ru/New_M...le/ogl_con.htm
там расписаны все консольные функции которые я применял.
Когда запустиш программку:
1) первое синие окошко это окно меню (я удалил кнопки). Чтобы перейти в режим игры нажми клавишу "n". Для выхода из игры нажми клавишу "Esc".
2) Окно игры появиться белый квадратик(типа квадратик, его размер 3х2). Можно управлять клавишами влево вправо.

То что тебе нужно для твоей игры :
C++
1
2
3
double rectangle_x = 39, rectangle_y = 2; //Начальное положение фигуры типа кубик
double speed_dx = 2;    //Скорость по оси Х (управление клавишами <- и ->)        
double speed_dy = 0.04;    //Скорость падения шарика
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//-----Game_Main----------------------------------------------------------------------------------------------------------------
int Game_Main(void *params)
{
    set_color(hStdout,cBLACK,cBLUE);
    cls(hStdout);
    set_fill_style(EMPTY_FILL);
    set_color(hStdout,cLIGHT_GRAY ,cWHITE);
    draw_rectangle(hStdout, (int)rectangle_x, (int)rectangle_y, (int)rectangle_x+3, (int)rectangle_y+2); //Рисуем прямоугольник        
    cpy_Buffer(hScreenBuffer,hStdout);//выводим на экран
    rectangle_y += speed_dy;
    wait(30);
    //возвращаем код завершения
    return 0;
}//END----Game_Main------
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
//-----------KeyEventProc------------------------------------------------------------------------------------------=-----
VOID KeyEventProc(KEY_EVENT_RECORD ker)
{    
    switch(game_state)
    {
        case GAME_INIT:    //Инициализация игры
            {
            }break;//case GAME_INIT
        case GAME_MENU:    //Инициализация игры
            {               
            }break;//case GAME_MENU
        case GAME_START:    //Инициализация игры
            {
            }break;//case GAME_START
        case GAME_RUN:    //Инициализация игры
            {
                if(ker.bKeyDown) 
                {                    
                    switch(ker.wVirtualScanCode)
                    {
                        case 75:    // <- передвинуть влево
                            rectangle_x -= speed_dx;
                            break;
                        case 77:    //-> передвинуть вправо
                            rectangle_x += speed_dx;
                            break;
                        case 1://ESC - выйти из игры
                            game_state = GAME_MENU;
                            break;        
                        default:
                            break;
                    }//switch(ker.wVirtualScanCode)
                }
            }break;//case GAME_RUN
        case GAME_RESTART:    //Инициализация игры
            {
            }break;//case GAME_RESTART
        case GAME_EXIT:    //Инициализация игры
            {
            }break;//case GAME_EXIT
    }//switch(game_state)
}//------------END---VOID KeyEventProc
И последний код (он работает но его нужно еще дорабатывать)
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
if(!PeekConsoleInput(hStdin,    // дескриптор буфера ввода
                            pBuffer,    // буфер, в котором читаем
                            128,        // размер буфера чтения
                            &cNumRead))    // дескриптор буфера ввода
        {
            MessageBox(NULL, "ReadConsoleInput", "Console Error", MB_OK); 
            return 0;
        }//if(!-- PeekConsoleInput --или-- ReadConsoleInput
        // Направляем события соответствующим обработчикам.
        for (unsigned int i = 0; i < cNumRead; i++)
        {
            switch(pBuffer[i].EventType)
            {
                case KEY_EVENT: // ввод с клавиатуры
                    KeyEventProc(pBuffer[i].Event.KeyEvent);
                    //Пока незнаю как правильно очистить буфер ввода использую ReadConsoleInput
                    if(!ReadConsoleInput(hStdin,    // дескриптор буфера ввода
                                        pBuffer,    // буфер, в котором читаем
                                        128,        // размер буфера чтения
                                        &cNumRead))    // дескриптор буфера ввода
                    {
                        MessageBox(NULL, "ReadConsoleInput", "Console Error", MB_OK); 
                        return 0;
                    }//if(!ReadConsoleInput
                    break;
                case MOUSE_EVENT: // ввод от мыши
                    MouseEventProc(pBuffer[i].Event.MouseEvent);
                    break;
                case WINDOW_BUFFER_SIZE_EVENT: // изменение размера экранного буфера                                                
                    ResizeEventProc(pBuffer[i].Event.WindowBufferSizeEvent);
                    //Пока незнаю как правильно очистить буфер ввода использую ReadConsoleInput
                    if(!ReadConsoleInput(hStdin,    // дескриптор буфера ввода
                                        pBuffer,    // буфер, в котором читаем
                                        128,        // размер буфера чтения
                                        &cNumRead))    // дескриптор буфера ввода
                    {
                        MessageBox(NULL, "ReadConsoleInput", "Console Error", MB_OK); 
                        return 0;
                    }//if(!ReadConsoleInput
                    break;
                case FOCUS_EVENT:  // игнорирование событий фокуса
                case MENU_EVENT:   // игнорирование событий меню
                    break;
                default:
                    MessageBox(NULL, "unknown event type", "Console Error", MB_OK);
                    break;
            }//switch(pBuffer[i].EventType)
        }//for (i = 0; i < cNumRead; i++)
Вложения
Тип файла: rar Tetris_1.rar (9.0 Кб, 266 просмотров)
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru