| 
				
				[Урок 3] Циклы, условия, массивы
				 | 
				
			  | 
| [DUОS] | Дата: Понедельник, 11 Апреля 2011, 08:44:19 | Сообщение # 1 |  
| 
 Группа: Заблокированные 
Сообщений: 6279 
Награды:  9 
Репутация:  1708 
Блокировки:    
 
 | Этот урок я посвящу изучению циклов, массивов, функций и условий.   Начнём с самого простого. Это условия.  Условия - это специальные фрагменты кода, построенные на условных операторах, исходя из истинности которых будет или не будет выполняться код внутри блока операторов.   Самый простой пример условия:    Code if true == true then       // Действия при выполнении условия   else       // Действия при невыполнении условия   endif    Сразу замечу, что else-часть кода совершенно необязательно писать. Можно увидеть, что условие выше всегда будет истинно, ведь true = true (истина = истина).   Существует также условный оператор elseif, которого на триггерах нет вовсе. Давайте посмотрим пример блока условий с этим оператором.    Code if true == true then       // Действия при выполнении условия   elseif true == false then       // Действия при выполнении условия true ==false   else       // Действия при невыполнении условия   endif     Вот такой синтаксис условий в Jass. true никогда не будет равно false, значит, это условие невыполнимо.  Операторы сравнения условий в Jass:   > - больше, чем...   < - меньше, чем...   >= - больше или равно...   <= - меньше или равно...   == - полностью равно...   != - не равно...   and - ... и ...   or - ... или ...   not - не ...   P.S.: При сравнении существует ещё одна фишка, её я вам открою позже, пока вам рано.       С условиями разобрались. Теперь рассмотрим циклы.   Цикл - повторяющийся до выполнения условия цикла блок действий. Цикл бывает бесконечным (если условие выхода всегда будет ложно) и конечным (если это условие когда-либо будет истинно).   Структура любого цикла на Jass:    Code loop       exitwhen условие       // Действия цикла   endloop     Пример цикла - счётчик от одного до пяти:   Code local integer i = 1   loop       exitwhen i > 5       // Действия, повторяющиеся 5 раз.       set i = i + 1   endloop     О переменных в Jass и GUI можно прочесть тут. Я использовал локальную целочисленную.  P.S.: Добавлю только то, что в уcловии выхода из цикла нельзя использовать and, or и not.     Теперь поговорим о массивах.  Индексный массив (в некоторых языках программирования также таблица, ряд) — именованный набор однотипных переменных, расположенных в памяти непосредственно друг за другом, доступ к которым осуществляется по индексу (в отличие от списка).   Индекс массива — целое число, либо значение типа, приводимого к целому, указывающее на конкретный элемент массива.   В локальном варианте массивы создаются так:   local тип array название   Учтите, что в отличие от формата local тип название её нельзя задавать сразу, надо писать:    Code set название[индекс массива] = значение    Пример:    Code local integer array i   set i[0] = 1    Вот и всё на этом уроке. Вечером - снова зачёт. Кстати, остался только один урок теории. Дальше - оттачивание скилла. 
  
 |  
|   | 
 |   
  | 
| Omni174 | Дата: Понедельник, 11 Апреля 2011, 08:47:47 | Сообщение # 2 |  
| 
 Группа: Заблокированные 
Сообщений: 1274 
Награды:  1 
Репутация:  359 
Блокировки:    
 
 | А д\з какое?
 |  
|   | 
 |   
  | 
| skvaer09 | Дата: Понедельник, 11 Апреля 2011, 08:51:34 | Сообщение # 3 |  
8 уровень
 
Группа: Проверенные 
Сообщений: 602 
Награды:  0 
Репутация:  -117 
Блокировки:    
 
 | зачет
 |  
|   | 
 |   
  | 
| Omni174 | Дата: Понедельник, 11 Апреля 2011, 08:52:04 | Сообщение # 4 |  
| 
 Группа: Заблокированные 
Сообщений: 1274 
Награды:  1 
Репутация:  359 
Блокировки:    
 
 | Фак,я х3 как буду сдавать ._.
 |  
|   | 
 |   
  | 
| Dreii | Дата: Понедельник, 11 Апреля 2011, 11:21:26 | Сообщение # 5 |  
10 уровень
 
Группа: Проверенные 
Сообщений: 4991 
Награды:  0 
Репутация:  603 
Блокировки:    
 
 | [DUОS],Круто,но можно было бы паказать как например с помощью цикла можно обнулить сассив
  
 
 Сообщение отредактировал Dreii - Понедельник, 11 Апреля 2011, 11:22:31  |  
|   | 
 |   
  | 
| skvaer09 | Дата: Понедельник, 11 Апреля 2011, 12:23:58 | Сообщение # 6 |  
8 уровень
 
