Как сделать?
…
Талер,
можешь воспользоваться библиотечкой easy.math.
Талер,
приведи конкретную задачу, тогда я объясню, как она решается с помощью множителя.
До тех пор, мне добавить нечего, всё написано по приведённой ссылке.
пожалуйста!
Задача:
вычислить растояние между двумя ячейками.
(не квадрат расстояния, а расстояние)
Axil,
это не задача, это часть задачи. Задачей является то, для чего нужно вычислять расстояние.
Тут чуть выше задавали вопрос про время, у меня возник такой же… воспользовался советом Storm’a сделав дополнительную локацию “Статус” и там задал время:
время=время+5
дни=время/(24*60)
часы=(время-дни*24*60)/60
минуты=время-часы*60-дни*24*60
Как сделать отображение месяцев и дней недели? чтобы выглядело примерно так - 3 февраля Понедельник 23:57 ?
Опять же - если возможность отображать минуты, если они менее 10 с нулём спереди? т.е время - не 23:5, 23:05 ?
DaRkNeSSxSiTH,
! Инициализация при старте игры.
$month_name[] = 'января'
$month_name[] = 'февраля'
...
$month_name[] = 'декабря'
$weekday_name[] = 'Понедельник'
$weekday_name[] = 'Вторник'
...
$weekday_name[] = 'Воскресенье'
! Вычисляем текущий месяц.
month = (days/30) MOD 12
month_day = days MOD 30 + 1
! Вычисляем текущий день недели.
weekday = days MOD 7
! Добавляем ноль к минутам, если требуется.
$min = IIF(min < 10, '0' + STR(min), STR(min))
! Выводим дату и время.
'<<month_day>> <<$mohtn_name[month]>> <<$weekday_name[weekday]>> <<hour>>:<<$min>>'
у меня получилось что -то такое
$month_name[1] = 'января'
$month_name[2] = 'февраля'
$month_name[3] = 'марта'
$month_name[4] = 'апреля'
$month_name[5] = 'мая'
$month_name[6] = 'июня'
$month_name[7] = 'июля'
$month_name[8] = 'августа'
$month_name[9] = 'сентября'
$month_name[10] = 'октября'
$month_name[11] = 'ноября'
$month_name[12] = 'декабря'
month = (days/30) MOD 12
month_day = days MOD 30 + 1
$weekday_name[1] = 'Понедельник'
$weekday_name[2] = 'Вторник'
$weekday_name[3] = 'Среда'
$weekday_name[4] = 'Четверг'
$weekday_name[5] = 'Пятница'
$weekday_name[6] = 'Суббота'
$weekday_name[7] = 'Воскресение'
weekday = days MOD 7
время=время+2
days=время/(24*60)
hour=(время-days*24*60)/60
min=время-hour*60-days*24*60
$min = IIF(min < 10, STR(min), '0' + STR(min))
деньги = 1000
clr
p 'Деньги:<<деньги>> рублей
Время: '<<month_day>> <<$mohtn_name[month]>> <<$weekday_name[weekday]>> <<hour>>:<<$min>>'
Что я не так делаю?
DaRkNeSSxSiTH,
1. Ты проставил индексы элементам массива, а индексы элементов массива в моём коде должны начинаться с нуля. У тебя они начинаются с единицы.
Сделай запись как в моём коде, без указания индекса, тогда они будут нумероваться с нуля. Или просто перепиши индексы, для месяцев от 0 до 11, для дней недели от 0 до 6.
2. Сначала должно быть вычислено общее количество дней (переменная “days”), а потом уже зависящие от неё значения “месяц” (”month”), “число месяца” (”month_day”), “день недели” (”weekday”).
У тебя наоборот. Потому и не работает.
Сделал по-другому
showinput 0
USEHTML = 1
время=время+2
min=время-hour*60-days*24*60
$min = IIF(min < 10, STR(min), '0' + STR(min))
hour=(время-days*24*60)/60
days=время/(24*60)
weekday = days MOD 7
month = (days/30) MOD 12
month_day = days MOD 30 + 1
$month_name[0] = 'января'
$month_name[1] = 'февраля'
$month_name[2] = 'марта'
$month_name[3] = 'апреля'
$month_name[4] = 'мая'
$month_name[5] = 'июня'
$month_name[6] = 'июля'
$month_name[7] = 'августа'
$month_name[8] = 'сентября'
$month_name[9] = 'октября'
$month_name[10] = 'ноября'
$month_name[11] = 'декабря'
$weekday_name[0] = 'Понедельник'
$weekday_name[1] = 'Вторник'
$weekday_name[2] = 'Среда'
$weekday_name[3] = 'Четверг'
$weekday_name[4] = 'Пятница'
$weekday_name[5] = 'Суббота'
$weekday_name[6] = 'Воскресение'
деньги = 1000
clr
p 'Деньги:<<деньги>> рублей
Время: '<<month_day>> <<$mohtn_name[month]>> <<$weekday_name[weekday]>> <<hour>>:<<$min>>'
Не работает… Может я тебя как-то не так понял и не правильно изменил… Я новичёк и только только разбираюсь в программе…
DaRkNeSSxSiTH,
Позовете меня тогда, когда будет готов верный код
Как сделать чтобы на выбраный предмет в инвентаре можно было кликнуть еще раз?
Нужно либо как-то убрать выбор, или перерисовать окно предметов.
можно сделать так:
DELOBJ ‘предмет’
ADDOBJ ‘предмет’
работать будет как надо, но тогда этот предмет добавится в конец списка, а это плохо.
$SELOBJ = ‘’ не работает
Axil:
Как сделать чтобы на выбраный предмет в инвентаре можно было кликнуть еще раз?
Нужно либо как-то убрать выбор, или перерисовать окно предметов.
можно сделать так:
DELOBJ ‘предмет’
ADDOBJ ‘предмет’
работать будет как надо, но тогда этот предмет добавится в конец списка, а это плохо.
$SELOBJ = ‘’ не работает
А индексы для чего?
DaRkNeSSxSiTH,
сначала у тебя должен рассчитываться параметр “days”, потом зависящий от него “hour”, потом в свою очередь зависящий от “hour” параметр “min”. А у тебя всё наоборот.
Oliver:
А индексы для чего?
А как узнать индекс выделенного предмета? $SELOBJ возвращает имя, а не индекс.
переделал так…
время=время+2
days=время/(24*60)
hour=(время-days*24*60)/60
min=время-hour*60-days*24*60
$min = IIF(min < 10, STR(min), '0' + STR(min))
weekday = days MOD 7
month = (days/30) MOD 12
month_day = days MOD 30 + 1
$month_name[0] = 'января'
$month_name[1] = 'февраля'
$month_name[2] = 'марта'
$month_name[3] = 'апреля'
$month_name[4] = 'мая'
$month_name[5] = 'июня'
$month_name[6] = 'июля'
$month_name[7] = 'августа'
$month_name[8] = 'сентября'
$month_name[9] = 'октября'
$month_name[10] = 'ноября'
$month_name[11] = 'декабря'
$weekday_name[0] = 'Понедельник'
$weekday_name[1] = 'Вторник'
$weekday_name[2] = 'Среда'
$weekday_name[3] = 'Четверг'
$weekday_name[4] = 'Пятница'
$weekday_name[5] = 'Суббота'
$weekday_name[6] = 'Воскресение'
деньги = 1000
clr
p 'Деньги:<<деньги>> рублей'
'Время: <<month_day>> <<$mohtn_name[month]>> <<$weekday_name[weekday]>><<hour>>:<<$min>>'