Навигация
Поддержать материально
Steam Greenlight

Логотипы
Медальки
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Темы форума
WoL
Вчера, 13:13
 Darthman
185 - RPG
9.02.2024
 Vaskrol
В каком банке открыт…
24.01.2024
 Darthman
185 - ?
30.12.2023
 Mefistofel
TESTAMENT - Тактичес…
15.11.2023
 KregHek
RES - Движок для пик…
27.09.2023
 rimush
177 - One Button Str…
20.09.2023
 VoroneTZ
JS 13k contest
13.09.2023
 Mefistofel
184 - Arcade II
14.08.2023
 tiger1025
184 - ?
14.07.2023
 Kaps
Сейчас на сайте
Гостей: 1
На сайте нет зарегистрированных пользователей

Пользователей: 1,789
новичок: NickName
Обсуждение «Помогите! деже не знаю где спросить»
Страница 3 из 8 < 1 2 3 4 5 6 > >>
Daemon
Avatar пользователя

Опубликовано 11.10.2013 02:18 (11 лет назад)    #
Когда-то давно тоже крепко задумался над этим. Товарищ Тимур открыл мне глаза (см комментарии)
http://daemon19.livejournal.com/15450.html

редакция от Daemon, 11.10.2013 02:18

MysticCoder
Avatar пользователя

Опубликовано 18.10.2013 13:38 (10 лет назад)    #
Вопрос по WM_CHAR. В доках мелкомягких написано что символ в UTF-16 кодировке http://msdn.microsoft.com/en-us/library/windows/desktop/ms646276%28v=vs.85%29.aspx, однако раньше я, да и во всех просмотренных доках использовалось простое преобразование Symbol = Char(WParam), т.е. в кодировке utf8. В паре найденных случаях использовалось преобразование типа MultiByteToWideChar, которые преобразует в UTF-16, хотя по докам он и так в UTF-16. Как на самом деле корректно работать? Чтобы и японские и арабские символы нормально обрабатывались. И как проверять, чтобы всякие бэкспейсы и другие непечатаемые символы не обрабатывались?

редакция от MysticCoder, 18.10.2013 13:40

Daemon
Avatar пользователя

Опубликовано 18.10.2013 15:37 (10 лет назад)    #
Я так понимаю делаешь свой текстбокс?

У себя в glrenderer я делаю так:
1. Ловлю WM_KEYDOWN:

procedure WMKeyDown        (var Msg: TWMKeyDown); message WM_KEYDOWN;


2. Извлекаю Msg.KeyCode, Msg.KeyData

3. Затем обрабатываю так:
var
Buf: WideChar;
kbState: TKeyboardState;
keybLayout: HKL;
begin
if KeyCode = $08 then //BACKSPACE
FTextObj.Text := Copy(FTextObj.Text, 0, Length(FTextObj.Text) - 1) //стираю символ
else
begin
if KeyCode = VK_RETURN then
Exit();
if Length(FTextObj.Text) >= FMaxTextLength then
Exit();
GetKeyboardState(kbState);
KeybLayout := GetKeyboardLayout(GetWindowThreadProcessId(GetForegroundWindow, nil));
ToUnicodeEx(KeyCode,(KeyData and $FF0000), @kbState, @Buf, (KeyData and $FFFF),0, keybLayout);
FTextObj.Text := FTextObj.Text + Buf;
end;
end;

Непечатаемые символы (кроме enter и backspace) обрабатываются при присвоении текста (последняя строка) - просто проверяется, есть ли в сгенерированном шрифте такие символы.

UPD. Тег код ужасен.

Вот ссылка на последний участок кода:
https://code.google.com/p/glrenderer/source/browse/trunk/src/engine/GUI/uGUITextBox.pas#162

редакция от Daemon, 18.10.2013 15:38

MysticCoder
Avatar пользователя

Опубликовано 18.10.2013 16:59 (10 лет назад)    #
Daemon, я пробовал через ToUnicodeEx, английские нормально, русские как то косячно выходило(наверно косяк с кодировками), пробовал Utf16toUtf8 (wParam), вроде нормально. Хотя я под вайном тестировал, может из за него так. Попробую под виндой еще раз. Проверять наличие символов в шрифте я как то не додумался :D Спасибо ))
Daemon
Avatar пользователя

Опубликовано 18.10.2013 18:01 (10 лет назад)    #
В D2009 все отлично с русскими, английскими, арабскими и прочим :) Таким образом запили ввод имени для таблицы рекордов Ragdoll Sports. Про лазарус не скажу. FPC очень странно работает с юникодом и весьма необычно имплементит WideString
XProger
Avatar пользователя

Опубликовано 19.10.2013 18:02 (10 лет назад)    #
Когда-то писал свои контролы, всё нормально принималось через WM_CHAR
Проверь, чтобы все функции работы с окном и мессагами имели суффикс W (Wide), а не A (Ansi). Но кириллица и латиница даже при A должны приходить.

редакция от XProger, 19.10.2013 18:04

Uvadzucumi
Avatar пользователя

Опубликовано 19.10.2013 22:01 (10 лет назад)    #
кирилица в Ansi стрингах, только если в винде выставлено что однобайтная кодировка, это 1251, что далеко не всегда.

по теме:
FPC делает неявные преобразования кодировок для стрингов (думаю, что и дельфи тоже), если код не в UTF8 с BOM и не стоит директивы {$codepage UTF8}, то строка преобразуется в AnsiString, иначе UnicodeString.
MysticCoder
Avatar пользователя

Опубликовано 20.10.2013 17:05 (10 лет назад)    #
Спасибо за советы, опробую позже)
Может и не в тему темы, но все же...
Думаю как сделать экономику в игре. Хочется сделать, чтобы цены и рынок саморегулировались. Т.е. хочется создать какую то относительно достоверную модель рынка. Хотя бы методом последовательных приближений. Допустим, есть мир, в этом мире есть некоторое количество денег. Есть всего один товар на продажу в единственном экземпляре. Исходя из того, что деньги есть "мерило" товара, логично предположить, что цена этого товара будет равной количеству всех денег в этом мире. Если товара два, то соответственно делим её на два.
Если в игре есть несколько сторон, и каждый предлагает разный товар, и у каждого есть некоторая начальная сумма денег, то как определить, кому по чем товар продавать? Можно конечно вычислять трудозатраты на создание единицы товара и исходя из них как то назначать цену, но эта цена должна быть адекватной количеству денег в мире. А если трудозатраты минимальны, но специфика такова, что можно производить очень ограниченное количество товара за единицу времени? Если стороны будут производить товар, то он по идее должен обесцениваться. Опять же как регулировать цены? Население будет расти, количество товаров тоже, соответственно по идее нужно будет выпускать больше денег. В идеале хотелось бы вывести какую то простую зависимость цены товара от его количества в мире, других товаров и количества в мире денег.
У кого какие идеи? Или что можно почитать?
Doj
Avatar пользователя

Опубликовано 21.10.2013 10:43 (10 лет назад)    #
При капитализме продавец сам выставляет стоимость своих товаров исходя из своих соображений (с поправкой на законы, типа запрета на демпинг) и неполном представлении о рынке.

При централизованной экономике центры формируются, соответственно, централизовано. У тебя такая, да?

Есть модели формирования цены на основе спроса, аукцион к примеру.

Есть всего один товар на продажу в единственном экземпляре. Исходя из того, что деньги есть "мерило" товара, логично предположить, что цена этого товара будет равной количеству всех денег в этом мире.


Нет, не логично. Начиная с того, что деньги — абстракция с абстрактными законами, бумага и символ, и заканчивая тем, что у нас не определена рыночная модель. Может владелец товара готов продать этот единственный товар задёшево, а не за все деньги?

редакция от Doj, 21.10.2013 10:45

MysticCoder
Avatar пользователя

Опубликовано 21.10.2013 13:49 (10 лет назад)    #
Doj написал:

При централизованной экономике центры формируются, соответственно, централизовано. У тебя такая, да?

У меня не централизованная экономика. Исхожу из истории про то откуда взялся ссудный процент. Источника не помню да и не найду уже. Суть там в том, что один человек выпустил деньги, чтобы устранить меновой рынок(сколько стоит одна корова в топорах?). Причем, каждый с самого начала брал себе столько денег, сколько посчитает нужным, при условии, что через год отдаст на 1 процент больше(читай заём).
Просто ввожу участников рынка, распределяю каждому по штуке баксов к примеру, у каждого есть какое то начальное количество товара. И есть какое то оборудование для его производства. Товары все разные. Дальше они сами по идее должны определить цены на свой товар(как?), который будет корректироваться впоследствии спросом и предложением(как?).
Я еще ничего не реализовал, просто пока думаю над этим.
Doj написал:
Может владелец товара готов продать этот единственный товар задёшево, а не за все деньги?

Вообще, этот случай вырожденный, для облегчения понимания как все это устроено. При продаже единственного товара, если покупатель в дальнейшем не собирается его продавать деньги после продажи теряют всякий смысл, т.к. покупать на них больше нечего.
Doj
Avatar пользователя

Опубликовано 21.10.2013 14:52 (10 лет назад)    #
Исхожу из истории про то откуда взялся ссудный процент. Источника не помню да и не найду уже.

И не надо, лучше почитать что-нибудь по-интереснее, например http://www.naslednick.ru/archive/rubric/rubric_321.html

Просто ввожу участников рынка, распределяю каждому по штуке баксов к примеру, у каждого есть какое то начальное количество товара. И есть какое то оборудование для его производства. Товары все разные. Дальше они сами по идее должны определить цены на свой товар(как?), который будет корректироваться впоследствии спросом и предложением(как?).
Я еще ничего не реализовал, просто пока думаю над этим.


Я своим предыдущим сообщением поставил под сомнение концепцию "все деньги в мире равны по стоимости всем товарам в мире". Мне это кажется противоестественным; в условиях отсутствия централизованной экономике это вообще недостижимо (математически).

Концепция "стоимость товара равна стоимости всех затраченных на него товаров + прочие издержки производства (если есть, например количество пролитого пота)" выглядит весьма логично и справедливо, разве нет?

редакция от Doj, 21.10.2013 14:55

MysticCoder
Avatar пользователя

Опубликовано 21.10.2013 15:06 (10 лет назад)    #
Doj написал:

Концепция "стоимость товара равна стоимости всех затраченных на него товаров + прочие издержки производства (если есть, например количество пролитого пота)" выглядит весьма логично и справедливо, разве нет?

Выглядит логично, для товара определить трудозатраты в человеко-часах, учитывая все исходные компоненты для его создания. Умножить человеко-часы на условную стоимость человеко-часа, получаем себестоимость товара, накидываем некий процент на прибыль, получаем цену по которой и продаем. Но как определить стоимость этого человеко часа? Ведь если взять стоимость 1 рубль, и раздать всем изначально по паре миллиардов рублей, никто работать не захочет ведь все и так миллиардеры) Имею ввиду нет зависимости от рынка здесь, ни от спроса ни от предложения ни от "стоимости денег"(инфляция\дефляция).
Может надо не раздавать всем по миллиарду, а ввести банк, в котором они будут делать займы, и в итоге все банку будут должны:D
Shirson
Avatar пользователя

Опубликовано 21.10.2013 15:30 (10 лет назад)    #
CoderInTank написал:
Думаю как сделать экономику в игре. Хочется сделать, чтобы цены и рынок саморегулировались. Т.е. хочется создать какую то относительно достоверную модель рынка. Хотя бы методом последовательных приближений.

Зачем? (это первый вопрос, который задаётся на любую идею, призванную замутить что-то сложное, и с непрозрачными целями)
Зачем тебе нужна в игре сколько-нибудь сложная экономика? Это будет ММОГ, просто мультиплеер или сингл? Какая часть игры будет посвязена экономике? Скажем "Капитализм" посвящён экономике чуть менее чем полностью. В EVE экономика играет заметную роль и близка к реальной по поведению и принципам. В Х экономика занимает существенную долю, но сама по себе довольна проста.
Какая игра будет у тебя? Если это будет сингл, в котором экономика является только чекоторой частью геймплея, имеет ли смысл наворачивать трудно балансируемые сложности одна на другую?
Я к тому, что существует два основных подхода к балансировке, снизу и сверху.
Снизу, это когда задаются параметры, на их основе функции что-то считают и получается результат. Этот путь избирает 99% разработчиков (незамивисо от того, разрабатывают они компьютерную игру или настолку). И в 99% случаев получается несбалансировнное нечто, выдающее убервафли и прочие порушители баланса на раз.
Сверху, это когда очерчиваются рамки того, что должно быть в итоге, а потом выводятся начальные параметры для получения этого. Это путь контролируемого баланса, требующий больше предварительной работы.
Ты сейчас размышляешь первым спсобом. С вероятностью 99% это окажется не тем, что нужно :)
Возможно, чтоит уточнить, какое именно место будет занимать экономика в игре и, возможно, вполне подойдёт модель, в которой экономика будет делать вид, что ведёт себя правдоподобно. Это сделать в 99 раз проще. Во столько же раз проще удержать баланс.
MysticCoder
Avatar пользователя

Опубликовано 21.10.2013 15:45 (10 лет назад)    #
Да думаю развить идею X-COM: Apocalypse в виде ММОГ. Игрок будет управлять одним человеком, может быть участником организации своей либо чьей то, если он глава организации, то соответственно может вести внешнюю политику организации, что то закупать, что то продавать, с кем то воевать.
В исходной X-COM: Apocalypse город, поделенный между организациями, в идеале там планировалось, что все что то производят и продают, либо оказывают услуги. Получается живой город, организации между собой воюют, дружат, сотрудничают. Вот... они в свое время многое не успели реализовать, получилось нечто интересное, но явно неоконченное.
Не нравится мне, когда деньги появляются ниоткуда(продал товар или здание, кому можно продать товар или здание в стратегии где ты один на необитаемом острове??) и все накапливаются, накапливаются, уходя из мира только в виде уничтоженной техники, зданий. При затягивании игры, получается, что экономика уже не решает никакой роли, у тебя просто огроменная куча бабла, которую можно потратить на что угодно, только успевай заказывать новых юнитов и отстраивать базу.
Ignis
Копробарон
Avatar пользователя

Опубликовано 21.10.2013 15:48 (10 лет назад)    #
Охохо сама по себе идея реализовать Х-СОМ в виде ММОГ невероятно сложна а еще и экономика. По моему это очень сложно для одного человека. Да даже для команды это будет не просто
Shirson
Avatar пользователя

Опубликовано 21.10.2013 16:18 (10 лет назад)    #
Ох, экономика ММОГов это сильно отдельная песня. Могу точно сказать, что при такой игре сколько-нибудь правдоподобная экономика не будет работать вообще и потребуется куча усилий, чтобы удержать инфлаюцию от безудержного роста (не остановить, а именно удержать в рамках)

Тут есть немного об экономики и вообще по особенностям ММОГ: Законы дизайна онлайновых миров

редакция от Shirson, 21.10.2013 16:19

MysticCoder
Avatar пользователя

Опубликовано 22.10.2013 18:43 (10 лет назад)    #
Daemon, заюзал в общем твой код, все работает, только пришлось добавить вызов Utf8Encode после ToUnicodeEx, зачем... непонятно.... подозреваю, что возвращается UTF-16 который Utf8Encode перекодирует в UTF-8. В функе Utf8Encode вызывается UnicodeToUtf8.
Daemon
Avatar пользователя

Опубликовано 23.10.2013 02:00 (10 лет назад)    #
Лазарусо-эфписи-проблемы, видимо :)
MysticCoder
Avatar пользователя

Опубликовано 29.10.2013 11:27 (10 лет назад)    #
Начал изучать программирование под андроид. Хочу сделать свой мессенджер с блекджеком и шлюхами. Работать с udp сокетами. Клиент соответственно на андроиде сделанный на java, сервак на ПК сделанный на free pascal. Подскажите какое шифрование можно применить для трафика, чтобы просто было но достаточно надежно? Ну и желательно поддержка чтоб была и на java и на fpc.
Upd.
Погуглил, решил остановиться на Blowfish, и там и там реализация есть. Blowfish - использует симметричное шифрование.
Шифрование нужно, чтобы при перехвате трафика трудоемко было бы его прочитать. Если использовать для всех клиентов одинаковый ключ, то при компрометации этого ключа(путем декомпиляции, допустим), злоумышленнику легко можно будет расшифровать траффик всех клиентов. Если же генерировать и передавать незашифрованным ключ при каждой новой сессии, то при перехвате траффика этот ключ так же будет скомпрометированным и шифрование окажется бесполезным. Возможно я чего то не понимаю, как правильно делать то?

редакция от MysticCoder, 29.10.2013 12:11

Daemon
Avatar пользователя

Опубликовано 29.10.2013 13:36 (10 лет назад)    #
Ключ делается и передается с помощью алгоритма/протокола Диффи-Хеллмана, а уже шифрование - вышеприведенным способом.
Страница 3 из 8 < 1 2 3 4 5 6 > >>
Перейти на форум:
Конкурсы
Открытые конкурсы:
Активных нет
Недавние конкурсы:
 185 - RPG XII
 184 - Arcade II
 183 - Novel
 182 - RPG XI
 181 - Pixel Craft 128
 Все конкурсы
Случайная игра
Мини-чат
Вам необходимо залогиниться.

Архив чата

25,356,152 уникальных посетителей

Создано на базе русской версии PHP-Fusion copyright © 2003-2006 by Nick Jones.
Released as free software under the terms of the GNU/GPL license.