Группа: Проверенные 
Сообщений: 602 
Награды:  0 
Репутация:  -117 
Блокировки:    
 
 | Ваще не понятно(
 |  
|   | 
 |   
  | 
| Dreii | Дата: Понедельник, 11 Апреля 2011, 12:39:51 | Сообщение # 7 |  
10 уровень
 
Группа: Проверенные 
Сообщений: 4991 
Награды:  0 
Репутация:  603 
Блокировки:    
 
 | skvaer09, Спрашивай что не ясно
  
 |  
|   | 
 |   
  | 
| skvaer09 | Дата: Понедельник, 11 Апреля 2011, 12:50:49 | Сообщение # 8 |  
8 уровень
 
Группа: Проверенные 
Сообщений: 602 
Награды:  0 
Репутация:  -117 
Блокировки:    
 
 | Dreii, ну например "array" что это?
 |  
|   | 
 |   
  | 
| Syzaky | Дата: Понедельник, 11 Апреля 2011, 12:51:20 | Сообщение # 9 |  
 
5 уровень
 
Группа: Проверенные 
Сообщений: 104 
Награды:  0 
Репутация:  12 
Блокировки:    
 
 | переменная типа массива   local integer array i   означает создание локальной переменной массива, типом интеджер и именем i 
 
 Сообщение отредактировал Syzaky - Понедельник, 11 Апреля 2011, 12:54:47  |  
|   | 
 |   
  | 
| Dreii | Дата: Понедельник, 11 Апреля 2011, 13:13:24 | Сообщение # 10 |  
10 уровень
 
Группа: Проверенные 
Сообщений: 4991 
Награды:  0 
Репутация:  603 
Блокировки:    
 
 | skvaer09, array значит что переменная с массивом
  
 |  
|   | 
 |   
  | 
| skvaer09 | Дата: Понедельник, 11 Апреля 2011, 13:15:53 | Сообщение # 11 |  
8 уровень
 
Группа: Проверенные 
Сообщений: 602 
Награды:  0 
Репутация:  -117 
Блокировки:    
 
 | "false " А это что значит ?
 |  
|   | 
 |   
  | 
| Dreii | Дата: Понедельник, 11 Апреля 2011, 13:16:09 | Сообщение # 12 |  
10 уровень
 
Группа: Проверенные 
Сообщений: 4991 
Награды:  0 
Репутация:  603 
Блокировки:    
 
 | skvaer09, false - ложь
  
 |  
|   | 
 |   
  | 
| pirat9629 | Дата: Понедельник, 11 Апреля 2011, 14:49:07 | Сообщение # 13 |  
 
7 уровень
 
Группа: Проверенные 
Сообщений: 422 
Награды:  0 
Репутация:  102 
Блокировки:    
 
 | Code if true == true then         // Действия при выполнении условия      заместь true может стоять чтото другое? например if 1 == true then 1 ето случайное число я правильно понял или вообще не то?)
  
      сделаю минекрафт сервер на заказ. платно  
 |  
|   | 
 |   
  | 
| Dreii | Дата: Понедельник, 11 Апреля 2011, 14:50:11 | Сообщение # 14 |  
10 уровень
 
Группа: Проверенные 
Сообщений: 4991 
Награды:  0 
Репутация:  603 
Блокировки:    
 
 | pirat9629, например так    Code local integer i=GetRanomInt(1,100)   if i==20 then   //Actions   ...  
  
 |  
|   | 
 |   
  | 
| pirat9629 | Дата: Понедельник, 11 Апреля 2011, 14:59:27 | Сообщение # 15 |  
 
7 уровень
 
Группа: Проверенные 
Сообщений: 422 
Награды:  0 
Репутация:  102 
Блокировки:    
 
 | ага типо сначала локальную переменную установляем случайное число от 1 до 100   а потом if названия више установ переменной <= 50 then   убить юнит   (а тут чото надо ище?)Добавлено (11-04-2011, 14:59) ---------------------------------------------
     ето означает что масив?
  
      сделаю минекрафт сервер на заказ. платно  
 |  
|   | 
 |   
  | 
| )blazer( | Дата: Понедельник, 11 Апреля 2011, 15:16:57 | Сообщение # 16 |  
7 уровень
 
Группа: Проверенные 
Сообщений: 308 
Награды:  0 
Репутация:  49 
Блокировки:    
 
 |    Снова??? а 1ый был чтоли? или я что-то пропустил
 |  
|   | 
 |   
  | 
| Dreii | Дата: Понедельник, 11 Апреля 2011, 15:18:36 | Сообщение # 17 |  
10 уровень
 
Группа: Проверенные 
Сообщений: 4991 
Награды:  0 
Репутация:  603 
Блокировки:    
 
 | Quote (pirat9629) ето означает что масив?     да Quote (pirat9629) ага типо сначала локальную переменную установляем случайное число от 1 до 100 а потом if названия више установ переменной <= 50 then     можно так   Code if GetRandomInt(1,100) <20 then   //   endif  
  
 |  
|   | 
 |   
  | 
| pirat9629 | Дата: Понедельник, 11 Апреля 2011, 16:44:49 | Сообщение # 18 |  
 
7 уровень
 
Группа: Проверенные 
Сообщений: 422 
Награды:  0 
Репутация:  102 
Блокировки:    
 
 | ну помоему я все понял)   всем спасибо хочу по бистрее закочить школу и знать джасс)
  
      сделаю минекрафт сервер на заказ. платно  
 |  
|   | 
 |   
  | 
| lawson | Дата: Понедельник, 11 Апреля 2011, 17:50:30 | Сообщение # 19 |  
| 
 Группа: Проверенные 
Сообщений: 3482 
Награды:  0 
Репутация:  974 
Блокировки:    
 
 | Quote (|DUОS|) Кстати, остался только один урок теории. Дальше - оттачивание скилла.     Утечки чтоли?  Добавлено (11-04-2011, 17:41)   ---------------------------------------------    Quote (pirat9629) заместь true может стоять чтото другое? например if 1 == true then 1 ето случайное число я правильно понял или вообще не то?)     сравниваються всегда одинаковые зачения.   Например 1 > 5   юнит пехотинец != юнит медведь   И неправильные сравнения   область1 == юнит пехотинец   1 < игрок(1)  Добавлено (11-04-2011, 17:50)   ---------------------------------------------    Quote (|DUОS|) Индекс массива — целое число, либо значение типа, приводимого к целому, указывающее на конкретный элемент массива.     Ну ни фига себе эйншейтн наверное в гробу перевернулся.   Если я не понял что тут говорит об новичках.
  
Nic nie wiem bo mam chuj.   редактирую посты! ВСЕ! 
 
 Сообщение отредактировал lawson - Понедельник, 11 Апреля 2011, 17:51:15  |  
|   | 
 |   
  | 
| Blood_Elf | Дата: Понедельник, 11 Апреля 2011, 18:20:07 | Сообщение # 20 |  
7 уровень
 
Группа: Проверенные 
Сообщений: 415 
Награды:  0 
Репутация:  92 
Блокировки:    
 
 | хмм... очень похоже на то, что проходим и проходили по информатике..   условия - такая вещь ещё в excel есть. там, по-моему, на русском.   set переменная = значение   не говоря о триггере, такая же вещь есть и в простейших алгоритмах, присвоение значения (x:= a)   цикл - также есть в алгоритмах.   кстати, очень понятно. к зачёту готов!
 |  
|   | 
 |   
  | 
| [DUОS] | Дата: Понедельник, 11 Апреля 2011, 18:38:14 | Сообщение # 21 |  
| 
 Группа: Заблокированные 
Сообщений: 6279 
Награды:  9 
Репутация:  1708 
Блокировки:    
 
 | Quote (lawson) Утечки чтоли?      Preload, встраивание в карту кода C, просмотр исходников спеллов стандартного war3 и пр. Ну это уже если кто захочет.   Quote (lawson) сравниваються всегда одинаковые зачения.      Исключение есть - типы integer и real можно свободно между собою сравнивать.  lawson,   Вопрос: можно ли сравнивать так и почему:   "duos" >= "handl3" 
  
 |  
|   | 
 |   
  | 
| Dreii | Дата: Понедельник, 11 Апреля 2011, 18:46:22 | Сообщение # 22 |  
10 уровень
 
Группа: Проверенные 
Сообщений: 4991 
Награды:  0 
Репутация:  603 
Блокировки:    
 
 | [DUОS], Можно ибо дуос,когда родился повесил хендл)
  
 |  
|   | 
 |   
  | 
| lawson | Дата: Понедельник, 11 Апреля 2011, 20:29:27 | Сообщение # 23 |  
| 
 Группа: Проверенные 
Сообщений: 3482 
Награды:  0 
Репутация:  974 
Блокировки:    
 
 | Blood_Elf,   Сравнение есть в любом языке програмирования.      ответ: нет так как duos не может быть больше hanld!
  
Nic nie wiem bo mam chuj.   редактирую посты! ВСЕ! 
 
 Сообщение отредактировал lawson - Вторник, 12 Апреля 2011, 17:48:07  |  
|   | 
 |   
  | 
| Blood_Elf | Дата: Понедельник, 11 Апреля 2011, 20:30:46 | Сообщение # 24 |  
7 уровень
 
Группа: Проверенные 
Сообщений: 415 
Награды:  0 
Репутация:  92 
Блокировки:    
 
 | я лишь хотел высказать, что JASS, как и любой язык программирования, построен на алгоритмах.
 |  
|   | 
 |   
  | 
| lawson | Дата: Понедельник, 11 Апреля 2011, 20:31:53 | Сообщение # 25 |  
| 
 Группа: Проверенные 
Сообщений: 3482 
Награды:  0 
Репутация:  974 
Блокировки:    
 
 | Quote (Blood_Elf) любой язык программирования, построен на алгоритмах.     !
  
Nic nie wiem bo mam chuj.   редактирую посты! ВСЕ! 
 |  
|   | 
 |   
  |