Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Хочу сделать инвентарь бонусов м изображениями. тоесть в этом инвентаре будет по разным боксам различные бонусы. Появятся они будут в случайном боксе. если этот бокс будет содержать другой бонус то он будет размещён где-то в другом месте. если этот бокс будет содержать тот же бонус то он будет прибавлен количеству этому ещё одному бонус тоесть 1+1. При нажатия на этот бокс бонусом он будет делать команду принадлежащию этому бонусу каким образом можно это сделать
Я вроде что-то сделал но он что-то не хочет прибавлять к существующему бонусу ещё один такой же
Delay "2000"
Random "5" "[bs]"
генерирую случайное изображение (случайный бонус)
While "[bs]" "=" "0" Random "5" "[bs]" EndWhile
Random "12" "[bs2]"
Генерирую бокс куда будет этот бонус вставлен
While "[bs2]" "=" "0" Random "12" "[bs2]" EndWhile
If "[ins[bs]]" "=" "[st]" Math "[nt[bs2]]+1" "0" "[nt[bs2]]" EndIf
Эта команда используется позже когда [ins[bs] будет известна
If "[ins[bs]]" "<>" "[st]" While "[inv[bs2]]" "<>" "" Random "12" "[bs2]" While "[bs2]" "=" "0" Random "12" "[bs2]" EndWhile EndWhile Math "[nt[bs2]]+1" "0" "[nt[bs2]]" SetVar "[inv[bs2]]" "[ins[bs]]" SetVar "[st]" "[ins[bs2]]" EndIf EndIf
эта команда проверяет если в этом боксе есть уже что-то то он новый бонус создаёт в другом боксе. Но я так не понял а как сделать если бонус тот же и он должен прибавить просто число Но он не делает это с кодом
Код
If "[ins[bs]]" "=" "[st]" Math "[nt[bs2]]+1" "0" "[nt[bs2]]" EndIf
Вроде как и получилось. У меня бывает что мозг перестаёт работать без причины. и логика тоже. просто иногда что-то мешает. Уж простите меня.
вот работающий код
Код
Delay "2000"
Random "5" "[bs]"
While "[bs]" "=" "0" Random "5" "[bs]" EndWhile
Random "12" "[bs2]"
While "[bs2]" "=" "0" Random "12" "[bs2]" EndWhile
If "[inv[bs2]]" "=" "" While "[inv[bs2]]" "<>" "" Random "12" "[bs2]" While "[bs2]" "=" "0" Random "12" "[bs2]" EndWhile EndWhile Math "[nt[bs2]]+1" "0" "[nt[bs2]]" SetVar "[inv[bs2]]" "[ins[bs]]" else If "[ins[bs2]]" "=" "[st]" Math "[nt[bs2]]+1" "0" "[nt[bs2]]" else While "[ins[bs2]]" "=" "[st]" Random "12" "[bs2]" EndWhile Math "[nt[bs2]]+1" "0" "[nt[bs2]]" EndIf
kop9000, я частенько не могу понять что именно тебе нужно? Ты говоришь, к примеру, "Оптимизируйте мне код". Каждый код "оптимизируется" исходя из условий конкретной задачи, которую нужно четко представлять. Да, есть общие правила построения "разумного" кода, но они не являются догмой. В твоем коде есть косяки, но ведь работает же!
Ты сам научишься оптимизировать код, когда станешь думать над каждой строчкой. Вот например, это:
Цитатаkop9000 ()
If "[inv[bs2]]" "=" "" While "[inv[bs2]]" "<>" "" Random "12" "[bs2]" While "[bs2]" "=" "0" Random "12" "[bs2]" EndWhile EndWhile
никогда не будет работать.
Попробуй сам разобраться почему?
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
потому что в конце кода нету конца условия if если ты просто проверяешь мои знания
стоп
я понял о чём ты. ну давай разберёмся
If "[inv[bs2]]" "=" ""
начала условия если ячейка пустав
While "[inv[bs2]]" "<>" "" Random "12" "[bs2]" While "[bs2]" "=" "0" Random "12" "[bs2]" EndWhile EndWhile
А ну это понятно. это просто я не удали. оно проверяет ячейку если не пуста он будет заново генерировать другую ячейку но так как у меня условие стоит уже а именно If "[inv[bs2]]" "=" "" то этот код не нужен
Сообщение отредактировано kop9000 - Чт, 24 Ноября 2016, 20:16
Вот от таких "не удалил" (забыл и т.п.) и идут непонятки.
Потому я и говорю, что надо понимать КАЖДУЮ строку кода, иначе будет "казнить нельзя помиловать".
В принципе, ведь сам же можешь уже разобраться "что-к-чему" - надо просто быть внимательнее. К тому же, эта "внимательность" может сэкономить кучу времени, потраченного на вопросы на форумах. Но, почему-то всегда нужно "дать пинка"
Ну, и в качестве "домашнего задания" проанализируй "на оптимизацию" свой последний код (в сообщении 3).
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Купил новый русский компутер и звонит другому: - Слушай, братан! Я тут компутер себе прикупил, так он просит перезагрузиться. Соглашаться или нет? Второй (после небольшой паузы): - Соглашайся, но только не сразу! Иначе какой ты авторитет!
Цитатаkop9000 ()
Random "5" "[bs]"
While "[bs]" "=" "0" Random "5" "[bs]" EndWhile
Проще так:
Код
Random "4" "[bs]" Math "[bs] +1" "0" "[bs]"
Но, если ты так сильно полюбил циклы, то дело твое.
Цитатаkop9000 ()
SetVar "[st1]" "[ins[bs]]" SetVar "[st2]" "[bs2]"
сохранения данных ячейки и бонуса в отдельные переменные для дальнйшего сравнения
Для какого такого "дальнейшего сравнения"? - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
SetVar "[st1]" "[inv[bs]]" нужна для того чтобы когда он генирует в следующий раз [bs] то он сравнивает с предыдущей генерации. и если они одинаковы то просто количество этого бонуса прибавляется
Человек может так сказать, а компутер (точнее - программа)- нет, т.к. у него только либо- правильно, либо - неправильно, и третьего не дано
Цитатаkop9000 ()
надо убрать.
Уже прогресс.
ЦитатаPeter ()
надо просто быть внимательнее. К тому же, эта "внимательность" может сэкономить кучу времени, потраченного на вопросы на форумах.
И не забывать про отладчик!
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться