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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 36, средняя оценка - 4.81
IFree Host
Заблокирован
#1

Обещаный консольный графический Тетрис (исходники и релиз) - C++

13.02.2012, 02:03. Просмотров 4929. Ответов 11
Метки нет (Все метки)

Вот обещал людям консольный графический тетрис
Выкладываю все с исходниками

Извеняйте, что названия все на родном. Но кому надо разберется.
Написано очень просто.
Score отсутствует. Можете сами что-нибудь такое пристроить.

Надеюсь, что достаточно качественно протестировал. Багов вроде нет.
Будте осторожны с I_Figur, так как там вращение немного хитро функционирует.

Управление как обычно стрелками. Для дебага введена пауза по пробелу.
Когда стакан полный по ESC можно выйти, по любой другой клавише начать заново.
Дебаговые таблицы можно отключить. Найдете в классе CTetrisFiguren.

Класс CBrett больше для других игор предназначен, где клеточная разметка нужна.
Но здесь тоже немного сгодился.

Найдете ошибки, пишите. Буду премного благодарен.
2
Миниатюры
Обещаный консольный графический Тетрис (исходники и релиз)  
Вложения
Тип файла: rar Tetris.rar (9.8 Кб, 684 просмотров)
Тип файла: rar Tetris_Release.rar (7.5 Кб, 453 просмотров)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.02.2012, 02:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Обещаный консольный графический Тетрис (исходники и релиз) (C++):

Консольный Тетрис на С++ - C++
Написать консольный Тетрис на С++ используя процедурное программирование(без классов и go to). Реализовать: 1) меню 2) уровни...

Очередной консольный тетрис - Haskell
Для виндового эмулятора терминала. Хотя должен работать и на линуксах и прочих макосях, если верить документации. Компилировать с флагом...

Написать консольный тетрис - C (СИ)
пытаюсь сделать консольный тетрис на си. создал матрицу поле (грубо говоря), границам присвоил 2, внутриигровому полю 1 (чтобы потом было...

Графический и консольный режимы в Centos - Ubuntu Linux
Как правильно переключаться между графическим и консольным режимами в Centos?

Релиз - C++
У меня в проекте есть картинки, хочу что б при релизе они упаковались в ехе или так нельзя? Как тогда хранить файлы, картинки, звуки- что б...

Релиз Qt 5.8 - C++ Qt
Господа, всем доброго времени суток. Вчера был релиз новой версии Qt, и в патч-ноуте прочитал про новые вещи в Qt Quick Controls 2. На...

11
murderer
3201 / 1425 / 75
Регистрация: 06.10.2010
Сообщений: 3,094
13.02.2012, 08:29 #2
Неплохо. Отладочная инфа слева прикольно смотрится. Только в стандартном тетрисе игровое поле 10x20 должно быть если верить википедии.
Будте осторожны с I_Figur, так как там вращение немного хитро функционирует.
Очень хитро сделано здесь.
4 строчки на асме. Удивительно, но это работает.
Assembler
1
2
3
4
5
R:         ; ax=8000h, CF=0
rcl  cx,13 ;ax = cx rotated 90 degress ccw around [1;1]
rcr  ax,1
jnc  R
xchg ah,al
1
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
13.02.2012, 09:21 #3
IFree Host, Запускать не запускал - смотрю код.

1)
C++
1
2
CBrett(void);
~CBrett(void);
void в параметрах абсолютно не имеет смысла для С++.
2)
C++
1
CConsolenGrafik BrettScreen;
Определен в глобальной видимости. Почему бы не сделать статической переменной класса?
3)
C++
1
2
3
4
        for (char j=0, y = 1+y_location; j<10 , y < y_location+21 ; j++, y=y+2 )
        {
            BrettScreen.Farben(x_location,x_location,y,y+1,0,4);
        }
Слишком много магических чисел. Исходник ими так и пестрит.
4) Файл SpielFeld.cpp - дофига свитчей + опять же две переменные объявлены в глобале, хотя можно сделать статик полями класса. TetrisFiguren - та же фигня.
5)
C++
1
void main()
А вот за такое человека пишущего на С++ надо убивать.

Вообщем - везде функции, не принимающие параметров зачем-то обозначены принимающими void. Магические числа. Неиспользование статических членов класса там, где это явно нужно.
Абсолютное отсутствие константных функций. void main(). Не зачтено.
0
IFree Host
Заблокирован
13.02.2012, 12:04  [ТС] #4
ForEveR, Да оптимизировать еще придется. Замечания учту. За советы большое спасибо. Но все-таки, ты придира. Я между прочим только один семестр на C програмирую. И то, из них 3 месяца на чистом С. И один месяц на С++. Так что, у меня все еще впереди. :dance3:

murderer, Спасибо за оценку и за линк.
0
ForEveR
13.02.2012, 12:25
  #5

Не по теме:

IFree Host, Не придира. Советую как сделать лучше. По-моему вполне конструктивная критика.

1
IFree Host
13.02.2012, 12:30  [ТС]
  #6

Не по теме:

Извени если обидно прозвучало, я хотел по-дружески, шутя.
Конечно, критика конструктивная. Полностью согласен. Я обязательно поработаю надо всеми замечаниями.

0
KeyGen
384 / 291 / 6
Регистрация: 07.08.2011
Сообщений: 789
Записей в блоге: 1
14.02.2012, 01:03 #7
Мне понрвавилось. Но код без каментариев и много подключаемых файлов надо разбираться... думаю надо как то по проще. А вобще круто).

Не по теме:

Я OpenGL учу буду везуализировать свой...

0
IFree Host
Заблокирован
14.02.2012, 01:08  [ТС] #8
KeyGen, Спасибо за оценку моего творчества
0
balolam
24 / 17 / 4
Регистрация: 05.12.2013
Сообщений: 70
07.02.2014, 14:51 #9
Я нашел баг, у тебя фигура на фигуру западает
0
Croessmah
Эксперт CЭксперт С++
13409 / 7559 / 853
Регистрация: 27.09.2012
Сообщений: 18,610
Записей в блоге: 3
Завершенные тесты: 1
07.02.2014, 14:55 #10
Цитата Сообщение от balolam Посмотреть сообщение
Я нашел баг, у тебя фигура на фигуру западает
вот лучше бы подробнее расписать, может кто поправит
0
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,530
Завершенные тесты: 1
07.02.2014, 14:56 #11
Цитата Сообщение от balolam Посмотреть сообщение
Я нашел баг, у тебя фигура на фигуру западает
Опишите пожалуйста конкретнее что куда и при каких обстоятельствах западает. Лучше сделайте скриншот. А-то как-то это прозвучало неуверенно.
0
balolam
24 / 17 / 4
Регистрация: 05.12.2013
Сообщений: 70
07.02.2014, 16:41 #12
Обещаный консольный графический Тетрис (исходники и релиз)Обещаный консольный графический Тетрис (исходники и релиз)
Это можно заметить, нажав сдвиг фигуры в бок когда она падает бок-о-бок с другой фигурой....Она почему-то на неё заползает.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.02.2014, 16:41
Привет! Вот еще темы с ответами:

Релиз - C++
Скачал FLTK, установил, все работает. Создал релиз. У меня все отлично запускается, а у брата экзешник не работает. Пологаю потому, что у...

Релиз и отладка - Программирование Android
Добрый день. Есть ли смысл делать release для приложения если я его не собираюсь выкладывать в плей маркет?

Релиз приложения - C#
Здравствуйте! Товарищи гуру кода, просветите пожалуйста в вопросе с которым, вероятно, сталкиваются все новички. Как происходит...

Релиз программы - C#
Здравствуйте. Возник такой вопрос. Так-как я совсем недавно стал изучать шарп, буквально месяц, мне стало интересно как делаются релизы...


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

Или воспользуйтесь поиском по форуму:
12
Yandex
Объявления
07.02.2014, 16:41
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru