[ d ] [ b / cu / dev ] [ r ] [ a / ts ] [ ci ] [ gnx / int ] [ misc ] [ dev / stat ]
[Burichan] [Futaba] [Gurochan] [Tomorrow] [Архив-Каталог] [Главная]

Файл: 1200px-Binary_tree_svg.png -(51 KB, 1200x1000, 1200px-Binary_tree_svg.png)
51 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



[ d ] [ b / cu / dev ] [ r ] [ a / ts ] [ ci ] [ gnx / int ] [ misc ] [ dev / stat ]
[Burichan] [Futaba] [Gurochan] [Tomorrow] [Архив-Каталог] [Главная]