Нахрена хранить позицию в виде битовой карты? Я понимаю, если бы вы играли на поле мегабайт на мегабайт. Но поле 19 на 19 - это всего лишь ~400 байт в виде двумерного массива.
На три километра туда-обратно просто покупаете нормальный механический велосипед со скоростями, и никаких проблем. За такую цену - легко. А если хочешь сэкономить - купи подержанный. Я ещё понимаю, если на 20 километров за хлебушком.
Даже абсолютно нетренированный велосипедист на такое расстояние будет кататься быстро и легко, на тех же 15 км/ч в среднем.
А если уж делаешь электричество - так сделай нормальные рабочие педали, иначе задолбаешься вести его в поводу, когда батарейки сядут.
П.С.
Кстати, рама от детского велосипеда при весе в 132 - она убьётся в момент. Тут нужна и рама и колёса от велосипеда, рассчитанного на 150 кило минимум.
Учитывая категорическую, зашкаливающую некомпетентность, проявленную японцами при аварии на Фукусиме - доверять им без нормального международного контроля, а не того, что проходит за таковой у МАГАТЭ - невозможно.
Лучше всего назначить туда внешнее управление, не-японцами.
На Фукусиме ухитрились взорвать ТРИ реактора, повторяя раз за разом действия, уже привёдшие к взрыву первого реактора.
Это как если бы в Чернобыле после взрыва первого реактора решили устроить "эксперименты" на втором.
Я говорил про xgettext. Задачей которого является парсинг исходников и создание индекса, содержащего все помеченные в исходник тексты.
Перевод как таковой не обязательно должен быть переводом — вполне можно использовать для замены/исправления текстов, т.е. перевод на тот же язык.
Хмм. Есть какая-то причина не использовать gettext?
То есть тексты в исходниках помечаем маркером (вызовом функции)
val textView = findViewById(R.id.text1)
textView.text = _tr(«Real text which you need to translate on multiple languages»)
Далее натравливаем на исходник xgettext, получаем файл индекса в формате .po и далее уже из этого файла делаем входные данные для вашего класса.
_tr — ваша функция, которая ищет текст в индексе, и если находит — возвращает перевод, а если не находит — то ключ.
С точки зрения лицензионной чистоты, если вы используете только xgettext для получения файлов индекса, и не используете библиотеки gettext — ваш продукт не обязан быть GPL. Всё равно как пользоваться gcc для сборки проприентарного продукта.
Аналогичный подход использует, например, библиотека Qt (Qt Linguist).
Разумеется, использовать можно как для переводов на другие языки, так и для любых других целей.
На возню с битовыми операциями вы потратили больше ресурсов, чем эти самые 400 байт.
Нахрена хранить позицию в виде битовой карты? Я понимаю, если бы вы играли на поле мегабайт на мегабайт. Но поле 19 на 19 - это всего лишь ~400 байт в виде двумерного массива.
На три километра туда-обратно просто покупаете нормальный механический велосипед со скоростями, и никаких проблем. За такую цену - легко. А если хочешь сэкономить - купи подержанный. Я ещё понимаю, если на 20 километров за хлебушком.
Даже абсолютно нетренированный велосипедист на такое расстояние будет кататься быстро и легко, на тех же 15 км/ч в среднем.
А если уж делаешь электричество - так сделай нормальные рабочие педали, иначе задолбаешься вести его в поводу, когда батарейки сядут.
П.С.
Кстати, рама от детского велосипеда при весе в 132 - она убьётся в момент. Тут нужна и рама и колёса от велосипеда, рассчитанного на 150 кило минимум.
Машину которая логи пишет подключите через data diode - тогда совсем нормально будет.
Учитывая категорическую, зашкаливающую некомпетентность, проявленную японцами при аварии на Фукусиме - доверять им без нормального международного контроля, а не того, что проходит за таковой у МАГАТЭ - невозможно.
Лучше всего назначить туда внешнее управление, не-японцами.
На Фукусиме ухитрились взорвать ТРИ реактора, повторяя раз за разом действия, уже привёдшие к взрыву первого реактора.
Это как если бы в Чернобыле после взрыва первого реактора решили устроить "эксперименты" на втором.
Перевод как таковой не обязательно должен быть переводом — вполне можно использовать для замены/исправления текстов, т.е. перевод на тот же язык.
То есть тексты в исходниках помечаем маркером (вызовом функции)
val textView = findViewById(R.id.text1)
textView.text = _tr(«Real text which you need to translate on multiple languages»)
Далее натравливаем на исходник xgettext, получаем файл индекса в формате .po и далее уже из этого файла делаем входные данные для вашего класса.
_tr — ваша функция, которая ищет текст в индексе, и если находит — возвращает перевод, а если не находит — то ключ.
С точки зрения лицензионной чистоты, если вы используете только xgettext для получения файлов индекса, и не используете библиотеки gettext — ваш продукт не обязан быть GPL. Всё равно как пользоваться gcc для сборки проприентарного продукта.
Аналогичный подход использует, например, библиотека Qt (Qt Linguist).
Разумеется, использовать можно как для переводов на другие языки, так и для любых других целей.