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

Тетрис на c++ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Смысл "+1" http://www.cyberforum.ru/cpp-beginners/thread933073.html
Доброе время суток, господа! Кто нибудь знает, для чего в этом фрагменте кода используется "+1"? itsString = new char ;
C++ Как отключить инлайн в MSVS2008? Такое дело. Я сейчас разбираюсь в дизассемблированном коде простых программ, а Visual Studio мешает мне в этом занятии. Точнее, это считается "помощью", но мне не это нужно. Короче, она инлайнит некоторые мои функции. А я совершенно этого не хочу. Ну инлайнит... вы понимаете же! В дизассемблере я совершенно не вижу вызовов этих функций, а вижу подстановку прямо в код main! а мне нужно, чтоб... http://www.cyberforum.ru/cpp-beginners/thread933063.html
Вызов метода, возвращающего int значение C++
Приветствую. Начинаю изучать C++, с банальных задач, так вот никак не могу понять, ну почему получаю в данном случае ошибку "error C3861: 'SearchWin': identifier not found" #include "stdafx.h" #include <iostream> #include <string> #include <windows.h>
Надо применять delete [] или нет C++
Привет. Читаю книгу Прата и выполняю задания. Гл.8 Зд.4: Мое решение: #define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std; #include <cstring> //для strlen(), strcpy() struct stringy
C++ Подскажите справку по языку http://www.cyberforum.ru/cpp-beginners/thread933026.html
Доброго дня! Простите, если я баран и спрашиваю банальные вещи или наборот несуществующие. Есть ли такой электроный справочник, что б я вписал туда любой элемент программы и он мне оп- развёрнутае обьяснение?
C++ Сортировать одномерный массив вещественных чисел Помогите написать функцию, кто знает! Условие: допускается использование любых видов функций. Разработать функцию, которая осуществляет сортировку одномерного массива вещественных чисел в порядке возрастания значений элементов. На основе разработанной функции отсортировать по возрастанию значений элементы каждой строки матрицы действительных чисел. подробнее

Показать сообщение отдельно
Gomg
5 / 5 / 0
Регистрация: 28.06.2013
Сообщений: 116
03.08.2013, 21:13     Тетрис на c++
Я решил проверить свои скудные знания языка и написать всем известную игру тетрис. Вот что получилось.
Кликните здесь для просмотра всего текста
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#include <iostream>
#include <locale.h>
#include <conio.h>
#include <Windows.h>
 
using namespace std;
 
static char field[10][10] = {"         ",
                             "#       #",
                             "#       #",
                             "#       #",
                             "#       #",
                             "#       #",
                             "#       #",
                             "#       #",
                             "#       #",
                             "#########" }; //y x
bool Run = true;
float timer;
 
void Draw(){
    system("cls");
    for (int i =0; i<10;i++){
        cout << field[i] << endl;
    }
}
 
class Block{
public:
    Block(char imag, int x, int y){
        xP = x; yP = y; image = imag;
    }
    char image;
    int xP, yP;
 
    void Block::Input();
 
    static void Turn(Block block){
        switch(field[block.yP+1][block.xP]){
            case ' ':
                field[block.yP][block.xP] = ' ';
                block.yP += 1;
                field[block.yP][block.xP] = block.image;
            break;
        }
    }
};
 
void Block::Input(){
    for (int i =0; i < 10; i++){
        for (int j =0 ; j< 10; j++){
            switch(field[j][i]){
                case 'O':
                    if (GetAsyncKeyState(VK_LEFT) != 0){
                        int j2 = j++;
                        switch (field[i][j2]){
                            case ' ':
                                field[i][j] = ' ';
                                j = j2;
                                field[i][j] = 'O';
                                break;
                        }
                    }
                    if (GetAsyncKeyState(VK_RIGHT) != 0){
                        int j2 = j--;
                        switch (field[i][j2]){
                            case ' ':
                                field[i][j] = ' ';
                                j = j2;
                                field[i][j] = 'O';
                                break;
                        }
                    }
                break;
            }
        }
    }
}
 
 
 
int main(){
    setlocale(LC_ALL,"RUS");
    static Block block1('H',5,0);
    {
    while (Run){
        timer += 0.01f;
        if (timer >= 150000){
            Block::Turn(block1);
            Draw();
            timer =0;
        }
    }
    }
    return 0;
}

Но только она не работает должным образом. То есть не падает блок. нельзя двигать его по бокам.
В чем ошибка? и насколько правильнен код? и как написать лучше?

Добавлено через 7 минут
да и как можно записать без static, а то это меня напрягает, все таки статик для всех параметры одинаковы, а мне надо будет сделать для каждого объекта копию его класса, чтобы как бы параметры типа координаты и значка были лично для этого объекта. все таки надо сделать спавн блоков
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru