Блоги

Блоги сайта

  1.  

    Ну во-первых, спасибо @srg91, что подружил меня с selenium'ом и объяснил моей гуманитарной личности куда и что тыкать.

    Толчком к написанию этого скрипта послужила лень, надоело проверять этот и тут понеслось.

    В общем ещё один скрипт мониторящий каждые 30 минут сайт со скидками, где время от времени появляются бесплатные игры, но почему-то в куче возможных уведомлений о бандлах и прочем разрабы не добавили уведомлений при появлении новой игры по выбранному фильтру.

    Сам бот находится тут @ITADObserverBot, но работать постоянно он пока не будет, просто потому, что держать постоянно включенным ПК слишком жирно для единственного скрипта, буду искать вариант, чтобы решить эту проблему. В дальнейшем если не обленюсь и мне этого функционала будет недостаточно добавлю поддержку ещё и линукса и плюх всяких.

     

     

  2. MasterGH
    Последняя запись

    Крестики и нолики.png

     

    Игра с рандомом. Есть счет.

    Запускается через таблицу в аттаче.

     

    Здесь мог быть AI на Lua, возвращающий номер клетки от 1 до 9.

    function InputAI()
     -- рандом
     return math.random (1, 9)
    end

    Извиняюсь, лучше рандома пока не могу предложить.

     

    Скрытый текст
    
    player1Symbol = '1'
    player2Symbol = '0'
    whoStep = 0
    player1Score = 0
    player2Score = 0
    
    function InputAI()
     -- рандом
     return math.random (1, 9)
    end
    
    -- Проверка правил
    function caheckRules(symbol)
    
      -- Комбинации выигрыша
      local tableRules =
      {
        {1,2,3}, {4,5,6}, {7,8,9},  -- горизонтальные клетки
        {1,4,7}, {2,5,8}, {3,6,9},  -- вертикальные клетки
        {1,5,9}, {3,5,7}            -- клетки по диагонали
      }
    
      -- Результат проверки клеток
      local mask = [[
        return UDF1.CEButton%s.Caption == 'symbol' and
               UDF1.CEButton%s.Caption == 'symbol' and
               UDF1.CEButton%s.Caption == 'symbol'
      ]]
    
      for i = 1, #tableRules do
    
        local luaStringCode = mask:format(tableRules[i][1],
          tableRules[i][2], tableRules[i][3]):gsub('symbol', symbol)
    
        if loadstring (luaStringCode)() then
          return true
        end
    
      end
    
      return false
    end
    
    function StartGame()
      whoStep = 0
      for i = 1, 9 do
        loadstring ('UDF1.CEButton'..i..'.Caption = ""')()
      end
    end
    
    -- 1 - ход сделан, 0 - ход не удался
    function Input(indexInput)
    
      if loadstring ('return UDF1.CEButton'..indexInput..'.Caption')() ~= '' then
        return 0
      end
    
      local writeSymbol = player1Symbol
      if whoStep == 0 then
        whoStep = 1
      else
        whoStep = 0
        writeSymbol = player2Symbol
      end
    
      local s = 'UDF1.CEButton'..indexInput..'.Caption = '..writeSymbol
      loadstring (s)()
    
      local somebodyWinner = false
    
      if caheckRules(player1Symbol) then
        player1Score = player1Score + 1
        UDF1.CELabelScore.Caption = player1Score..':'..player2Score
        ShowMessage('Player1 is winner!')
        somebodyWinner = true
    
      elseif caheckRules(player2Symbol) then
        player2Score = player2Score + 1
        UDF1.CELabelScore.Caption = player1Score..':'..player2Score
        ShowMessage('Player2 is winner!')
        somebodyWinner = true
      end
    
      -- Если кто-то выиграл, то очистить поле
      if somebodyWinner then
        StartGame()
        return 1
      end
    
      --  Проверка ничьи
      local countEmpty = 9
      for i = 1, 9 do
        if loadstring ('return UDF1.CEButton'..i..'.Caption ~= ""')() then
          countEmpty = countEmpty - 1
        end
      end
    
      if countEmpty <= 0 then
        UDF1.CELabelScore.Caption = player1Score..':'..player2Score
        ShowMessage('Friendship!')
        StartGame()
        return 1
      end
    
      -- Ходит IA
      if whoStep == 1 then
        ::repeat1::
        local index = InputAI()
        if Input(index) == 0 then
          goto repeat1
        end
      end
    end
    
    
    function CEButtonClick(sender)
      Input(tonumber(sender.name:match('%d')))
    end
    
    function MenuItem1Click(sender)
      player1Score = 0
      player2Score = 0
      UDF1.CELabelScore.Caption = player1Score..':'..player2Score
      StartGame()
      ShowMessage('Restart!')
    end
    
    UDF1.show()

     

     

    Крестики и нолики.CT

  3. zapiso4ki

    • 2
      записи
    • 4
      комментария
    • 259
      просмотров

    Последние записи

    keng
    Последняя запись

    Дорогие читатели!

     

    Мне продолжать этот бложек в текстово-картиночном формате (возможно - с гифками!) или же перейти обратно на формат видеолекций? А может, текстовые статьи дополнять видеопояснениями? Я никак не могу определиться, потому что мне очень странно на камеру объяснять и писать текст (код). Помогите мне определиться, пжлст (в комментариях).

  4. Блог: Alias

    • 1
      запись
    • 17
      комментариев
    • 165
      просмотров

    Последние записи

    Много лет назад подсел я на читы. Читы я не только делаю, но и пользуюсь ими. Все игры прохожу с читами (кроме MMO, в которые очень редко играю). Не помню какую игру прошёл без читов последней. Даже в ГЭГ вешал очки тетриса и силу удара рогаткой по мышам в канализации. Хотя нет, помню - INSIDE прошёл без читов. А чего там вешать-то? В общем, зараза похлеще герыча :( Скажете, с читами неинтересно играть, весь интерес к игре пропадает? Не скажите. Вот когда тебя убивают в 100-ый раз, вот тогда действительно пропадает. А с читами весело)

    И вот я наконец решил "лечь в клинику" и попробовать вылечиться. Чего вдруг? Хочу PS4 прикупить, а там читов не завезли))) Вот буду заранее тренировать скилл игры без читов. Приставку куплю скорее всего чуть позже, смотря как лечение пойдет. А вдруг ломка победит? И зачем мне тогда приставка... Через несколько дней напишу в блоге как продвигается лечение.

    PS да, видеокарточку поменять не смог (читайте блог MasterGH), решил апгрейднуться за счёт приставки.

    PPS на сайте DNS не далее чем сегодня с сайта исчез раздел "Видеокарты", вырезали под корень. Видеокарты в наличии вроде есть, но очень мало, а раздела нету))

  5. Блог Garik66

    • 0
      записей
    • 0
      комментариев
    • 16
      просмотров

    Здесь ещё нет записей