Ычан: [d | au / b / bro / hr / l / m / mu / o / s / tran / tu / tv / vg / x | a / aa / c / fi / jp / rm / tan / to / vn]
[Назад]
Ответ в нить
Имя
Animapcha image [@] [?]
Тема   ( ответ в 25186)
Сообщение flower
Файл 
Пароль  (для удаления файлов и сообщений)
Параметры   
  • Прежде чем постить, ознакомьтесь с правилами.
  • Поддерживаются файлы типов 7Z, BZ, BZ2, GIF, GZ, JPG, MO, MP3, MP4, OGG, OGV, PDF, PNG, PSD, RAR, SVG, SWF, TXT, WEBM, WEBP, XCF, ZIP размером до 5120 кБ.
  • Ныне 3638 unique user posts. Посмотреть каталог
  • Предельное количество бампов нити: 500
1200px-Binary_tree_svg.png - (51.23KB, 1200×1000)
25186
No. 25186  
Привет, радио. Я всегда хотел спроектировать симсити и очень много времени потратил на эти попытки. Сегодня я ещё раз попробую спроектировать симсити.

У меня свой странный большой симсити. Что я придумал: есть карта произвольного размера. На этой карте для каждой точки указан рельеф и знания которые там стоят. Предполагается что каждое здание занимает одну точку и на одной точке может быть сразу несколько заданий. Большой симсити! Более того, в каждой точке есть указатель на владельца точки. Предполагается потом играть за одного такого владельца.

Острый угол состоит в том, что точка может быть водой или пустошью, на которых здания стоять не могут и указателя на владельца у них нет. То есть точки занимают разное количество памяти. Хорошо.

Хорошо, как заполнить такую карту? Наверное нужно рисовать изображение, например в формате png, и переводить его в (csv) какой-то шаблон данных, например с разделением для каждой точки новой линией. А потом читать карту уже с этого csv!

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

Всё. Надеюсь вы как-то поняли около чего речь. Это начало проектировки, надеюсь это сможет даже зайти дальше! Но теперь нужно это сконструировать в росте. Радио, подскажи, пожалуйста, на чём реализовывать симсити? На сишке или всё же вернее на крестиках с классиками?

Прошу не бить ногами, я не программист.
No. 25187  
Хочу редактировать сообщения! Не знания, не, на точке стоят здания. Здания хотел сказать.
No. 25198  
>>25186
определенно на крестиках. Ты даже описал классы, которые у тебя будут. А с помощью ооп ты сможешь это лаконично и красиво закодить
No. 25203  
>>25198
Классы я не описывал, это описывание базы данных.

Хорошо, допустим мы имеет базу данных. Теперь нужно её графически представить, дабы пользователь мог её наблюдать и мог её взаимодействовать. Для начала можно просто попиксельно рисовать список данных из базы на экран в виде квадратиков. Например, можно использовать для рисования fltk.
Эту задачу я себе и поставлю.

Думать про механики ещё рано, для начала нужна возможность с механиками взаимодействовать. Поэтому сейчас проектирую визуальное представление и пользовательский интерфейс.

Хелловоролд который из меня выпал с предыдущей задачи просто преобразует 5 картинок градаций серого в 5 чисел для каждого пикселя. Я больше не умею. Это называется базой данный. Потом переведу в бинарники и пережму. Наверное.
Соус взял с одного из первых по выдаче поисковика для запроса libpng, файлика на гитхабе.
Информации про зданий и етсетеру в картинках нет, это тестовая база, не реализовано.

Ещё раз прошу прощения и напоминаю что я не программист, а просто осознал необходимость проектировать!

Хелловоролд: https://rocketgit.com/user/sdfgsdfg/shitcity/source/tree/branch/main
No. 25206  
https://github.com/kuang/ocaml-sim-city
No. 25207  
>>25206
Что такое xpm?
No. 25212  
>>25207
https://en.wikipedia.org/wiki/X_PixMap
Удалить сообщение []
Пароль  
[Mod]