Author Topic: Массивы  (Read 73626 times)

0 Members and 2 Guests are viewing this topic.

aden

  • Оплот сообщества
  • ****
  • Posts: 363
    • View Profile
Re: Массивы
« Reply #15 on: March 26, 2014, 02:49:56 PM »
[spoiler]
В кликерманне линейные массивы. Можно сделать псевдо-многомерные массивы. Например псевдо-двумерный массив(таблица 100х100) ячейка 45х53
Code: (clickermann) [Select]
$a = 45
$b = 53
$var[100*$a + $b] = 254
print ($var[4553])
halt

О бох мой какая женщина, родите мне сына!!!
[/spoiler]
« Last Edit: March 26, 2014, 02:52:12 PM by aden »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Массивы
« Reply #16 on: March 26, 2014, 03:57:30 PM »
О бох мой какая женщина, родите мне сына!!!

В очередь!


relic00

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Re: Массивы
« Reply #17 on: July 11, 2014, 07:23:42 AM »
А как передать массив в качестве параметра в процедуру?

aden

  • Оплот сообщества
  • ****
  • Posts: 363
    • View Profile
Re: Массивы
« Reply #18 on: July 11, 2014, 07:40:07 AM »
А как передать массив в качестве параметра в процедуру?
ищите ответ в этой теме
http://crapware.aidf.org/forum/index.php?topic=1296.0

Dampil

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
    • @pump_upp - best crypto pumps on telegram !
Re: Массивы
« Reply #19 on: August 13, 2014, 03:31:32 PM »
кстати, про явное объявление типа переменной в контексте доведения скриптового языка до языка программирования - идея неплохая, на мой взгляд. На данный момент, конечно, просто получается скрипт, но некоторые моменты удручают. Не в обиду автору, всё равно работа неслабая проделана. СПС "от сердца и почек" :D
« Last Edit: August 13, 2014, 03:43:56 PM by Dampil »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Массивы
« Reply #20 on: August 13, 2014, 04:18:32 PM »
кстати, про явное объявление типа переменной в контексте доведения скриптового языка до языка программирования - идея неплохая, на мой взгляд. На данный момент, конечно, просто получается скрипт, но некоторые моменты удручают. Не в обиду автору, всё равно работа неслабая проделана. СПС "от сердца и почек" :D
"явное объявление типа переменной" и так было в версиях 4.с мелочью, от них отказались и сделали динамическую типизацию. Кликер всё-таки не C++ и так новичкам трудно.


Dampil

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
    • @pump_upp - best crypto pumps on telegram !
Re: Массивы
« Reply #21 on: September 13, 2014, 11:33:33 PM »
"явное объявление типа переменной" и так было в версиях 4.с мелочью, от них отказались и сделали динамическую типизацию. Кликер всё-таки не C++ и так новичкам трудно.

"Согласные мы" :) Каждому - своё. Просто при некотором опыте С и иже с ним тоже достаточно сложно "вписаться" местами(см. мой пост "первый скрипт комом")
Как говорится, "в конце концов среди них же" просто выразил своё не претендующее на правоту мнение.
Да и в случае явного объявления придётся делать достаточно много функций преобразования между типами. Как бы то ни было, всё решит автор(не в обиду ни в коем случае) и наличие у него свободного времени
« Last Edit: September 13, 2014, 11:37:24 PM by Dampil »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Массивы
« Reply #22 on: September 15, 2014, 11:48:53 PM »
INT преобразует строки в числа.

Code: (clickermann) [Select]
ARRPUSH($arr, 4)

$a = INT(ARRPOP($arr))
$b = $a + 1
LOGWRITE ($b)

HALT

AandD

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Re: Массивы
« Reply #23 on: September 19, 2014, 12:50:38 PM »
А зачем строгая типизация данных?
Достаточно к цифре хранить ее тип, тогда имеем
struct Nuber{
unsigned char type;
void * ptr;
}
да есть некий оверхед по простым обектам, но зато отказываемся от типизации.
Если такая проблема может имеет смысл посмотреть  в сторону js, lua? И заняться расширением функционала?
« Last Edit: September 19, 2014, 12:54:17 PM by AandD »

Aant

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Re: Массивы
« Reply #24 on: November 01, 2014, 11:53:37 PM »
Стоит добавить, что массивы, как и переменные хранят свои значения. Поэтому последовательный вызов двух scanpicture (например) без извлечения элементов через arrpop приведет к тому что у вас будет двойная очередь координат. Поэтому если вам для работы необходим «чистый» массив, то не забывайте высвобождать память, путем вызова undifine($var). Тут все как для переменных.

Я негодуэ.  :(
Совершенно не очевидно, что функция будет добавлять элементы в конец массива, а не переопределять его. ИМХО такой важный нюанс здорово было бы пометить в справке изначально. Хотя бы фразой не "... выводит координаты найденных экземпляров в массив", а "... добавляет координаты найденных экземпляров в массив", это дало бы мне шанс.
Особенно порадовала опечатка здесь "undifine" вместо правильного "undefine".

P.S. В целом хочу сказать автору спасибо за программу, но недоработки в ней очень сильно затрудняют работу.

UsefulCorpse

  • Зашел в гости
  • *
  • Posts: 2
    • View Profile
Re: Массивы
« Reply #25 on: November 08, 2014, 06:53:12 PM »
Могу, конечно, ошибиться, но arrpop похожу удаляет элемент массива только в том случае, если есть куда передать вытаскиваемый элемент, т.е. logwrite(arrpop($var)) удалит элемент, а arrpop($var) - нет, что заставило меня долгое время чесать репу)

Johnny

  • Создатель
  • Герой форума
  • *
  • Posts: 593
    • View Profile
Re: Массивы
« Reply #26 on: November 09, 2014, 11:08:35 AM »
Могу, конечно, ошибиться, но arrpop похожу удаляет элемент массива только в том случае, если есть куда передать вытаскиваемый элемент, т.е. logwrite(arrpop($var)) удалит элемент, а arrpop($var) - нет, что заставило меня долгое время чесать репу)

это стандартное поведение для всех функций

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Массивы
« Reply #27 on: January 09, 2015, 01:13:39 PM »
При правильном подходе такого не возникает.

Code: (clickermann) [Select]
FOR($a=0,$a<7) // создаем массив
   $arr[$a] = 0
END_CYC

$arr[6] = 5

FOR($a=0,$a<7)
   LOGWRITE ($arr[$a]) // смотрим что получилось
END_CYC

HALT

Обычно массивы создаются и читаются в цикле, а не так просто неожиданно записывается [6] = 5

rulentus

  • Зашел в гости
  • *
  • Posts: 14
    • View Profile
Re: Массивы
« Reply #28 on: March 18, 2015, 01:51:29 PM »
А есть ли возможность поместить в массив ивенты, то биш клики по скажем 5 заданным координатам, а потом рандомно через RNDFROM их оттуда вынимать

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Массивы
« Reply #29 on: March 18, 2015, 02:20:53 PM »
А есть ли возможность поместить в массив ивенты, то биш клики по скажем 5 заданным координатам, а потом рандомно через RNDFROM их оттуда вынимать

Проще это написать так

Code: (clickermann) [Select]
$r = RND(1,5)
SWITCH($r)
CASE(1)
   LCLICK(100,100)
CASE(2)
   LCLICK(200,100)
CASE(3)
   LCLICK(300,100)
CASE(4)
   LCLICK(400,100)
CASE(5)
   LCLICK(500,100)
DEFAULT
END_SWITCH
WAITMS(100)