qwertyMAN
-
Публикации
1 009 -
Зарегистрирован
-
Посещение
-
Победитель дней
47
Сообщения, опубликованные пользователем qwertyMAN
-
-
P.S. Булева - это удобная для программирования штука. Вот тебе доказательство этому:
local quit_cash = false --положение кнопки по умолчанию (выкл) local color = { --цвета используемые в программе quit_cash_1=0x00ff00, --цвет активной кнопки (зелёный) quit_cash_2=0xff0000 --цвет пассивной кнопки (красный) } local function draw_quit_cash() local msg,col --устанавливаем локальные переменные (а локальные они потому, что после окончания функции обнуляться, очистив память) if quit_cash then --установим сообщение на кнопки и её цвет, в зависимости от её положения msg=" on " col=color.quit_cash_1 else msg=" off " col=color.quit_cash_2 end gpu.setBackground(col) --цвет который установили gpu.setForeground(0x000000) gpu.set(14, 24, msg) --сообщение которое написали end local function touch(_,_, x, y) if x>13 and x<21 and y==24 then --ловим клик по нужным координатам quit_cash = not quit_cash --переключаем переключатель на противоположное значение draw_quit_cash() --отрисовываем кнопку end endСсылка на полный код: http://pastebin.com/bvxyh7fX
Теперь о коде. Что удобного? Во первых эти переменные повышают читаемость кода. Во вторых тратят минимум памяти. В третьих - гибкие и удобные.
Например сравним if i==1 и if i . В первом случае прога сначала сравнит i и 1, и в случае соответствия выдаст true (тип переменной учитывается, i=="1" выдаст false)
А во втором случае сразу переменная передаёт false или true, увеличив скорость работы.
Ещё одна фишка показана в коде button = not button. Что очень просто и легко обращает переменную. В ином случае тебе бы пришлось строить сложную схему if button==1 then button=0 else button=1 end что увеличило бы время работы программы и усложнило читаемость кода таким костылём.
По всем критериям булева - это крутой тип данных! Впрочем, все типы данных круты, если использовать их по назначению.

P.S. Помнишь я тебе говорил о том что нужно все важные локальные переменные выносить вверх? Я ведь этого не сделал с msg. А ведь мог вначале написать msg_1= и msg_2=. Но дело в том что изменять их значения нет смысла никому. Это не важные переменные. Да и памяти будет лучше если они будут удаляться после завершения функции так как это локальные переменные.
-
1
-
-
Нет, это был не мой замок

