• Как конвертировать Jquery код в JS?

    twobomb
    @twobomb
    По идее так
    let f = function(e){ 
      if(e.target.parentNode && e.target.parentNode.classList && e.target.parentNode.classList.contains("search-icon"))
      	document.querySelector(".search-input").classList.remove("active");
    }
    document.addEventListener("click",f,false);
    document.addEventListener("touchstart",f,false);
    Ответ написан
    Комментировать
  • Как раньше люди программировали?

    twobomb
    @twobomb
    Перфокарта
    P.S. А гугл создавали также как и сейчас программируют, им просто повезло что они заняли монопольную позицию
    Ответ написан
    1 комментарий
  • Как сделать вывод нажатой клавиши в label c#?

    twobomb
    @twobomb
    То чувство когда до этого писал все в консоли и решил попробовать гуй....
    Судя потому-что это должен быть кейлогер можно сразу пропустить вариант использования события keypress на форму, так как считывание будет только при активной форме и перейти к хукам.
    Первое что попалось в гугле
    Ответ написан
    Комментировать
  • Что лучше выучить, Java или C#?

    twobomb
    @twobomb
    Пфф, тоже мне проблема, выучи все. Никогда не понимал людей которые пытаются зациклится на чём-то одном, попробуй всё и если что-то понравится развивайся в этом. Ну два это мало, нужно больше.
    Ответ написан
    Комментировать
  • Как правильно настроить масштабирование холста при изменении разрешения?

    twobomb
    @twobomb
    Как вариант
    canvas.addEventListener('mousemove', function(event) {
          let scaleFactor = 1150/plan.offsetWidth;
          event = {
            offsetX:event.offsetX*scaleFactor,
            offsetY:event.offsetY*scaleFactor
          }
            for(let i = arr.length - 1; i >= 0; i--) {
    ...
    Ответ написан
    1 комментарий
  • Как сформировать и распарсить битовый пакет в .Net?

    twobomb
    @twobomb
    Можно примерно так
    static void Main(string[] args)
            {
    
                CustomPackage cp = new CustomPackage();
                cp.offset = 3;
                cp.state = true;
                cp.latitude = new BitArray(23);
                cp.latitude.SetAll(true);
                cp.longitude= new BitArray(24);
                cp.longitude.SetAll(false);
                cp.height= new BitArray(24);
                cp.height.SetAll(true);
                cp.speedNS= new BitArray(11);
                cp.speedNS.SetAll(true);
                cp.speedWE = new BitArray(11);
                cp.speedWE.SetAll(true);
    
                var bytes = cp.toBytes();//Пакет в байты 
    
                var p = CustomPackage.FromBytes(bytes);//Пакет из байтов
            }
    
                
        }
    
        
        public class CustomPackage{
            public int offset;// 4 байта смещения
            public bool state;//1 бит - состояние
            public BitArray latitude = new BitArray(23);//23 бита - широта, 
            public BitArray longitude = new BitArray(24);//24 бита - долгота 
            public BitArray height = new BitArray(12);//12 бит - высота
            // 7 бит пропускаем, 
            public BitArray speedNS = new BitArray(11);// 11 бит - скорость относительно оси север-юг, 
            public BitArray speedWE = new BitArray(11);//11 бит - скорость относительно оси запад-восток.
    
    
            public static CustomPackage FromBytes(byte[] arr){
                CustomPackage cp = new CustomPackage();
                BitArray bt = new BitArray(arr);
                int ptr = 0;
                cp.offset = BitConverter.ToInt32(arr, ptr);
                ptr += 32;
                cp.state = bt[ptr++];
                cp.latitude = cp.utilCopyBits(bt, ptr, 23);
                ptr += 23;
                cp.longitude= cp.utilCopyBits(bt, ptr, 24);
                ptr += 24;
                cp.height= cp.utilCopyBits(bt, ptr, 12);
                ptr += 12;
                ptr += 7;
                cp.speedNS= cp.utilCopyBits(bt, ptr, 11);
                ptr += 11;
                cp.speedWE= cp.utilCopyBits(bt, ptr, 11);
    
                return cp;
            }
    
            public byte[] toBytes(){
                byte[] buff = new byte[16];
                int ptr = 0;
                utilWrite(ref ptr, ref buff, new BitArray(BitConverter.GetBytes(offset)),32);
                utilWrite(ref ptr, ref buff, new BitArray(BitConverter.GetBytes(state)), 1);
                utilWrite(ref ptr, ref buff, latitude,23);
                utilWrite(ref ptr, ref buff, longitude,24);
                utilWrite(ref ptr, ref buff, height,12);
                ptr += 7;// 7 бит пропускаем
                utilWrite(ref ptr, ref buff, speedNS, 11);
                utilWrite(ref ptr, ref buff, speedWE, 11);
    
                return buff;
            }
    
            private BitArray utilCopyBits(BitArray source, int offset, int length)
            {
                BitArray b = new BitArray(length);
                for (int i = 0; i < length; i++)
                    b[i] = source[offset + i];
                return b;
            }
            private void utilWrite(ref int ptr, ref byte[] buff, BitArray writeData, int writeBitLength){
                BitArray bt = new BitArray(buff);
                for (int i = 0; i < writeBitLength; i++)
                    bt.Set(ptr++, writeData[i]);
                bt.CopyTo(buff,0);
            }
        }
    Ответ написан
    Комментировать
  • Как плавно стереть линию на канвасе?

    twobomb
    @twobomb
    Метод shift() удаляет первый элемент из массива и возвращает его значение. Этот метод изменяет длину массива.

    Также упростил немного
    Ответ написан
    5 комментариев
  • Как узнать количество элементов в массиве?

    twobomb
    @twobomb
    Console.WriteLine(getCount(moves,Figure.Queen));
    //....
            public int getCount(List<Coords>[][,] arr, Figure figure)
            {
                int count = 0;
                foreach (var c in arr[(int) figure])
                    count += c.Count;
                return count;
            }
    Ответ написан
    6 комментариев
  • Как обойти эту капчу selenium c#?

    twobomb
    @twobomb
    АХхаах капча, смешно...
    Всего на сайте 6 капч с символичным названием, думаю не нужно объяснять сколько на какой звездочек....
    https://ru.topkinder.com/img/captcha/7.png
    https://ru.topkinder.com/img/captcha/8.png
    https://ru.topkinder.com/img/captcha/9.png
    https://ru.topkinder.com/img/captcha/10.png
    https://ru.topkinder.com/img/captcha/11.png
    https://ru.topkinder.com/img/captcha/12.png
    https://ru.topkinder.com/img/captcha/13.png

    P.S. Напишите кто нибудь разработчикам чтобы хотя-бы recapcha прикрутили....
    P.P.S. На самом тут вообще нет проверки капчи на сервере, и selenium тут не нужен.
    Банально шлем POST Запрос application/x-www-form-urlencoded , на адрес https://ru.topkinder.com/ankets
    2 поля , captcha указываем 1, id это id участинка, по идее они идут все по порядку, можно всех перебрать. Всё! Голос учтен. Ну они хотя-бы не очень тупые, они добавляют ip голосующего и при следующем голосе на этот же Id он не учтется, а значит нужно найти столько живых проксей сколько мы хотим накрутить голосов....
    Ответ написан
    Комментировать
  • Как сделать ограничение сбора предметов?

    twobomb
    @twobomb
    public class rock_player : MonoBehaviour {
      static public int rock; 
      public const int MAX_ROCKS = 20; 
    
      [SerializeField]
      public Text TextRock {get { return rock.ToString();}}
    
      void Start(){
        rock = 0; 
      }
    }


    public class RockTrig : MonoBehaviour {
      public int ValueRock; 
    
      void OnTriggerEnter(Collider col) { 
      if(rock_player.rock + ValueRock > rock_player.MAX_ROCKS) {
            ValueRock -= rock_player.MAX_ROCKS - rock_player.rock;
             rock_player.rock = rock_player.MAX_ROCKS; 
    }else{
        rock_player.rock += ValueRock; 
        Destroy (gameObject);
    }
    
      }
    }
    Ответ написан
    Комментировать
  • Как сделать механику прокрутки вентиля?

    twobomb
    @twobomb
    Первое что приходит в голову, на объект вешаем обрабочик down, запоминаем координаты нажатия. и в бул пишем тру что начали крутить Далее на вешаем обработчик на move, там идет получение угла между координатами в которых нажами и текущими координатами и этот угол запоминается. Далее он сравнивается с углом в предыдущем вызове move и если этот угол больше значит крутим по часовой стрелке на смещение равное разнице этих углов к примеру, если меньше то наоборот ... Вешаем обработчик на up и в нем бул пишем фолс, что закончили крутить ну и можно кстате добавить еще один бул, что при отжатии кран начинает плавно возвращаться в исходное положение, закрываться там...
    P.S. Накидал пример на js ну там разберешься, прост юнити у меня нет, ну на ней будет куда проще это сделать
    Ответ написан
  • Как осуществить изменение цвета текста?

    twobomb
    @twobomb
    Прикольно, а оно вообще может работать? Вместе массива вы создаете лист, но не инициализируете его. Да еще и пытаетесь впихивать в него элементы как в массив. Но даже если инициализировать лист и добавлять элементы через метод Add, то всеравно работать не будет. Потому-что получение рандомного индекса стоит перед добавлением этих самых элементов, а значит там будет от 0 до 0....
    P.S. Попробуйте
    void ChangeColors()    {
            targetCountText.color =  (Color)new Color32(Random.Range(0,256), Random.Range(0,256) , Random.Range(0,256),255);
        }

    Если конечно рандомный цвет нужен не из определенного набора..
    Ответ написан
    1 комментарий
  • Что значит создание контракта?

    twobomb
    @twobomb
    Ответ написан
    Комментировать
  • Что означает Pixels Per Unit?

    twobomb
    @twobomb
    100 пикселей на единицу будет означать, что спрайт, который будет равен 100 пикселям, будет равен 1 единице сцены. Это просто шкала, показывающая, сколько пикселей равно одной единице. Это может повлиять на такие вещи, как физика. Установка меньшего количества пикселей для единиц потребует больше усилий для перемещения на одну единицу, чем установка более высоких пикселей для единиц.

    Да, могут быть моменты, когда вы захотите манипулировать пикселями на единицу. Если у вас есть лист плитки размером 16x16 плиток, вы можете подумать о том, чтобы установить количество пикселей на единицу равным 16, чтобы, например, вы могли легко соединять плитки вместе в сцене.
    Ответ написан
    2 комментария
  • Как передать объект любого класса в метод?

    twobomb
    @twobomb
    Ну вродебы все же префабы наследуются от GameObject'a?
    Можно типа такого
    public void CellClick(GameObject o){
       if(o.GetType() == typeof(Car)){
          Car car = (Car)o ;
       //todo
      }
       if(o.GetType() == typeof(Animal)){
          Animal animal= (Animal)o ;
        //todo
      }
    }

    Если манипуляции однотипные, то можно интерфейсы прикрутить
    Ответ написан
    4 комментария
  • Как нормально реализовать подбор/показ предметов инвентарь?

    twobomb
    @twobomb
    У вас _item что передается аргументом, тот и добавляется в массив. А если вам их нужно 8шт, то их же нужно где-то взять. Как вариант передовать ид айтема, а в методе уже создавать. Типа такого
    public static void AddItem(int itemId, int Amount){
    	
    	int inventoryCellCount = 20;//Количество ячеек инвентаря
    	int maxCount = GetMaxCountById(itemId);//Получить максимальное кол-во стека для этого айтема по ид
    	
    	while(Amount > 0){
    		var item = Items.Find(item => item.id == itemId);
    		if(item == null || item.Amount == maxCount){
    			if(Items.Count >= inventoryCellCount)//Если ячейки инвентаря забиты
    				break;
    			item = CreateItemById(itemId);//создает итем по ид
    			Items.Add(item);			
    		}	
    		if(item.Amount + Amount > maxCount){		
    			Amount = Amount - (maxCount - item.Amount);
    			item.Amount = maxCount;
    		}
    		else{
    			item.Amount += Amount;
    			Amount = 0;
    		}
    	}
    }

    P.S. Ну и тут есть недостаток, допустим поднимаем предметов 80шт. а у нас места только на 20 и дальше инвентарь забивается. Тут нужно продумать обратную связь, ну типа банально возвращать остаточный Amount и записывать его в предмет на земле, если он равен нулю то удалять предмет с земле если больше нуля перезаписывать кол-во. Ну или радикальный метод удалять предмет с земли после подбора окончательно, а если всё не влезло то оно изчезнет просто, тут уже на ваш выбор...
    Ответ написан
  • Как нарисовать фрактал "Звезда"?

    twobomb
    @twobomb
    Ща туплю под конец дня, ну мож примерно так
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;
    
    namespace WpfApplication1
    {
        /// <summary>
        /// Логика взаимодействия для MainWindow.xaml
        /// </summary>
        public partial class MainWindow : Window
        {
            const double scale = 0.35;
            const int depth = 5;
    
            public MainWindow()
            {
                InitializeComponent();
                btnStart_Click(null, null);
            }
            private void btnStart_Click(object sender, RoutedEventArgs e)
            {
                double xmid = image.Width / 2;
                double ymid = image.Height / 2;
    
                DrawStar(1, xmid, ymid, 100, -1);
            }
    
            private void DrawStar(int level, double x, double y, double r, int skip, bool isRotate = true){
                double offset = isRotate? Math.PI / 2:-Math.PI / 2;
                const double angle = 4 * Math.PI / 5;
                Polyline star = new Polyline();
                star.Stroke = Brushes.DarkRed;
                image.Children.Add(star);
    
    
                for (int i = 0; i <= 5; i++){
                    var angleT = offset +  i * angle;
    
                    var lx = (int) (x + r*Math.Cos(angleT));
                    var ly = (int) (y + r*Math.Sin(angleT));
                    star.Points.Add(new Point(lx,ly));
    
                    if (level < depth){
                        var newrad = r*scale;
                        var lx2 = (int)(x + (r + newrad) * Math.Cos(angleT));
                        var ly2 = (int)(y + (r + newrad) * Math.Sin(angleT));
                        if(i != skip && i !=5)
                                DrawStar(level + 1, lx2, ly2, newrad, i, !isRotate);
    
                    }
                }
            }
        }
    }

    60e847566900e091965850.png
    Ответ написан
    1 комментарий
  • Как лучше сделать анимацию волны?

    twobomb
    @twobomb
    Можно на канвасе попробовать
    Ответ написан
    Комментировать
  • Выделить числа из строки и найти их сумму в java?

    twobomb
    @twobomb
    String str = text.trim();
    String digits="";
                int sum = 0;
                str+=" ";
                for (int i = 0; i < str.length(); i++) {
                  char chrs = str.charAt(i);
                  if (Character.isDigit(chrs))
                    digits+=chrs;
                  else{
                      if(!digits.equals(""))
                         sum+= Integer.parseInt(digits);
                      digits = "";
                  }
                  
                }
                System.out.println(sum);
    Ответ написан