qwertyMAN
-
Публикации
1 009 -
Зарегистрирован
-
Посещение
-
Победитель дней
47
Сообщения, опубликованные пользователем qwertyMAN
-
-
Если будет только один участник, будем проводить раунд с одним и дадим ему победу. Но я знаю как минимум двух человек, которые могут уже участвовать.Жаль лишь, что не на час-два позже будут мероприятия. Я думал зайти как зритель, посмотреть что там будет. Может и записать ход соревнований. Но увы, в это время буду в колледже.
-
Может поступить мудро, и дисквалифицировать всех, кто был не готов к срокам? Получается стив выиграл. Где его медаль?
-
Когда надо что-то обсудить, чтобы админы об этом не узнали, вы знаете куда можно пойти... (в ирку конечно же (но это не точно))
-
NAPSTABLOOK1337 - логин
Зачем я это написал? Хм...
Наверное потому что могу...

-
А ты разве на нём играешь?
Я на нём в душе играю. Да и без этого сервера, форум может начать терять игроков. Он ведь последний оставшийся в живых.
-
Так Скай же вроде закрывается?
НЕТ! Только не Скай, этот сервер реально крут и он последний работающий (а возможно и вообще последний в истории сс.ру, так как новый открывать не спешат)
-
Ставки - это интересная идея. Тут как раз бы пригодился планшет.Самая главная проблема: так как не производилось раньше таких конкурсов, то никто не знает на что способны игроки. В следствии этого не ясно как будет расставляться коэффициент ставок. Который зависит от шансов определённых игроков на победу. А нужен он, чтобы организатор всегда оказывался в прибыли. (ну или имел большой шанс)
-
Это рационально как чугунная гиря.
Я с интересом следил за предыдущей темой, и не мог не заметить, что после написания самогенерящегося лабиринта там всё сдохло.
Поэтому, после воскрешения, я выкинул все лишние сложности.
Раунды у нас будут по совершенно разным правилам и на совершенно раных аренах. Построить под каждый случай арену не составит особого труда, и позволит оформить её креативно.
Написание генерящего алгоритма под каждый случай, да чтобы оно ещё было и креативно - это двойная работа.
В случае песочницы арена вообще не представляет из себя ничего особенного, для чего там пожет потребоваться генератор.
Это будет огромная пустая комната, с парой тройкой колонн, прямоугоьной или восьмиугольной формы. На полу будет располагаться около 4 стартовых площадок.
Каждая будет снабжена воронками, которые буту уходить под землю, к сундуку. У сундуков будут стоять датчики связанные с компьютером, который будет играть роль Сервера.
Над ареной будет площадка для игроков-зрителей и большой дисплей для инфы.
А когда собираешься строить арену? Где? Если на сервере, то можно я попробую?
-
Это потребует от организаторов влезать в код чужих программ. Это предложение мне не нравится по нескольким пунктам.
Во-первых, это не этично. =)
Во-вторых, придётся читать тонны говнокода, и смущать автора.
Потом, автор может обвинить тебя, что ты "испортил" его код, и из-за этого он проиграл. И докажи потом, что ты не верблюд.
Это всё равно остаётся глючным способом, где многое может пойти не так.
И так далее.
Ок, тогда есть второй вариант.
При создании конкурса писать часть кода, показывать всем как она работает и зачем нужна. Перед тем как провести конкурс не нужно будет лесть в код. Роботы будут проверяться на то, что в них должно быть. На этом этапе игроки могут быть дисквалифицированы, если при проверки их робот не отозвался на нужные команды. И при дальнейшей игре, если роботы будут не подчиняться - будут получать жёлтую карточку за первое неподчинение (которое можно засчитать как глюк). Второе неподчинение во время игры - дисквалификация.
Таким образом можно проконтролировать соблюдение правил конкурсов и введение нужных частей кода, всяких искуственно введённых уязвимостей для "игр в хакеров".
-
1
-
-
Насчёт команды "пауза" и прочих таких штук можно тоже подумать. Но это вещь которая потребует реализации со стороны участника, в софте робота. И она может быть забагована, робот может быть занят другими вычислениями в помент сигнала на паузу и т.п.Как я уже говорил, можно внедрять уязвимые куски кода после того, как код напишут игроки. Чтобы конкурс проводить веселее. В том числе добавлять часть кода, которая будет слушаться организатора конкурса.
Правда могут из-за этого возникать плохие моменты вроде: "какой-то нуб написал прогу, которая после остановки уже не сможет работать как и работала". Хотя не факт, что такие случаи будут.
-
Не знаю какой в этом смысл, но ведь можно создать игру в снежки между роботами. Они ведь могут собирать снег, крафтить блоки снега, строить укрепления, ломать укрепления, стрелять снежками. Хотя в этом нет смысла, ведь снежки не наносят никакого урона.
-
с футболом хороша идея) я уже это представил даже) Робот_4 ведет "булыгу" , обходит Робот_3 и ГОЛ!!)
Можно в одном из раундов дать роботам лазеры и устроить бой)))
Робот_4 ведёт "булыгу", обходит Робот_3 и начинает вести Робота_4. Булыга не понимает что происходит и стоит на месте.
-
2
-
-
Может ещё устроим футбол роботами? У них есть улучшение "поршень". Пусть булыжник гоняют по полю, отбирают друг у друга.
А то скучная пока задумка. Нет интересных особенностей вроде "дал какой-то сигнал и роботы в радиусе 2 блока замерли на 2 секунды".
Нужна интересная задумка. Может после того как игроки напишут прогу, в них будут вставлены куски уязвимого кода, как я уже описал??? Чтобы был хоть какой-то интерес для соперничества.
-
1
-
-
Мне не нравится текущая идя со слепым запуском программы. Хотя я всё ровно и не собирался участвовать.
Ну хорошо, посмотрим, что из этого выйдет. Когда-то давно вроде от Алекса было видео на подобную тему.
Как будете проводить конкурс, можете залить видео на ютуб как это было? А то интересно же.
-
Роботы могут застрять, помешать другим роботам, обложившись около сундука. Может можно сделать проще? Всем участникам дать по планшету с роботом и флайку, а роботы будут под стеклом. Чтобы всё управлялось в реальном времени самими игроками? + будет возможность игрокам делать заготовки, например особые функции, которые они будут активизировать через планшет и которые помогут быстрее роботам действовать.
А то боюсь, что наблюдать за роботами с обычными программами будет скучно.
Пример: Игрок новичёк написал программу которая позволяет через планшет управлять роботом.
Игрок по опытнее написал более крутую прогу, которая меньше тратит батарею робота и которая на клавишу Q может искать выход из лабиринта.
Как по мне, робот который сам просчитал выход из лабиринта, выйдет из него раньше, чем под предводительством игрока.
В конце концов нам нужен доступный всем игрокам конкурс, А не конкурс среди двух игроков. По этому ручное управления я считаю обязательным пунктом. Это даст больше доступности для участия игрокам, коих итак не много.
-
Подкину пару альтернативных вариантов конкурсов.
1. Один стеклянный лабиринт с кучей этажей, чтобы все роботы могли одновременно участвовать. (ну или по очереди давать им участвовать на время)
Для веселья будет возможность открывать тайные проходы с помощью подачи сигнала красного камня. И наоборот, закрывать вход перед собой, для тех умников, что будут постоянно держать сигнал включеным.
2. Гонка от точки до точки в замкнутом пространстве с участием дронов. Препятствия будут например стены, где нужно будет пройти в определённом блоке, повороты коридора и конечно же лазеры.
3. Игра на выживание среди роботов. Роботы быстро должны забрать из сундуков кирки, лазеры и прочие вещи, которые им помогут уничтожить других роботов. Далее они друг друга убивают и остаётся один робот (если он себя конечно не подорвёт динамитом например или если 2 робота одновременно не выстрелят из лазера. Ну или есть маленький шанс, что робот окажется пацифистом и при старте попробует получить хорошую концовку и подружиться с другими роботами)
-
Но ты прав в том, что по индексированному массиву стоит перемещаться юзая индексы. =)Насколько знаю, такие таблицы/циклы быстрее работают. Так что
for k, v in pairs(t) do
в коде надо исправлять.
К тому же, когда будешь использовать циклы, где нужно внутри цикла что-то удалить. Без пронумерованного цикла не обойтись, там нужно будет идти с конца в начало, дабы не словить ошибку, перейдя на номер ячейки которая удалена.
local tb={} for i=#tb, 1, -1 do ... endТак что Боб, привыкай к пронумерованным циклам тоже.
-
1
-
-
Мне кажется, проблема в том, как ты используешь пронумерованный массив.
Если он пронумерованный как у тебя, то лучше использовать цикл
for v=1, #t do -- проходим от 1 ячейки по последнюю в таблице t if v==9 then wY=wY+1; wX=wXst else term.write(draw[v]) wX=wX+1 term.setCursor(wX, wY) end endТвой же цикл:
for k, v in pairs(t) do
Предназначен для непронумерованных таблиц вроде:
tb={ name = "qwerty", v = 123, n = true }И такой цикл выводит элементы таблицы не по порядку. (так как он считает, что нет никакого порядка в таблице)
Вот у тебя и команды и выполнялись не по порядку. Если посчитаешь, то все пробелы, символы # и переносы строк у тебя выполняются в таком же количестве, но не по порядку, что подтвердить мои предположения.
P.S. Кстати да, Totoro прав. Когда ты делаешь перенос строки, то изменения не вступают в силу, так как не производится команда:
term.setCursor(wX, wY)
перед тем как напечатать символ.
-
Если использовать всю мощь многоцветных проводов, у которых 16 цветов в одном пучке и каждый цвет может принимать сигнал от 0 до 255, то для того, чтобы решить задачу перебором, понадобится 2^99, то есть 633825300114114700748351602688 лет.
Это не так уж и много. Ведь если повезёт, то где-то в 3825300114114700748351602688 году алгоритм успеет найти правильную комбинацию до того, как переберёт все варианты.
К слову, вселенной сейчас меньше лет, чем нужно на поиск нужного пароля.
-
Я наверное что-то пропустил, но какой сакральный смысл в этом куске кода?

Можно же просто print(n).
Чтобы показать, что когда мы знаем чему равен n, можно его заменять известным значением.
Разве это не очевидно?
-
Комп можно вручную отрубать спокойно. Тут ты никак не защитишься. Разве что можно прогу поставить в автозапуск. Но тот же запуск с дискеты или второго диска и твой вирус смогут вручную удалить. Даже если он был в автозапуске.
Так что сомневаюсь, что у тебя получится что-то подобное сделать.
-
Rednet Passcode - Пароль меняется, Для особо "умных".А что тут сложного? Создавать случайный пароль при помощи генератора случайных чисел. seed генератора брать из адреса например биоса или карты памяти. Восстановить такой пароль будет очень просто с помощью второго компа.
P.S. Если честно, не понял какое отношение к вводу пароля имеет Rednet. Там же всего 16 входов. Если с помощью него задавать пароль, то его легко можно взломать брут машиной с редстоун картой. Всего-то 2^16 = 65536 позиций пройти. Это примерно 16 реальных часов, с условием, что каждое положение будет меняться раз в секунду. (а оно будет явно быстрее) Например проверка 4 раза в секунду сократит время взлома замка до 4 часов. А зная, что в 1 секунде 20 тиков и каждый тик происходит проверка, то выходит максимально можно открыть замок будет за 55 минут.
И это при том, что это максимальное время взлома. То есть пароль заданный редстоуном можно решить хоть на первой секунде, если повезёт.
-
if n==1 then print(1) Я правильно пронимаю, что print выведет первое значение из таблицы args?Я имел ввиду конкретно этот случай. Когда #args[1] == n == 1. При условии, что эти значения равны, в данной части кода можно использовать как #args[1], так и n, так и просто 1. Соответственно код от этого не пострадает и проще использовать последний вариант.
В других же случаях, когда не известно значение n, такое конечно же не получится. (заменять n уже известным значением вроде 1)
Под "обработать" я имею ввиду задать условие if <условие> then.
Готовый код мог бы быть лучше и выглядеть вот так:
local args = {...} if #args > 0 then -- игнорируем пустую таблицу local n = tonumber(args[1]) if n == 1 then print(1) -- не написал n, потому что в данной части кода он всегда равен 1 else print(n) -- здесь я не знаю чему равен n end else print("Ничего") end-
1
-
-
else n = args[1]Видимо твою проблему уже решили, но мимо этой строки я не могу пройти мимо.
Судя по коду я сначала подумал, что ты хотел написать elseif n == args[1] then
Но потом по правильному ответу до меня дошло, что ты просто забыл поставить перенос строки после else.
Пожалуйста, не делай так больше, это портит читаемость кода.
И ещё небольшой совет по поводу кода. Немного лучше он бы выглядел, если бы ты сначала обработал событие #args==1, а потом уже писал else.
И да, насчёт if n ==1 then print(n), чисто логически, не проще ли написать if n==1 then print(1). Или ты предполагаешь, что если n==1, то во время отображения он не будет равен 1???
И ещё, если таблица args пустая, то #args выдаст 0. Но так как у тебя стоит событие if #args==1 и 0 ты никак не обрабатываешь, я бы посоветовал его заменить на if #args<2 then ... else ... end. Тогда никаких ошибок не должно возникнуть.
-
1
-

Unreal Tournament: Resurrection -- Этап #1
в Ивенты и конкурсы
Опубликовано:
Насчёт версуса планшетов. Каждому выдать нанороботов и планшеты. И пусть игроки играют в догонялки с ломанием чужих нанороботов.
Это единственный вариант, как планшеты могут сражаться.