По поводу здравой критики: Я знаю про булевые переменные, но просто было лень. Мой способ чтения конфига был тем хорош, что мог прочитать любое кол-во строк и при этом все равно состоять тупо из трех строчек, но раз уж это быдлокод - новая версия! Кстати интересно было бы узнать, как такой замок можно взломать XD
У меня есть основания полагать что это была твоя прога, которая была на компе у игроков, так как там было 3 пароля: Для админа и ещё 2.
В целом очень похоже на твою прогу. Тоже открывает двери, причём у игроков было 2 двери. И кажется 2 пароля как раз открывали эти двери по отдельности. Либо я ошибаюсь и третий пароль просто выходил из проги. Уже и не помню.
Как взломал не скажу, в какой то степени потому что не помню. Но факт в том что на Ctrl+Alt+C закрыть прогу нельзя было и вызывалось сообщение об этом на компе.
Насчёт конфигов, зачем тебе их записывать куда то? Это лишнее. Просто храни в программе всё что нужно как я показал. Так будет и проще и лучше. Я всегда в своих прогах сначала прогружаю библиотеки, потом задаю переменные, и лишь потом пишу функции. И всё что хранится в переменных у меня хранится именно в верхней части кода что очень удобно. Если вдруг кто захочет изменить параметры - сможет легко их изменить, не гуляя по коду в поисках где эта переменная была присвоена (как у тебя происходит с паролем). Так что старайся все важные переменные (которые игроки могут захотеть изменить) прописывать вначале кода. Так будет реально лучше.
Ты говоришь про лень, мне кажется это отмазка. Использовать 1 и 0 вместо true и false - это плохая привычка. У всех кто более менее разбирается в lua или другом языке программирования, глаз режет подобный подход. Будешь учиться писать правильно - будешь привыкать. Привыкнешь к использованию всех типов данных по назначению - будет намного проще и удобнее программировать. Я вон за 3 часа 150 строк кода написал - в итоге рабочий кликер в майнкрафте. Для меня это уже достижение в скорости, но и это не предел.
Вот тебе совет. Бери чужой код и разбирайся. В оптимизации это сильно помогает. А без оптимизации обучение стоит на месте. Тут один игрок мне подсказал как круто использовать оператор %, теперь я с радостью его использую там где мог бы быть костыль. Чужой код рулит.
-
redstone=1 - либо 0 либо 1. Если стоит 1, то в системе должна быть плата на красном камне.network=1 - либо 0, либо 1. При 1 в системе нужна беспроводная сетевая плата для корректной работы.В таких случаях обычно ставят true и false. Такие переменные занимают всего 1 бит памяти как я понимаю. Так что для работы и чтения кода 0 и 1 писать - плохой вариант.
Используй всю мощь разных типов данных lua. Вот прям сейчас зайди в гугл и забей: "типы данных lua", почитай повнимательнее что и для чего используется.
P.S. Подумай о людях. Добавь в описание простую и удобную ссылку на код.
А то я заметил, что при выкладывании работы многие недооценивают лень пользователей. Всё желание пропадает читать код, когда сам разработчик поленился прямую ссылку выложить.
Извини, но это уже 100% быдлокод:
local words = {"password=", "adminPass=", "redstone=", "RedCorr=", "RedIncor=", "network=", "port="}
Правильно было бы написать вот так:
local words = {
password = "qwerty",
adminPass = "asdfgh",
redstone = true,
RedCorr = 3,
RedIncor = 3,
network = false,
port = 123
}
А то как ты решил это меня совершенно не устраивает. Ты решил всё записать в строку, потом как то разрезать всё на кусочки и взять пароль. Спрашивается зачем? Можно было легко и удобно сразу все переменные задать и не мучится. А когда проверка на редстоун будет писать вот так: if redstone then ... end Пока redstone равна nil или false - условие не выполняется, в других же случаях выполняется. А в остальном код неплохой.
-
Да, спасает. Во всяком случае в моей программе

Это случайно не тот замок что 2-3 месяца назад я взломал и поменял пароли? Там ещё 2 игрока жили в доме.
И заприватил тоже я, если речь идёт про тот самый комп.
-
Подсвечивать доступные для покупки кликеры.Этим сейчас и занимаюсь, а именно внедрением кнопок "buy" и "max" которые есть в большинстве хороших кликеров. Они будут доступны или закрыты в зависимости от денег.
А так же подправлю баланс в сторону хардкора, ибо лучше сложно чем легко.
Ждём обновлений.
P.S. Я люблю жанр кликеров, но не могу понять в чём цель игры. Чтобы поиграть пока не надоест? Если подскажите какую цель внедрить, будет очень полезно. (вводить достижения смысла не вижу)
Вообще весь жанр таких игр довольно противоречив. И игрок и разработчики как правило не в курсе чего хотят.
-
ну ты покупаешь допустим 1 клик в секунду, а значит автоклик, который кликается за тебя =_=
Технически это "работники" От них зависят сколько будет денег приходить в секунду.
А клик - это отдельная функция, которая не зависит от времени.
но вот после покупки автоклика, висит старый счет и не всегда понятно скок денег осталось.То есть счёт не обновляется? Странно, всё должно работать как надо.
Но ладно, сейчас внесу некоторые правки для улучшения игры. Но два вопроса я сейчас не могу решить: это система сохранений и отображение больших чисел.
Возможно позже разберусь и смогу внедрить их.
-
Да я понимаю что счет обновляется каждую секунду, но вот после покупки автоклика, висит старый счет и не всегда понятно скок денег осталось.
Что за автоклик?
Насчёт баланса, я насчёт него особо не зацикливался, настроил более менее и всё. Да и не понимаю как большие числа хранить, переменные рано или поздно забьются. Что сильно ограничивает в настройке баланса.
-
Заценил, я как любитель кликеров доволен, но так же как любитель кликеров в печале что после покупки апгрейда в 2к щелкать самому пропадает смысл, так как разница между 100 в сек и 1 в клик велика, смысл гробить мышку просто пропадает и превращается в дикое ожидание. Если не против гляну исходники, может можно дотулить апгрейдов на клики и тд, а так же сделать сейв счета иначе игра просто не имеет смысла, начинать каждый раз сначала просто бред))
А в целом лойс за идею!
Если хочешь, допиливай прогу, делай улучшения клика и выкладывай что получится. Главное в список авторов потом меня занеси.
-
Добрый день, игроки.Сегодня, вашему вниманию представляю игру, написанную под OpenOS - Open Clicker v0.1Что есть в игре:- Печенька по кторой можно кликать и зарабатывать деньги
- Покупка разного рода "рабочих" которые автоматически добывают печеньки
- Учёт заработка и текущих денежных средств
- По всем правилам кликеров здесь цена за "рабочих" с каждым разом покупки увеличивается
- Типичный кликер, наверное первый под OpenOS
- Выход из игры по нажатию кнопки "exit" или по достижению 10^2 денежных средств
- Возможность легко отрегулировать настройки игры (но не даю гарантии что с другими настройками будет всё адекватно работать)
- Защита от сочетания клавиш Ctrl+Alt+C
- Адекватная работа на компах 2 и 3 уровня (игра подгоняет экран под разрешение компа 2 уровня, а при выходе восстанавливает прежнее разрешение экрана)
- Возможность перезагрузить игру
- Сам жанр игры (поставил прокачиваться и ушёл по своим делам)
- Переключатель on/off (если включена, то игра сама завершится при 10^2 $ и более на счету)
Скрины:
Видео обзор:
Чего нет в игре:
- Сохранений (при выходе все данные стираются. При выигрыше тоже)
- Учёта какой ник у игрока и прочей личной инфы о игроке
- Поддержки компов 1 уровня (из-за разрешения экрана)
Установка игры:
pastebin get -f bvxyh7fX OpenClicker.lua
Код игры:
Если вы не полезете в настройки и код игры что то менять, думаю игра будет работать как надо. По крайне мере баланс мне кажется я настроил достаточно удачно, он практически такой же как и в других кликерах.
С вами был qwertyMAN, удачной игры!
-
3
-
как сделать внутриигровой буфер?
Отредактировать OpenOS, добавить в него возможность копировать и вставлять текст из/в глобальную переменную text.
Ну или можно найти где нибудь нормальный редактор под OpenOS.
Кстати, я читал что блок адаптера может контактировать с звёздными вратами. Так что возможно у тебя и удастся передавать адреса. Поищи документацию по адаптеру.
-
Теперь в каждом новом видео светится моя прога

-
Молодец, для начинающего программера ты очень силен в ЯП.Серьёзно?
Для новичков поясню - мы добавили библиотеки term и os.Команда os.cleep() работает, даже если не подключать библиотеку os. Так что это было лишним.
Вторая создает прерывание в бесконечном цикле (while) каждую секунду (os.sleep(1)).Будь моя воля, я бы заменил os.cleep(1) на msg = {event.pull(1,"key_down")} и прикрутил бы управление, например выход из программы на какую либо клавишу if msg[4] then return (или break) end
Хм, но конечно от такого "прикольного" цикла ясно дело, что будет забита оперативная памятьИнтересно, с чего ты так решил. Там ведь кроме подключения библиотек, не куда больше не записывается информация.
и выводит в целом одни и те же сообщенияПолностью согласен. В данном случае цикл не оправдан. Если бы инфа была важной и постоянно менялась, цикл имел бы смысл. Ну вот например я в игре Cube принтил читерную инфу о том как я далеко от выхода. Ну и кроме этого прочую инфу, вот скрин:

Но даже там я не использовал цикл с задержкой в 1 секунду. Там была пошаговость. Прога ждёт пока ты нажмёшь клавишу и запускаются все процессы.
-
Была бы это игра, бы ли бы в ней правила, тогда можно было бы надрываться. Запустил, оказался в комнате #0, нажал кнопку - победил. Думаю: "лол, орлянка и то, интересней".
Думаю ты не видел полную версию под OpenOS. Там уже нормальная генерация и всё норм работает в отличии от той бета версии что я выкладывал в самом начале.
Можешь посмотреть, там уже и правила и всё есть.
А сейчас я над портом занимаюсь, ведь в OpenOS сильно не развернёшься чтобы ввести предметы и прочее что задумал.
-
А зачем это? Если я пройду твою игру за комнат 20, зачем мне ждать пока запушит свойства в 1к комнат?
Для того чтобы не хранить данные по двум таблицам, а объединить в одну. Да и чтобы по ходу игры не заботится о прогрузке комнат.
Обычно при игре откидывает в дальнюю комнату, которая в 30-40 комнат от выхода. Выбраться с неё к 5-8 комнат от выхода легко, но потом ты ходишь по всем комнатам с этим показателем. Надо будет сделать статистику и проверить, действительно ли комнат с такими показателями больше.
Так что врятли пройдёшь вслепую точно на выход за 30 ходов.
-
Скорее всего проблема в алгоритме расчета расстояния до выхода (бесконечный цикл или вечная рекурсия). При правильном подходе много памяти это жрать не должно.Да нет никакой рекурсии, просто комнат в такой игрушке много. Ограничение стоит на 1000. А в реале будет 500-800. Максимум 1000. По моему это достаточно большое число. 1000 ячеек таблицы, в каждой из который записаны свойства комнаты. Хотя, для реального компа может и не проблема будет. Я собираюсь сделать предзагрузку комнат перед игрой, чтобы у них сразу все свойства генерировались эту огромную таблицу.
Насчёт алгоритма. Он так устроен что в конечной таблице на выходе получаются только номера комнат и степень их удалённости. Ничего лишнего (пока что) в виде прочих свойств. На данный момент в версии под OpenOS свойства, например цвет комнат, хранится в отдельной таблице, которая генерируется по ходу игры (дабы не забить память), а та первая таблица со статистикой по задумке должна была удаляться чтобы освободить память. Но я решил её оставить, чтобы всегда видеть в каком направлении иду к выходу (так как по ней можно ориентироваться смотря на степень отдалённости)
-
А в реале на каком языке пилить собираешся?
Сначала на lua, так как относительно хорошо его знаю. А потом если игра будет норм, будут норм текстуры (с чем у меня проблема), тогда можно будет уже полноценный язык изучить и переписать игру.
В принципе не должно возникнуть никаких проблем с нагрузкой на процессор. А вот с требуемой памятью проблема может и появится.
Например, я в прототипе под OpenOS сделал такую полезную функцию, которая все случайно созданные комнаты прогружает и заносит в таблицу, указав в этой же таблице минимальное расстояние до выхода. В добавок в этой таблице будут хранится свойства комнат, давление, температура, разного рода вещи, ловушки и прочее. То есть нагрузка больше падает на оперативную память чем на процессор или видеокарту. На процессор нагрузка падает только вначале, когда всё генерируется и заносится в память. А графон 1 лвл, даже если постараться, никак не будет падать ниже 60 FPS при игре.
P. S. А вообще я не понял вопроса. Все 3 варианта которые я расписал в теме и так задействуют только язык lua.
-
PS: Хватит вставлять свистоперделки всякие в пост. бальшии тексты, на 20 мониторов. ужосъНу да, просто я не знаю как ещё сделать текст более читаемым.
-
Добрый день.
Сегодня наткнулся вот на какую мысль. У меня ведь есть игра Cube. Идея моя, реализация тоже. А почему бы не сделать полноценную игру из того что есть.
Для тех кто не знает о чём игра, вот пояснения правил игры:
Вы оказались в самой удалённой комнате от выхода, ваша цель - добраться до комнаты номер 1. Все комнаты пронумерованы в специальном порядке. Игровой мир представляет собой абстрактный граф (если не знаете что это, загуглите) в котором комнаты из игры являются узлами этого графа, а рёбра графа - 4 двери выходящие в другие комнаты. Впрочем дверей может быть и менее 4, но не менее 1. Игра абсолютно проходима и проверить демо версию можете здесь http://computercraft.ru/topic/1378-igra-kvantovyi-labirint-kvantovyi-kub-os/?hl=cube Самое интересное, что пока вы не находитесь в комнате, её двери не имеют направления, комната находится в состоянии суперпозиции. Как только вы зашли в комнату, двери приняли своё случайное положение.
И тут я стал перебирать, что я могу сделать для продвижения разработки игры. Пути развития игры я для себя нашёл 3:
- Продолжать разрабатывать как игру под OpenOS (майнкрафт), где слабая графика, низкие возможности, 2D графика.
- Написать мод-мини-игру под майнтест, где будет уже 3D графика, больше простора для реализации (ловушки всякие и прочее), а так же дополнительные выходы из комнаты вверх и вниз (то есть 6 выходов из комнаты вместо 4 как в оригинале)
- Написать нечто большее с нормальной 2D графикой, без ограничений и сделать самостоятельную игру на движке love2D (если знаете другой хороший lua движок сообщите мне пожалуйста)
Из этого мне понравился последний вариант и я решил набросать идеи для геймплея. Вот что из этого получилось:
- Игрок имеет показатели голода, здоровья, кислорода, давления и температуры
- Игрок имеет инвентарь на 10 вещей (примерно)
- Игрок двигается не попиксельно, а полноценно, как и всё что будет в игре отображаться
- В комнатах расставлены ловушки (турели, комнаты без воздуха, комнаты с большим атмосферным давлением, радиоактивные вещи и прочее)
- По комнатам разбросаны вещи (но некоторые могут быть заражены и вы об этом не узнаете напрямую)
- Вы можете разливать краску (разных цветов) в качестве меток, если найдёте её (ограниченное использование)
- Вы можете писать на стенах мелом (разных цветов) что угодно, если найдёте мел (ограниченное использование)
- Вы можете так же найти осколок и писать им на стенах, но будет тратится сила (неограниченное использование)
- Вы можете найти еду и восполнить сытость (еда может быть отравлена или заражена радиацией)
- Вы можете найти дозиметр который проверяет вещи на радиоактивность (радиоактивные вещи медленно уменьшают жизнь)
- Вы можете найти барометр который позволит проверить давление в комнате, а так же термометр (там где эти показатели ниже или выше нормы долго находится нельзя, а без этих инструментов вы не узнаете давление и температуру комнаты)
- Вы можете найти палку, которая позволит измерительные приборы пускать в комнату не заходя в неё (например пустить детектор кислотности в комнату где распылена кислота и таким образом не умереть от неё)
- Вы можете найти анализаторы газа, они показывают из чего состоит атмосфера комнаты (содержание кислот, щелочей и прочее в процентах)
- Вы можете найти спички (которые при активизации могут взорвать комнату с гремучим газом), а так же полезны в тёмных комнатах
- В игре можно найти листок/тетрадь и карандаш (по отдельности) которые позволят ввести ограниченное количество символов и вести записи.
- В игре можно будет найти клубок ниток, которым можно будет прокладывать из комнаты в комнату видимый путь (длинна клубка выражается в максимальном числе комнат) (следует помнить что двери меняют своё местоположение и вернуться назад не так просто как вам могло бы показаться без клубка)
Вот в принципе и всё, я рассказал о возникших идеях и возможно как будет время примусь их осуществлять.
А пока предлагаю вам, оценить данную задумку и высказать своё мнение по этому поводу. Что вам нравится, что нет, что я забыл перечислить и что нужно ввести в игру.
-
2
-
@@qwertyMAN, было бы желание, в майне всегда есть чем заняться))
Особенно таким психам как мне)
Хотя да, вот как раз про строительство я совсем забыл. Вот это реально крутая штука. Можно вечно ресурсы собирать, чтобы потом построить что то грандиозное.
Особенно с чизелем можно и не такое понастроить. Мне в нем особенно асфальт нравится который врубает постоянный бег. Можно полноценные трассы строить без участия всяких вагонеток.
Кстати, поздравляю с 1К

-
@@qwertyMAN, скажу так, там попаболь, хваленный "супирпупир" ихор - ватная фигня, крафт которой тот еще головняк, как бы ты круто не был одет сколько бы рунного щита у тебя небыло, толпа тебя изнасилует на раз плюнуть, а акробатика действительно пассивно качается от твоих падений)
По предсказаниям древних, игроки которые неплохо развились на IT и которым наскучила игра переходят
на тёмную сторону силыв класс воинов. Что и произошло. (в тот момент когда я начал афкашить, а потом и вообще свалил)Думаю так же будет и с магиком. Разовьются игроки, делать будет нечего и начнут бегать гриферить, убивать, грабить корованы, да скуумой баловаться. Что им ещё делать когда сделают всё что можно в моде? Это не прогерский сервер где развился и сиди программируй. Тут будет скука когда цель игры будет достигнута.
-
а то один лучник, травник и рыбак с акробатикой качается))Акробатика?
То есть надо как в Морровинде просто прыгать всегда и скилл автоматически качается? А у вас там случайно не поставлен на магике мод чтобы как в Морровинде можно было каждый ботинок по отдельности одевать и зачаровывать, носить многослойную одежду? А может как и в Морровинде у вас там можно при торговли цену самому назначать и портить/улучшать отношения с нпс продавцом?
А может у вас там есть интересные квесты, вилка-щекотка, аргониане, каджиты, скуума, имперцы, данмеры,
сладкие рулеты, приведения, которых нельзя убить холодным оружием, а только магией, жизни и мана которые восстанавливаются только при сне, случайные события которые могут прервать сон, позитивные эффекты после сна, зачарование левитации, телепортации и хождения по воде?А может у вас на магике есть огромный красивый город Балмора построенный прямо на реке? А может у вас там есть настоящие силт-страйдеры для путешествий?
Ну так что? Атмосферный у вас магик то? (я сам заценить не могу, 2 FPS и всё такое)
-
opencomputers на 1.6.4?
из railcraft'а
Переходи на 1.7.10, скачай моды самые свежие.
-
А ты Алекс знаешь как я люблю мобовЕдинственный запрет, причину которого я понять не могу, это запрет на лошадей во всех мирах.
-
Хуже как минимум за то, что анимация пропала
-
1
-

Energy Info v1.0 (Следим за энергией в сети)
в Программы новичков
Опубликовано:
Я это ещё год назад осуществлял в игре про бактерий. Тогда я даже про cc.ru не знал. Правда после обновления, "разноцветную" строку роста бактерии решил снять. Но не в этом дело. Всё очень просто реализуется. Плавный цветной градиент просто осуществить.
У нас есть функция что принимает 3 цвета. RGB. (если нет, то юзаем мою библиотеку конвертор). Итак, что нам нужно? Переменная test где хранится значение. Переменная max где храним максимальное значение переменной test. (за минимальное будем считать 0) Мы ставим на переменную отвечающую за красный цвет формулу r=math.modf(255/(test/max)) и на зелёный цвет g=math.modf(test*255/max). А на синий b=0. Таким образом у нас цвета плавно перетекают от красного через жёлтый в зелёный. Но увы с 8-битным цветом все эти фишки малоэффективны. Не ну красиво будет мне кажется.
В любом случае, чтобы преобразовать 3 цвета в одну переменную и обратно, используйте мою библиотеку conv: http://computercraft.ru/topic/1387-universalnyi-konverter-sistem-schisleniia-i-tcv/?hl=conv
Я уже сказал как. Действуй! Нужна будет помощь - обращайся. В математических алгоритмах постараюсь помочь.
Здесь очень здорово будет использовать библиотеку note. Она есть в самой OpenOS. Можно небольшую мелодию из пары нот составить и в цикле с задержкой прокручивать пока не восстановится энергия.
А вообще бред бредовый, юзать комп ещё сильнее, на то чтобы предупредить о том что энергии мало. Хотя как знать, сколько там энергии бипалка тратит.
dases, если не в курсе как это сделать, то всё очень просто. Берёшь переменную и записывает максимальный объём чего либо max=цифра. Берёшь переменную с тем что надо измерить test=цифра. Переводишь показания в проценты test=test*100/max далее выводишь инфу вот так print(test .. "%").