Не знаю для чего, видимо просто от безделия, решил написать эту игруху. Лучшего применения себе в выходные не нашел. Что то затишье кокое то на форуме.
Реализовал через систему рисования Qt.
В игре пять уровней, на большее меня не хватило, подзадолбало немного
Начинающим, вожможно, будет интересно посмотреть .
А зачем игре уровни? Я думал всегда, что там рандом + увеличение сложности по инкременту.
"Soliter" - разве не карты ? Или тут прикол типа червь-паразит - солитёр :-D ?
На самом деле так держать, на Qt мало игр написано и еще одна не помешает.
У меня с ходу собрать не получилось... Линукс различает разный регистр в именах и не находит файлы
UPD: Проблема оказалась с GameField.h. При продвижении виджета он был записан как gamefield.h
UPD2: Да и инициализация переменных слегка кривая. Ее следует проводить в проредке их описания. Недавно на хабре статья была почему так не следует делать
GameField.h: In constructor ‘GameField::GameField(QWidget*)’:
GameField.h:28: warning: ‘GameField::startlen’ will be initialized after
GameField.h:27: warning: ‘int GameField::len’
GameField.cpp:9: warning: when initialized here
GameField.h:27: warning: ‘GameField::len’ will be initialized after
GameField.h:25: warning: ‘QPoint GameField::shiftPoint’
GameField.cpp:9: warning: when initialized here
GameField.h:32: warning: ‘GameField::pause’ will be initialized after
GameField.h:20: warning: ‘QPixmap GameField::pixmap’
GameField.cpp:9: warning: when initialized here
GameField.cpp: At global scope:
GameField.cpp:202: warning: unused parameter ‘event’
А так в целом неплохо получилось, так держать.
P.S. Хотя слово "lavel" меня немного покоробило
Переехали на http://www.qt-apps.org/content/show.php/snake?content=104319.
Архивчик там слегка обновленный.
qsrand(QDateTime::currentDateTime().toTime_t());
qsrand(QTime::currentTime().second());
[offtopic]
Вот та статья про порядок инициализации конструкторов - http://habrahabr.ru/blogs/cpp/58818/
[/offtopic]
Вот мыслишка появилась. Что если уровни делать в XPM формате?
/* XPM */
static char * scene1_xpm[] = {
"65 45 2 1",
" c none",
"X c #000000000000",
" ",
" X ",
" ",
" XXXXXXXXX ",
" ",
" X ",
" ",
" XXXXXXXXX ",
" ",
" X ",
" ",
" ",
" XXX ",
" XXXXX ",
" XXXXXXX ",
" XXXX XXXX XXXXXXXXX ",
" XXXXXXXXXX XXXXXXXXXXX ",
" XX XXXXXXXXXXXXX ",
" XX ",
" XX ",
" XX X ",
" XXX ",
" XXXXXXX ",
" X ",
" X ",
" XX X ",
" XX X ",
" XX X ",
" XX XXXXXXX ",
" XX XXX ",
" XX X ",
" XX ",
" XX ",
" ",
" ",
" XXXXX ",
" XXXXXXX ",
" XXXXX ",
" ",
" ",
" ",
" X X ",
" X X ",
" X X ",
" XXXXXXXXXXXXX "};
void GameField::createFoot()
Постараюсь исправиться .
Сам понимаю, что глаза режет, когда с ошибками пишешь.
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)