Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 14.03.2011
Сообщений: 12

Создание игры "Тетрис"

21.09.2013, 21:09. Показов 3902. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго дня.Можете помочь мне найти ПОЖАЛУЙСТА подходящую информацию по созданию тетриса,но не исходник,и не готовый код т.к. тетрис хочу сделать самому на с++ builder
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.09.2013, 21:09
Ответы с готовыми решениями:

Как рисовать фигурки и реализовать движок игры Тетрис
Добрый день ! Задали написать тетрис. Я могу сделать менюшку, могу нарисовать поле игры. Но как...

Какую простую графическую библиотеку или класс использовать для разработки игры "Тетрис"?
Я с не давнего времени учу c++.И решил подкрепить знания как на мой взгляд достачно серьёзной...

Сохранить состояние игры Тетрис в файл
Доброе утро, каким образом можно сохранить состояние игры тетрис при нажати на созданную кнопку...

4
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
22.09.2013, 15:08
Игра тетрис за 10 минут
0
0 / 0 / 0
Регистрация: 14.03.2011
Сообщений: 12
22.09.2013, 19:13  [ТС]
Всем доброго дня. Делаю игру тетрис написал игровую карту и одну фигуру ,которая движется вертикально вниз ,но не могу сообразить как сделать новую фигуру при приземлении другой , и вообще не могу разобраться с фигурами и при рандомном появлении их. Отзовитесь пожалуйста!!! Недоделанный Код представлен ниже.


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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit9.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm9 *Form9;
int a[20][20]=
{
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
};
 
 
///////////////////////////////////////////////
int i,j;
int x=180,y=30;
bool n;
//---------------------------------------------------------------------------
__fastcall TForm9::TForm9(TComponent* Owner)
    : TForm(Owner)
{
Timer1->Interval = 400;
}
//---------------------------------------------------------------------------
void __fastcall TForm9::FormPaint(TObject *Sender)
{
Maps();
DrawFigure();
}
//---------------------------------------------------------------------------
 
void TForm9::Maps(void)
{
  for(i=0;i<20;i++)
  {
   for(j=0;j<20;j++)
   {
    switch(a[i][j])
    {
      case 0 : {Form9->Canvas->Brush->Color=clWhite; break;}
      case 1 : {Form9->Canvas->Brush->Color=clRed; break;}
 
   }
    Form9->Canvas->Pen->Width=2;
    Form9->Canvas->Pen->Color = clSilver;
   Form9->Canvas->Rectangle(i*30,j*30,i*30+30,j*30+30);
  
   }
   }
}
//----------------------------------------------------------------
 
 
void __fastcall TForm9::FormKeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
n=true;
switch(Key)
  {
   case 37 : if(a[x/30-1][y/30]!=1) { x-=30; }
   else {x+=0;}
   break;
   case 39 : if(a[x/30+3][y/30]!=1) { x+=30; }
   else {x+=0;}
   break;
   case VK_DOWN : if(a[x/30][y/30+1]!=1) {y+=30;}
   break;
  }
 
FormPaint(Sender);
}
//---------------------------------------------------------------------------
void TForm9::DrawFigure()
{
Form9->Canvas->Brush->Color=clBlue;
Form9->Canvas->Rectangle(x,y,x+90,y+30);
}
 
void TForm9::Move()
{
if(a[x/30][y/30+1]!=1)
    { y+=30; }
 
 
}
void __fastcall TForm9::Timer1Timer(TObject *Sender)
{
///
Move();
FormPaint(Sender);
 
//
 
}
//---------------------------------------------------------------------------
0
0 / 0 / 0
Регистрация: 14.03.2011
Сообщений: 12
22.09.2013, 19:18  [ТС]
Спасибо конечно,но мне на С++ Builder надо и без использования библиотеке opengl !
0
1090 / 588 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
24.09.2013, 08:23
придумай как будешь представлять фигуру.
можно хранить фигуру как список пар координат относительно "центра тяжести" фигуры.
например фигура
_CX (подчеркивание вместо пробела)
XX

двигать будешь кубик С с координатами (x,y), а остальные три подрисовывать
x+1,y
x-1,y+1
x,y+1

таким образом фигура представлена как
1,0
-1,1
0,1

и перед тем как в очередной раз нарисовать фигуру надо проверить все ли клетки свободны, если нет, значит фигура приземлилась и надо кидать очередную
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.09.2013, 08:23
Помогаю со студенческими работами здесь

Нужен пример игры "Тетрис"
Ребят, нужна помощь в написании тетриса на С++. Помогите с алгоритмом или поделитесь кодом,...

"Тетрис": как создать конец игры? Игра не заканчивается и фигуры появляются друг над другом
#include &lt;SFML/Graphics.hpp&gt; #include &lt;time.h&gt; using namespace sf; const int M = 20; const...

Реализация игры «Тетрис» с использованием ООП
Подскажите пожалуйста, с чего можно начать написание игры тетрис? (использую библиотеку SFML)

Курсова на тему Тетрис
Здраствуйте люди помогите с курсовою у меня есть програма тетрис мне нужна помощь по оформлению...

Тетрис
Пишу на c++ for DOS! Вобщем не могу сделать передвижение фигуры влево или вправо при нажатии на...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru