1 / 1 / 0
Регистрация: 29.04.2018
Сообщений: 56
1

Бесконечная валюта для кликера

10.01.2023, 14:26. Показов 1027. Ответов 8

Author24 — интернет-сервис помощи студентам
Всем привет!

У меня вопрос такой, в любом кликере, есть возможность зарабатывать деньги, и когда заработанная сумма превышает какой-то порог, то появляется приписка в виде символа. Например: в игре Clicker heroes за обычными тысячами, следует 1K. Затем 1M. И так далее...

Вопрос состоит именно в технических ограничениях. Например в движке Godot, целочисленные переменные типа int по ограничениям соответствует int64_t в c++. Понятное дело что ограничение существует, и если переменная переполнится, то будут проблемы. Как тогда сделать бесконечную валюту, независимую от ограничений движка на определенные типы переменных?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.01.2023, 14:26
Ответы с готовыми решениями:

Счетчик для кликера
Короче хочу сделать кликер на Unity, написал код, всё работает, но счетчик не обновляется....

Вылетающий текст для кликера
Здравствуйте, как в Unity5 2D сделать текст, вылетающий с одной точки, как в кликерах различных?...

Алгоритм для кликера
Здравствуйте, нужна помощь в написании бота-кликера. Нужно закидывать картинки для товары весь...

Создать скрипт для кликера
Здравствуйте! Хочу написать скрипт автоигры, скрипт должен кликать по кнопкам, повышать ставку и...

Нужен скрипт для работы кликера
Добрый день! Помогите доработать кликер для браузерной игры. Необходимо чтобы Ауто ит запускал...

8
Эксперт .NET
10519 / 6445 / 1502
Регистрация: 25.05.2015
Сообщений: 19,563
Записей в блоге: 14
10.01.2023, 15:22 2
В игре нет бесконечных денег.
Как вы собираетесь переполнить int64?
1K, 1M это привычные игрокам сокращения: тысячи, миллионы (можно написать КК).

Строка или BigInt какой-нибудь.
0
1 / 1 / 0
Регистрация: 29.04.2018
Сообщений: 56
10.01.2023, 15:24  [ТС] 3
Возможно я не правильно выразился. Как можно вообще хранить такие числа? Ну которые предположим уже за гранью int64. Ведь в последующем необходимо покупать какие-то улучшения, на это нужно тратить деньги. А поэтому надо хранить значения денег. Как можно обойти ограничение, но при этом, чтобы сохранялась возможность производить математические операции?
0
Эксперт .NET
10519 / 6445 / 1502
Регистрация: 25.05.2015
Сообщений: 19,563
Записей в блоге: 14
10.01.2023, 15:27 4
Может, я неправильно выразился?

Какое максимальное число в int64 влезает? В какой игре вы видели, чтобы такие числа фигурировали на рынке?

BigInt.

Добавлено через 21 секунду
Может, я неправильно выразился?

Какое максимальное число в int64 влезает? В какой игре вы видели, чтобы такие числа фигурировали на рынке?

BigInt.
0
1 / 1 / 0
Регистрация: 29.04.2018
Сообщений: 56
10.01.2023, 15:29  [ТС] 5
Хорошо, в clicker heroes в определенные момент числа будут в виде 1.000е200 и выше. Как понимаете, подобные числа могут превышать ограничения int. Вот как избежать впринципе переполнения переменной денег?
0
Эксперт .NET
10519 / 6445 / 1502
Регистрация: 25.05.2015
Сообщений: 19,563
Записей в блоге: 14
10.01.2023, 16:40 6
Лучший ответ Сообщение было отмечено LaVaSHoCK как решение

Решение

BigInt - класс, хранящий целое число любой длины. Под каждый язык программирования свой.
В godot вот похожее: Big number class.
Можете своё написать. Создать класс, определить ему математически операции. Для хранения значения задействовать список переменной длины, хранящий байты.

Строки. Любая длина, но нет математических операций, надо писать.
0
2587 / 847 / 73
Регистрация: 21.04.2013
Сообщений: 6,729
12.01.2023, 06:07 8
Лучший ответ Сообщение было отмечено LaVaSHoCK как решение

Решение

Цитата Сообщение от LaVaSHoCK Посмотреть сообщение
Как тогда сделать бесконечную валюту, независимую от ограничений движка на определенные типы переменных?
Бесконечную в техническом плане не возможно. Память конечна. Да и в принципе бесконечного ничего не существует в нашем мире.

Цитата Сообщение от LaVaSHoCK Посмотреть сообщение
Вот как избежать впринципе переполнения переменной денег?
При достижении лимита сбрасывать значение переменной в ноль. Но вопрос у вас, полагаю, другой на самом деле. У вас он скорее больше геймдизайнерский, чем технический, потому что задача стоит сымитировать очень большие значения.

Один из простейших способов реализации создать "счетчик пределов", либо "счетчики счетчиков пределов", если первого мало. Создаете две переменные int64. Первая содержит саму валюту, вторая счетчик пределов это валюты. Когда первая достигает лимита, увеличивать счетчик на +1, и сбрасывать первую в ноль. Причем как вариант можно учитывать с какой стороны достигается предел, если нужно делать, как увеличение счетчика, так и уменьшение. Достигнут предел слева делать -1, справа +1. А используя массив таких счетчиков... игра растянется, мягко говоря, надолго.

Если использовать строки? Тут проблема другая. На минутку гипотетически предположим, что у нас переменная хранит бесконечно большое число. Однако, область вывода такой переменной, иначе говоря область GUI, ограничена. Экранное пространство, внезапно, не бесконечно. Вы об этом думали?
1
1 / 1 / 0
Регистрация: 29.04.2018
Сообщений: 56
12.01.2023, 10:41  [ТС] 9
Цитата Сообщение от Storm Screamer Посмотреть сообщение
Если использовать строки? Тут проблема другая. На минутку гипотетически предположим, что у нас переменная хранит бесконечно большое число. Однако, область вывода такой переменной, иначе говоря область GUI, ограничена. Экранное пространство, внезапно, не бесконечно. Вы об этом думали?
Не думал

Но впринципе вы сказали очень дельную идею по поводу счетчика пределов. Простое решение и мне оно подходит) Спасибо большое!
0
12.01.2023, 10:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.01.2023, 10:41
Помогаю со студенческими работами здесь

Подойдет ли с++ для кликера по интернет страничкам
Добрый день, такой вопрос, нужна программа, которая в браузере нажимала бы определенные кнопки (на...

DisplayFormat (валюта) для Label.Caption
В Label выводится сумма (в string), как её отобразить в формате валюты? К примеру, 865 что бы...

Кто поможет или подскажет в создании серверного кликера для игры дурак?
Слишком умного необязательно)Спасибо

Бесконечная сфера и бесконечная плоскость
Даже не знаю в какой степени это геометрический вопрос, но пересекает ли бесконечная плоскость...

Создать абстрактный класс "Валюта" для работы с денежными суммами. Определить виртуальные функции перевода
С++ ООП Шапка: Построить иерархию классов. Корень иерархии – абстрактный класс с указанными в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru