Перейти к содержимому

qwertyMAN

Пользователи
  • Публикации

    1 009
  • Зарегистрирован

  • Посещение

  • Победитель дней

    47

Все публикации пользователя qwertyMAN

  1. qwertyMAN

    Рабочее место qwertyMAN'a

    Здравствуйте, программисты и гости данного форума. Сегодня я бы хотел вам продемонстрировать, в каких условиях я пишу программы, чего я добился и что для себя подметил. Сначала я создал новый мир и поселился в уже отстроенном доме деревни. По ходу написания программ жители сильно раздражали и я их всех перерезал. Вот собственно моя лаборатория: Вот я написал и тестирую игру Cube v1.0: Там же я и тестировал свою библиотеку "Converter". Но через время я решил написать серверную версию игры Cube и сделал более удобную тестовую комнату: Вид сзади: По идее комната имеет удобно расположенные 2 компа и 1 сервер. Чтобы тестировать игру за двух игроков. Но пока ещё до этого как то не дошло. Вместо этого мы имеем 1 сервер, для написания "сердца" программы (которая на данный момент принимает и принтит запросы, а затем отправляет ответ обратно): Один комп, который программируем на отправку-принятие запросов и отображение происходящего в игре: (На первом скрине мы нашли 4 работающих сервера, их имена, и показали их порты. На втором попытались подсоединиться к несуществующему серверу и получили ошибку) А также есть один комп, который в цикле показывает какую клавишу мы набираем и ник игрока который нажал клавишу: (Мне очень удобно иметь такой комп на своём рабочем месте. Так как при написании я ориентируюсь на компы 1 и 2 уровня, я не делаю кнопочек. Вместо этого я использую только текстовый интерфейс, только консоль. А чтобы делать текстовый интерфейс, нужно знать номер клавиши. Этот комп как раз позволяет за секунды найти номер нажатой клавиши) Что же касается разработки "Cube online", я над ней работаю, по крайне мере основу которая находит сервера уже сделал. Возможно эти наработки буду использовать в другой серверной игре, так как меня пугает сложность переписывания кода игры Cube. Она заточена под одиночную игру. А тут надо пол кода сносить и писать заново, чтобы поддерживались несколько игроков. Впрочем, удручает и следующий фактор: не кто не станет готовую серверную версию игры ставить на сервер IT. По этому и не спешу разбираться с кодом и переписывать. Скорее уж что нибудь по проще сделаю на основе этих наработок. С вами был qwertyMAN, увидимся позже. Ссылки: Игра Cube v1.0 Библиотека "Converter"
  2. Мда, посмотришь на весь проделанный труд и писать библиотеки желание пропадает. Как много полезных функций. Я то думал как раз вчера, написать библиотеку работы с цветами или дописывать игру Куб. Выбрал второе.
  3. Пробовал разобраться с форматом .abc, но потом бросил и написал вручную. Очень уж хотелось послушать что нибудь от робота.
  4. Странно, что отсутствует элементарная функция "обратить цвет". Или например переводчик в чб тона.
  5. Те кто хотят проверить игру на наличие багов, могут свободно юзать этот режим игры. А кто хочет нормально поиграть, конечно же не будет включать. Это же отключаемая функция. Она нужна для: 1 выявления багов, 2 подтверждения, что игрока действительно заносит в самую дальнюю комнату на карте. 3 для исследования этого графа. Мы в прямом смысле путешествуем по графу, где можем просмотреть удалённость данного узла (комнаты) от начальной точки. Немного побродив в случайных направлениях понял, как бы не была запрятана комната, хоть 64, игрок всё ровно спокойно проходит рандомом до комнаты близкой к выходу на 7-8 комнат. Продолжая путешествия, цифра колеблется от 6 до 8. Потому что таких комнат много, в среднем 200-400 штук. Хотя точных данных сказать не могу. Не сортировал пока ту статистику что у меня есть по комнатам. Хотя это не сложно сделать. В том то и дело, что я не понял как работают эти беспроводные карты. Нужно разбираться. Вон там на скринах я пытался что то включить. Как разберусь и будет время, попробую сделать серверную версию.
  6. Вот и настал этот день! Вышла полная версия игры Cube! Обновление v1.0 Полностью изменён алгоритм запутывания (теперь вас забрасывает в самую дальнюю от выхода комнату) Изменены случайные формулы для дверей. Теперь их более проще вычислить, зато сложность выбраться вслепую возросла. (стало больше комнат) Теперь вначале уровня ведётся статистика (количество комнат, самая удалённая комната и прочее. Добавлены индикаторы (люблю делать индикаторы) которые включаются на кнопку "I". Удобный инструмент для выявления багов. Но во время игры использовать только в ознакомительных целях. Добавлен адекватный гуи. Теперь перед выходом будет запрашиваться разрешение, начать игру можно только нажав на enter и прочее. Добавлены и изменены горячие клавиши. Скажу лишь одно, чтобы открыть меню помощи (help), нажмите кнопку H и увидите все горячие клавиши. Кое что изменил в коде, чтобы стал более читаем. Может работать на компе 1 лвл. Но теперь требует память не менее 2 ур. Желательно больше, чтобы ошибки не ловить. Скрины: Что же касается индикаторов. Они показывают: какая максимальная глубина запутывания от выхода, сколько всего комнат в кубе, далеко ли вы находитесь от выхода (количество комнат), 4 формулы для дверей (которые кстати меняют своё местоположение), прогресс - насколько вы прошли игру, color - текущий установленный цвет для меток. Я их сделал 7, но можно и больше дополнить. P.S. Если руки дойдут разобраться с интернет-картами, то попробую сделать мультиплеер. Если есть идеи по поводу игры, можете сюда высказывать. Что я собираюсь добавить в мультиплеер: Чат. Всем кто находится с игроком в одной комнате будет приходить сообщение. То есть чтобы поговорить придётся держаться в 1 комнате. Возможность соперничать, убить игрока, телепортнув его тем самым в самую дальнюю комнату. Метки с инициалами. То есть метка игрока qwerty любого цвета, будет отображаться как qw.
  7. А какая разница? Мне кажется важнее читаемость кода, чем всякие переменные в одну букву.
  8. Вот имперский марш который я написал изучая ноты: http://pastebin.com/K1VXCNSw (может быть и не весь, а только отрывок, но всё же рабочий) Запускать на любом компе/роботе/планшете с любой комплектацией. (наличие звуковой платы не требует)
  9. Обновление v0.2 Игра перенесена на новую версию движка, что даёт перспективы для портирования на андроид В архиве теперь 2 файла: для запуска в 32 и 64 битном режиме. По идее игру можно запросто запустить на Linux, движок это позволяет, но у меня нет возможности это тестировать. Если кто сможет это сделать, пожалуйста, скиньте ссылку чтобы другие могли скачать. Вот где можно скачать версию движка под Linux: https://love2d.org Бактерии-мутанты атакуют инопланетян (возможно в будущем будут добавлены инопланетяне, когда будет добавлен 3 этап). Мне просто лень картинку переделывать.
  10. Я проверил. Оказалось количество комнат колеблется от 1 до 1000. Бывает комнат мало, 17 например и их запросто пройти. Даже бывает что из первой комнаты нет выхода из-за непродуманной генерации формул. Я сделал генерацию таблицы с номерами всех комнат и степенью отдалённости от выхода, чтобы иметь представление о размере куба. Так что скоро исправлю. Ждём обновлений.
  11. А у меня есть прога, чтобы робот исполнял "Имперский марш".
  12. Чтобы повысить читаемость кода по идее. А вообще, расширяя алфавит можно сделать совершенно любую систему счисления. Ограничений тут нет.
  13. P.P.S. Я бы мог разделить функции на две библиотеки, но дело в том, что функции работы с цветом связаны с конвертором
  14. Универсальный конвертор систем счисления и цвета Добрый день, игроки. Если вы во время написания своей программы задавались вопросом: "А как же мне перевести один формат в другой", то эта тема для вас. Я бы хотел вам представить свою библиотеку, которая позволяет конвертировать совершенно любую систему счисления в десятичную и наоборот. А так же конвертировать RGB hex формат в обычный RGB и наоборот. Данная библиотека имеет следующие функции: Функции конвертации в десятичную систему счисления: conv.bin(input:number) Конвертирует бинарный код в десятичный conv.oct(input:number) Конвертирует восьмеричную систему счисления в десятичную conv.hex(input:string) Конвертирует шестнадцатиричную систему счисления в десятичную Необходимо вводить текстовый формат "FFFFFF" (не вводить формат 0x000000) conv.Engine(input:number/string, n:number) Движок для предыдущих функций - конвертирует число input:number/string из n системы счисления в десятичную. Необходима для нестандартных систем счисления. Настроена так, что можно вводить и текстовый hex формат "FFFFFF" Функции конвертации из десятичной системы счисления: conv.abin(input:number) Конвертирует десятичную систему счисления в двоичную conv.aoct(input:number) Конвертирует десятичную систему счисления в восьмеричную conv.ahex(input:number) Конвертирует десятичную систему счисления в шестнадцатиричную Возвращает текст в самодельном текстовом hex формата "FFFFFF" (не путать с форматом 0x000000) conv.aEngine(input:number, n:number) Движок для предыдущих функций - конвертирует число input:number из десятичной системы счисления в n-ную. Необходима для нестандартных систем счисления. Функции конвертации RGB кода: conv.getThreeColor(input:number/string) Возвращает три цвета RGB (обозначающие красный, зелёный, синий) Все три переменные имеют значения от 0 до 255 Принимает обычные числа, числа в формате 0x000000 и числа в текстовом hex формате "FFFFFF" conv.getColor(r:number/string, g:number/string, b:number/string) Возвращает цифровой формат RGB, который например можно использовать в component.gpu.setBackground(color) в своих программах Принимает обычные цифры, вот такой формат 0x00 и текстовый hex формат от "00" до "FF" на одну переменную conv.invertColor(input:number) Инвертирует цвет Может быть полезно, чтобы при отображении, текст всегда был виден на фоне. conv.sumColor(color_1:number, color_2:number) Принимает два цвета в формате 0x000000 или в виде обычных чисел Выводит средний цвет, который бы получился при смешивании Примечание: В lua стандартный hex формат 0x000000 автоматически преобразуется в десятичный. По этому поводу я создал свой текстовый hex формат "FFFFFF", вдруг кому пригодится, для отображения print() например. (можно вводить и большие и малые буквы в новом текстовом hex формате) Ссылка на код: http://pastebin.com/tzF3dr0M Ссылка на скачивание (если кому надо): https://yadi.sk/d/lAo2j9SwmjNxv P.S. Кто-то сегодня говорил про плюсы ООП и прочее. Ну что ж, если будет клон моей библиотеки на ООП, я только за.
  15. Нельзя было сделать работоспособную ссылку, чтобы из браузер просто нажать и посмотреть код?
  16. А можно сделать так, чтобы комп выполнял функцию update(), только тогда, когда нажата клавиша или пришёл сигнал с wifi?
  17. А дело в том, куда расставлять ловушки. Конечно можно сделать их рандомными, убрать из тех комнат по которым сюда зашли обеспечив безопасный выход. Поставить их только в тупиках - комнатах с одним входом и без выходов. Но в фильме была фишка, по цифрам вычислять ловушки. А я такую фишку к себе в игру не могу позволить. У меня другой принцип нумерации комнат. Зато добавил возможность пометки комнат как из второй части фильма. Можно хоть бинарным кодом помечать комнаты. Цветов для этого 7 сделал. Вот это действительно важный совет. А то я тут словил ошибку при использовании table.remove() и не мог понять в чём дело. Позже вспомнил что нужно цикл перебора в обратную сторону пускать в таких случаях.
  18. Обновление до версии v0.2 Добавлены следующие преимущества: Выбор цвета метки Установка метки Удаление метки Добавлен индикатор текущего выбранного цвета Теперь игрок ровно в центре монитора отображается Расширены ограничители. Теперь нумерация комнат будет идти до миллиона (ранее до тысячи) Обнаружен баг с появлением в игре сразу же в финишной первой комнате (пока не исправлен) Управление: E - установить метку X - удалить метку Z - выбрать цвет (налево) C - выбрать цвет (направо) Что же касается баланса игры - его нет. Текущий алгоритм запутывания не самый лучший, может заспавнить в сразу в финишной комнате или рядом. В будущем надо будет его переписать. Посмотрел вторую часть фильма "Куб" и решил, что разноцветные метки хоть как то помогут не обращаться игроков к ручке и бумажке. Можно просто сделать ограничитель времени. Не успел - умер. Идей для ловушек как то мало. А с босса смысл вообще? Я даже не представляю как он будет выглядеть. Куб который убивает от прикосновения? Графика ОС и СС слишком слабая для каких то серьёзных спец-эффектов. Только пиксели и можно чертить.
  19. Знаю эту карту на игру Portal. Очень мало комнат, да и по сути совсем не то что было в фильме. Лишь отдалённо напоминает Куб. Я больше не первую часть фильма ориентировался при написании. Там и Кубы разноцветные и заморочки с простыми числами какие то были на счёт ловушек (но у меня ловушек нет). Во второй и нулевой части фильма уже как то не то. Белые комнаты и вообще атмосфера другая. Мне больше первый фильм нравится. P.S. Мне не интересно программировать большинство из того, что есть на этом сайте. Если бы кто идею подал проги, которая связана с вычислениями, я бы с радостью сделал её. Нет вычислений - нет мотивации.
  20. А вообще название темы можно сменить на: "Unix комманды" Ведь судя по названию как то не совсем понятно про что идёт речь.
  21. Планы на будущее: Ловушки в комнатах, это конечно круто, но они могут сделать игру непроходимой. Через комнату с ловушкой нельзя будет пройти, что будет означать непроходимость, возможно ключевой комнаты, на пути на выход. А делать комнаты с ловушками, где ловушку можно обойти, как то фантазии нет. Только комната с минами приходит на ум. По этому ловушки не делал. Так же можно попробовать сделать мультиплеер. Тогда для синхронизации нужно использовать сервер. Который будет хранить всю инфу о комнатах и игроках в памяти. А так же принимать запросы и выдавать инфу. Например, сервер будет проверять, если 2 или более игроков в одной комнате, любое их движение отсылается на компы тем игрокам которые в этой комнате. Если всё же будут добавлены ловушки, можно запросто добавить по 2 штуки ловушка-детектора на игрока. Как в фильме Куб, тапок кинул, если ловушки нет то он возвращается в инвентарь.
  22. Пока вы тут языком трепали, я уже сделал рабочий прототип http://computercraft.ru/topic/1378-igra-kvantovyi-labirint-kvantovyi-kub-os/
  23. Игра "квантовый лабиринт" Добрый день, любители математических головоломок. Сегодня, вашему вниманию я представляю игру "Квантовый лабиринт" (многомерный лабиринт) Идейный вдохновитель: фильм "Cube". Предыстория: Вы очнулись в необычном месте, в комнате с четырьмя дверьми. Поглядев в отверстия для выхода, вы наблюдаете соседние комнаты, точно такие же комнаты разных цветов и с разной нумерацией. В кармане пиджака вы нашли записку, на который написано: "выход в комнате номер один". Но что означают цифры, которыми пронумерованы комнаты? Как найти комнату номер 1 и выбраться из куба? Почему комнаты меняют свои положения? Почему некоторых комнат нет и вместо них тёмная пропасть? Всё это вам нужно будет понять, пока вы будете бродить по просторам квантового лабиринта. Цели: Вы должны понять как устроен "квантовый куб", решить задачу (найти цепочку выходов) к комнате номер 1 и выбраться из квантового лабиринта. А на деле рандомно бегать в поисках комнаты номер 1, не понимать как устроена система нумераций, ловить баттхёрты и проклинать всех кого только можно. Потому что если даже соседняя комната и окажется под номером 1, то вы можете запросто пробежать и даже не заглянуть в неё. Так как мы видим лишь те комнаты, на границе с которыми стоим. Примечание: Нумерация не случайна. Какая бы не была безвыходна ситуация, помните, если вы сюда как то вошли, то можете и выйти по обратному пути. Каждый раз, начиная сначала, правила нумерации комнат меняются. Всегда помните - это не Эвклидово пространство. Комнаты здесь меняют местоположение. Принцип связи комнат напоминает теорию графов. Управление: Стрелки - перемещение Q - выход из игры Any key - пропустить текст Минимальная комплектация: Монитор любой (рекомендую 2 ур, мне он больше нравится) Видеокарта (соответствующая монитору) Жёсткий диск 1 ур Процессор 1 ур Память 1,5 ур (но чем больше, тем лучше. На каждую новую комнату тратится память) Ссылка на игру: http://pastebin.com/1bWVjGLF Скрины: От разработчиков: В файле игры, можно легко изменить отображение комнат так, чтобы все 4 соседние комнаты отображались одновременно. Изначально, степень запутанности начальной комнаты равна не более 20 перемещений от выхода. Можно настроить. Изначально, стоит ограничение на нумерацию комнат, чтобы не уходить в немыслимые числа.
  24. Строить может не кто и не будет, но всё же на комп такую игрушку я сделаю.
×
×
  • Создать...