Автор Тема: Представляю ядро игры populate  (Прочитано 2615 раз)

Оффлайн alsoijw

  • Участник
  • *
  • Сообщений: 166
  • Fedora 25 GNOME 3 amd64
Скриншот ранних версийТекущий внешний вид

Представляю ядро игры populate. Описание: поле состоит из шестигранников. Вы можите выбрать любой свой шестигранник(ваши шестигранники зелёного цвета) щелкнув по нему левой кнопкой. Свободные ячейки рядом с ним будут подсвечены. Кликните по любой из них левой кнопкой. Вы заняли эту ячейку. Все ячейки противника рядом с ней станут вашими. И наоборот, ваши ячейки перейдут к врагу если он займёт шестигранник рядом с вашими ячейками. Ваша задача занять как можно больше шестигранников. Как только все шестигранники будут заняты игра прекратится.

Сейчас это не всё что я хотел сделать. Если вам интересно, я продолжу разрабатывать эту игру. Я самоучка и хочу конструктивной критики кода. Новые идеи приветствуются. Для сборки вам нужно будет поставить valac, а также libgee и libgtk-3 в версиях для разработчиков.

Исходный код на github. Что нового?
« Последнее редактирование: 26.01.2016 20:05:58 от alsoijw »
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
Re: Представляю ядро игры populate
« Ответ #1 : 24.10.2015 19:04:00 »
Пост был подправлен в связи с двумя обстоятельствами:
1) Дебиан не единственный дистрибутив на этой планете и пакеты, которые были указаны в качестве зависимостей для сборки, могут называться несколько иначе в других дистрибутивах. Это следует иметь ввиду, прежде чем публиковать подобные вещи на форумах, где в своей основной массе обсуждаются вопросы, никак дебиана не касающиеся
2) Ссылка на исходный код была поправлена и дано более внятное описание, иначе было не понятно, что это за ссылка

Оффлайн alsoijw

  • Участник
  • *
  • Сообщений: 166
  • Fedora 25 GNOME 3 amd64
Re: Представляю ядро игры populate
« Ответ #2 : 20.12.2015 19:58:37 »
Вышла новая версия. Переписано отображение меню и добавлен возврат в меню если уровень не пройден.


Добавлен редактор уровней. Созданные уровни можно пройти открыв в редакторе и нажать на кнопку тестировать.

Если у вас есть интересные уровни - выкладывайте.
Как всегда можете скачать с githubа.
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 182
  • antohami@
Re: Представляю ядро игры populate
« Ответ #3 : 21.12.2015 07:14:48 »
Лицензию на программу укажите явно, пожалуйста. Тогда соберу под Альт.

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 182
  • antohami@
Re: Представляю ядро игры populate
« Ответ #4 : 21.12.2015 08:09:24 »
Какая версия libgee требуется? У меня пишет:
error: Package `gee-1.0' not found in specified Vala API directories or GObject-Introspection GIR directoriesУстановлены обе версии libgee 0.6 и 0.18.
Какая версия vala нужна? У меня 0.30.

Оффлайн alsoijw

  • Участник
  • *
  • Сообщений: 166
  • Fedora 25 GNOME 3 amd64
Re: Представляю ядро игры populate
« Ответ #5 : 21.12.2015 19:01:46 »
Антон Мидюков, замени в файле dovalac `find src/ -type f` --pkg gee-1.0 --pkg gtk+-3.0 -X -lm -o populateна valac `find src/ -type f` --pkg gee-0.8 --pkg gtk+-3.0 -X -lm -o populate
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 182
  • antohami@
Re: Представляю ядро игры populate
« Ответ #6 : 22.12.2015 09:20:55 »
Спасибо, собралось. Добавьте, пожалуйста, значок запуска и иконки из вложения.

Оффлайн alsoijw

  • Участник
  • *
  • Сообщений: 166
  • Fedora 25 GNOME 3 amd64
Re: Представляю ядро игры populate
« Ответ #7 : 22.12.2015 23:46:48 »
Антон Мидюков, я правильно понимаю что desktop файл бесполезен до появления скрипта установки?
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 182
  • antohami@
Re: Представляю ядро игры populate
« Ответ #8 : 23.12.2015 03:33:40 »
я правильно понимаю что desktop файл бесполезен до появления скрипта установки?

Ну, почему же. Майнтейнер в спеке сам пропишет :-) Я в спеке у себя уже прописал. Сегодня могу Makefile накидать, если надо.

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 182
  • antohami@
Re: Представляю ядро игры populate
« Ответ #9 : 23.12.2015 08:35:44 »
Накидал Makefile. Я в нём gee-0.8 прописал, к сведению.
« Последнее редактирование: 23.12.2015 08:37:54 от Антон Мидюков »

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 182
  • antohami@
Re: Представляю ядро игры populate
« Ответ #10 : 24.12.2015 14:42:04 »
Под p7 не собирается:
./do make
src/main.vala:165.35-165.46: error: The name `get_titlebar' does not exist in the context of `PopulateGame.edit_mouse'
find_hexagon(event.x, event.y - get_titlebar().height_request, out x, out y, out result);
                                ^^^^^^^^^^^^
Compilation failed: 1 error(s), 0 warning(s)

В p7: vala 0.22.1, libgee 0.8.8

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 182
  • antohami@
Re: Представляю ядро игры populate
« Ответ #11 : 24.12.2015 14:44:58 »
В Сизиф игру собрал. Будет в нём завтра, наверное.

Оффлайн alsoijw

  • Участник
  • *
  • Сообщений: 166
  • Fedora 25 GNOME 3 amd64
Re: Представляю ядро игры populate
« Ответ #12 : 24.12.2015 22:51:46 »
Антон Мидюков, собирается?
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 182
  • antohami@
Re: Представляю ядро игры populate
« Ответ #13 : 25.12.2015 07:08:09 »
Антон Мидюков, собирается?

Нет.
./do make
src/hexagon.vala:39.20-39.34: warning: use of possibly unassigned parameter `x_array'
                   out int x_array, out int y_array, out bool result) {
                   ^^^^^^^^^^^^^^^
src/hexagon.vala:39.37-39.51: warning: use of possibly unassigned parameter `y_array'
                   out int x_array, out int y_array, out bool result) {
                                    ^^^^^^^^^^^^^^^
src/cell.vala:15.2-15.18: warning: field `Cell.my_type' never used
TypeCells my_type;
^^^^^^^^^^^^^^^^^
/usr/src/RPM/BUILD/populate-0.0.0/src/temp.vala.c: In function 'find':
/usr/src/RPM/BUILD/populate-0.0.0/src/temp.vala.c:92:2: warning: passing argument 3 of 'gee_array_list_new' from incompatible pointer type [enabled by default]
In file included from /usr/src/RPM/BUILD/populate-0.0.0/src/temp.vala.c:7:0:
/usr/include/gee-0.8/gee.h:1398:15: note: expected 'GDestroyNotify' but argument is of type 'void (*)(struct Point *)'
/usr/src/RPM/BUILD/populate-0.0.0/src/temp.vala.c:95:2: warning: passing argument 3 of 'gee_array_list_new' from incompatible pointer type [enabled by default]
In file included from /usr/src/RPM/BUILD/populate-0.0.0/src/temp.vala.c:7:0:
/usr/include/gee-0.8/gee.h:1398:15: note: expected 'GDestroyNotify' but argument is of type 'void (*)(struct CouplePoint *)'
/usr/src/RPM/BUILD/populate-0.0.0/src/temp.vala.c:98:2: warning: passing argument 3 of 'gee_array_list_new' from incompatible pointer type [enabled by default]
In file included from /usr/src/RPM/BUILD/populate-0.0.0/src/temp.vala.c:7:0:
/usr/include/gee-0.8/gee.h:1398:15: note: expected 'GDestroyNotify' but argument is of type 'void (*)(struct CouplePoint *)'
/usr/src/RPM/BUILD/populate-0.0.0/src/temp.vala.c:111:3: warning: passing argument 1 of 'gee_abstract_collection_get_size' from incompatible pointer type [enabled by default]
In file included from /usr/src/RPM/BUILD/populate-0.0.0/src/temp.vala.c:7:0:
/usr/include/gee-0.8/gee.h:1332:6: note: expected 'struct GeeAbstractCollection *' but argument is of type 'struct GeeCollection *'
/usr/src/RPM/BUILD/populate-0.0.0/src/temp.vala.c:146:3: warning: passing argument 1 of 'gee_abstract_collection_get_size' from incompatible pointer type [enabled by default]
In file included from /usr/src/RPM/BUILD/populate-0.0.0/src/temp.vala.c:7:0:
/usr/include/gee-0.8/gee.h:1332:6: note: expected 'struct GeeAbstractCollection *' but argument is of type 'struct GeeCollection *'
/usr/src/RPM/BUILD/populate-0.0.0/src/temp.vala.c:181:3: warning: passing argument 1 of 'gee_abstract_collection_get_size' from incompatible pointer type [enabled by default]
In file included from /usr/src/RPM/BUILD/populate-0.0.0/src/temp.vala.c:7:0:
/usr/include/gee-0.8/gee.h:1332:6: note: expected 'struct GeeAbstractCollection *' but argument is of type 'struct GeeCollection *'
/usr/src/RPM/BUILD/populate-0.0.0/src/temp.vala.c:194:4: warning: passing argument 1 of 'gee_abstract_collection_get_size' from incompatible pointer type [enabled by default]
In file included from /usr/src/RPM/BUILD/populate-0.0.0/src/temp.vala.c:7:0:
/usr/include/gee-0.8/gee.h:1332:6: note: expected 'struct GeeAbstractCollection *' but argument is of type 'struct GeeCollection *'
/usr/src/RPM/BUILD/populate-0.0.0/src/temp.vala.c: In function 'where_can_jump':
/usr/src/RPM/BUILD/populate-0.0.0/src/temp.vala.c:244:4: warning: passing argument 1 of 'gee_abstract_collection_get_size' from incompatible pointer type [enabled by default]
In file included from /usr/src/RPM/BUILD/populate-0.0.0/src/temp.vala.c:7:0:
/usr/include/gee-0.8/gee.h:1332:6: note: expected 'struct GeeAbstractCollection *' but argument is of type 'struct GeeCollection *'
/usr/src/RPM/BUILD/populate-0.0.0/src/temp.vala.c: In function 'choose_were_jump':
/usr/src/RPM/BUILD/populate-0.0.0/src/temp.vala.c:337:3: warning: passing argument 1 of 'gee_abstract_collection_get_size' from incompatible pointer type [enabled by default]
In file included from /usr/src/RPM/BUILD/populate-0.0.0/src/temp.vala.c:7:0:
/usr/include/gee-0.8/gee.h:1332:6: note: expected 'struct GeeAbstractCollection *' but argument is of type 'struct GeeCollection *'
/usr/src/RPM/BUILD/populate-0.0.0/src/temp.vala.c:387:5: warning: passing argument 1 of 'gee_abstract_collection_get_size' from incompatible pointer type [enabled by default]
In file included from /usr/src/RPM/BUILD/populate-0.0.0/src/temp.vala.c:7:0:
/usr/include/gee-0.8/gee.h:1332:6: note: expected 'struct GeeAbstractCollection *' but argument is of type 'struct GeeCollection *'
/usr/src/RPM/BUILD/populate-0.0.0/src/temp.vala.c: In function 'can':
/usr/src/RPM/BUILD/populate-0.0.0/src/temp.vala.c:534:6: warning: passing argument 1 of 'gee_abstract_collection_get_size' from incompatible pointer type [enabled by default]
In file included from /usr/src/RPM/BUILD/populate-0.0.0/src/temp.vala.c:7:0:
/usr/include/gee-0.8/gee.h:1332:6: note: expected 'struct GeeAbstractCollection *' but argument is of type 'struct GeeCollection *'
/usr/src/RPM/BUILD/populate-0.0.0/src/temp.vala.c: In function 'can_player_make_move':
/usr/src/RPM/BUILD/populate-0.0.0/src/temp.vala.c:819:10: warning: passing argument 1 of 'gee_abstract_collection_get_size' from incompatible pointer type [enabled by default]
In file included from /usr/src/RPM/BUILD/populate-0.0.0/src/temp.vala.c:7:0:
/usr/include/gee-0.8/gee.h:1332:6: note: expected 'struct GeeAbstractCollection *' but argument is of type 'struct GeeCollection *'
/usr/src/RPM/BUILD/populate-0.0.0/src/main.vala.c: In function 'populate_game_construct':
/usr/src/RPM/BUILD/populate-0.0.0/src/main.vala.c:438:2: warning: passing argument 3 of 'gee_array_list_new' from incompatible pointer type [enabled by default]
In file included from /usr/src/RPM/BUILD/populate-0.0.0/src/main.vala.c:8:0:
/usr/include/gee-0.8/gee.h:1398:15: note: expected 'GDestroyNotify' but argument is of type 'void (*)(struct Point *)'
/usr/src/RPM/BUILD/populate-0.0.0/src/main.vala.c:441:2: warning: passing argument 3 of 'gee_array_list_new' from incompatible pointer type [enabled by default]
In file included from /usr/src/RPM/BUILD/populate-0.0.0/src/main.vala.c:8:0:
/usr/include/gee-0.8/gee.h:1398:15: note: expected 'GDestroyNotify' but argument is of type 'void (*)(struct Point *)'
/usr/src/RPM/BUILD/populate-0.0.0/src/main.vala.c:444:2: warning: passing argument 3 of 'gee_array_list_new' from incompatible pointer type [enabled by default]
In file included from /usr/src/RPM/BUILD/populate-0.0.0/src/main.vala.c:8:0:
/usr/include/gee-0.8/gee.h:1398:15: note: expected 'GDestroyNotify' but argument is of type 'void (*)(struct Point *)'
/usr/src/RPM/BUILD/populate-0.0.0/src/main.vala.c: In function 'populate_game_create_menu':
/usr/src/RPM/BUILD/populate-0.0.0/src/main.vala.c:1628:2: error: unknown type name 'GtkHeaderBar'
/usr/src/RPM/BUILD/populate-0.0.0/src/main.vala.c:1629:2: error: unknown type name 'GtkHeaderBar'
/usr/src/RPM/BUILD/populate-0.0.0/src/main.vala.c:1664:12: error: 'GtkHeaderBar' undeclared (first use in this function)
/usr/src/RPM/BUILD/populate-0.0.0/src/main.vala.c:1664:12: note: each undeclared identifier is reported only once for each function it appears in
/usr/src/RPM/BUILD/populate-0.0.0/src/main.vala.c:1664:25: error: expected expression before ')' token
/usr/src/RPM/BUILD/populate-0.0.0/src/main.vala.c: In function 'main':
/usr/src/RPM/BUILD/populate-0.0.0/src/main.vala.c:1840:2: warning: 'g_type_init' is deprecated (declared at /usr/include/glib-2.0/gobject/gtype.h:669) [-Wdeprecated-declarations]
/usr/src/RPM/BUILD/populate-0.0.0/src/ai.vala.c: In function 'nearby_hex':
/usr/src/RPM/BUILD/populate-0.0.0/src/ai.vala.c:68:2: warning: passing argument 3 of 'gee_array_list_new' from incompatible pointer type [enabled by default]
In file included from /usr/src/RPM/BUILD/populate-0.0.0/src/ai.vala.c:7:0:
/usr/include/gee-0.8/gee.h:1398:15: note: expected 'GDestroyNotify' but argument is of type 'void (*)(struct Point *)'
/usr/src/RPM/BUILD/populate-0.0.0/src/ai.vala.c: In function 'contain_point':
/usr/src/RPM/BUILD/populate-0.0.0/src/ai.vala.c:441:3: warning: passing argument 1 of 'gee_abstract_collection_get_size' from incompatible pointer type [enabled by default]
In file included from /usr/src/RPM/BUILD/populate-0.0.0/src/ai.vala.c:7:0:
/usr/include/gee-0.8/gee.h:1332:6: note: expected 'struct GeeAbstractCollection *' but argument is of type 'struct GeeCollection *'
/usr/src/RPM/BUILD/populate-0.0.0/src/ai.vala.c: In function 'capture':
/usr/src/RPM/BUILD/populate-0.0.0/src/ai.vala.c:519:3: warning: passing argument 1 of 'gee_abstract_collection_get_size' from incompatible pointer type [enabled by default]
In file included from /usr/src/RPM/BUILD/populate-0.0.0/src/ai.vala.c:7:0:
/usr/include/gee-0.8/gee.h:1332:6: note: expected 'struct GeeAbstractCollection *' but argument is of type 'struct GeeCollection *'
/usr/src/RPM/BUILD/populate-0.0.0/src/ai.vala.c: In function 'through_cage':
/usr/src/RPM/BUILD/populate-0.0.0/src/ai.vala.c:604:2: warning: passing argument 3 of 'gee_array_list_new' from incompatible pointer type [enabled by default]
In file included from /usr/src/RPM/BUILD/populate-0.0.0/src/ai.vala.c:7:0:
/usr/include/gee-0.8/gee.h:1398:15: note: expected 'GDestroyNotify' but argument is of type 'void (*)(struct Point *)'
error: cc exited with status 256
Compilation failed: 1 error(s), 3 warning(s)
error: Bad exit status from /usr/src/tmp/rpm-tmp.58493 (%build)

Я так понимаю в p7 libgee недостаточно свежий. Желательно бы определить минимальную версию vala и libgee, для сборки вашей игры.
Ладно, а что насчёт добавления иконок, desktop-файла и Makefile?

Оффлайн alsoijw

  • Участник
  • *
  • Сообщений: 166
  • Fedora 25 GNOME 3 amd64
Re: Представляю ядро игры populate
« Ответ #14 : 25.12.2015 11:29:40 »
Я так понимаю в p7 libgee недостаточно свежий
Судя по выводу недостаточно свежий Gtk+3.
Желательно бы определить минимальную версию vala и libgee, для сборки вашей игры.
Ладно, а что насчёт добавления иконок, desktop-файла и Makefile?
Позже будет сделано.
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?