Сейчас 20:41:46 Четверг, 25 апреля, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Чётное не чётное
Чётное не чётное
SunCreepДата: Среда, 16 Марта 2011, 22:22:10 | Сообщение # 1
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды: 0
Репутация: 141
Блокировки:
Глупо создавать новую тему для 1 вопроса,но всё же...
Как сделать условие:
Х = чётное число
(прошу указать путь)
 

lawsonДата: Среда, 16 Марта 2011, 23:01:29 | Сообщение # 2
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Quote (SunCreep)
Как сделать условие

Нет такого условия

Добавлено (16-03-2011, 23:01)
---------------------------------------------
Сожно способом твое число / 2 если твоя перменная примит любое значение 0.значение то значит она не четная. Или если твоя перменная integer то четная если real то не четна.


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!


Сообщение отредактировал lawson - Среда, 16 Марта 2011, 23:06:02
 

SunCreepДата: Среда, 16 Марта 2011, 23:30:29 | Сообщение # 3
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды: 0
Репутация: 141
Блокировки:
Я не чё не понял))
У меня:
Событие юнит приводит способность в действие
Действие установить х=х+1
Действие функция то\если\иначе
Если х=чётное <-------(вот тут проблема)
То выключить триггер
Иначе включить триггер

При условии что скил этот не имеет откатка и служит переключателем переменная примет множество значений,и как их поделить на 2 я не знаю.

 

KartohaДата: Среда, 16 Марта 2011, 23:56:19 | Сообщение # 4
10 уровень
Группа: Ветераны
Сообщений: 2851
Награды: 1
Блокировки:
SunCreep, я долго думал как сделать такую проверку на GUI, но так и не додумался. Зато я придумал как сделать и сделал проверку на четность на JASS, ты шариш в JASS?
 

SunCreepДата: Среда, 16 Марта 2011, 23:58:51 | Сообщение # 5
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды: 0
Репутация: 141
Блокировки:
Есть другой вариант.
Подскажите событие: когда меняют включение или выключение автоприменение.К примеру: когда ставят на автокаст скил Лечение.

Добавлено (16-03-2011, 23:58)
---------------------------------------------
В Jass я полный 0

 

KartohaДата: Четверг, 17 Марта 2011, 00:10:23 | Сообщение # 6
10 уровень
Группа: Ветераны
Сообщений: 2851
Награды: 1
Блокировки:
SunCreep, нет такого события.
Я могу сделать эту самую проверку на четность прямо в твоей карте.Ты потом мб JASS выучиш и поймеш что к чему.
 

romaN-1998Дата: Четверг, 17 Марта 2011, 00:14:04 | Сообщение # 7
10 уровень
Группа: Проверенные
Сообщений: 1368
Награды: 0
Репутация: 10
Блокировки:
Quote (lawson)
Или если твоя перменная integer то четная если real то не четна.

Дурак ? (извини) Чётное делится на 2, а нечётное не делится. real = это просто не целое число.
 

KartohaДата: Четверг, 17 Марта 2011, 00:17:10 | Сообщение # 8
10 уровень
Группа: Ветераны
Сообщений: 2851
Награды: 1
Блокировки:
Quote (Kartoha)
Я могу сделать эту самую проверку на четность прямо в твоей карте.Ты потом мб JASS выучиш и поймеш что к чему.

Так что надо нет? Чего молчиш?)
 

lawsonДата: Четверг, 17 Марта 2011, 00:41:38 | Сообщение # 9
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Quote (romaN-1998)
нечётное не делится

Уверен?
3/2


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!


Сообщение отредактировал lawson - Четверг, 17 Марта 2011, 00:42:02
 

romaN-1998Дата: Четверг, 17 Марта 2011, 00:55:57 | Сообщение # 10
10 уровень
Группа: Проверенные
Сообщений: 1368
Награды: 0
Репутация: 10
Блокировки:
Quote (lawson)
3/2

И чё... С остатком делится, я имею ввиду Чётное на 2 без остатка делится.
 

lawsonДата: Четверг, 17 Марта 2011, 00:58:03 | Сообщение # 11
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Quote (romaN-1998)
Чётное на 2 без остатка делится.

ВОт это и есть уловие.


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!
 

Manko_OДата: Четверг, 17 Марта 2011, 08:14:17 | Сообщение # 12
7 уровень
Группа: Проверенные
Сообщений: 296
Награды: 0
Репутация: 23
Блокировки:
i наше число
Если\то\иначе
Если
( i-i)/(2-i)/2=0
То
//чётное
Иначе
//нечётное
 

SunCreepДата: Четверг, 17 Марта 2011, 08:39:10 | Сообщение # 13
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды: 0
Репутация: 141
Блокировки:
Quote (Manko_O)
( i-i)/(2-i)/2=0

Либо я не знаю как либо не возможно...

и вот ещё i-i а смысл?0 не заменить?

 

DreiiДата: Четверг, 17 Марта 2011, 09:02:06 | Сообщение # 14
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Kartoha, выложи суда код погялдим)
SunCreep, Можно так
Code
local integer i=GerRandomInt(0,100)
if i=i\2 then
//четное
else
//нечетное
endif


 

romaN-1998Дата: Четверг, 17 Марта 2011, 09:10:19 | Сообщение # 15
10 уровень
Группа: Проверенные
Сообщений: 1368
Награды: 0
Репутация: 10
Блокировки:
В условии поставь:

Если (i/2)-(i/2) = 0 то

 

DreiiДата: Четверг, 17 Марта 2011, 09:12:56 | Сообщение # 16
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Quote (romaN-1998)
(i/2)-(i/2) = 0

Так не получиться, смотри..
Если i = 4 то
(4/2)-(4/2) = 2-2 = 0
Если i = 5 то
(5/2)-(5/2) = 2,5-2,5 = 0


 

romaN-1998Дата: Четверг, 17 Марта 2011, 09:16:30 | Сообщение # 17
10 уровень
Группа: Проверенные
Сообщений: 1368
Награды: 0
Репутация: 10
Блокировки:
Хм... не подумал...

Добавлено (17-03-2011, 09:16)
---------------------------------------------
Ну может на реальную ещё проверять ?

 

DreiiДата: Четверг, 17 Марта 2011, 09:16:43 | Сообщение # 18
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Думаю,нужна проверка на остаток,ведь при делении нечетного будет всегда остаток. Нужно как то проверить иммет ли число десятичные и т.д числа

 

SirNikolasДата: Четверг, 17 Марта 2011, 12:45:12 | Сообщение # 19
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (Kartoha)
SunCreep, я долго думал, как сделать такую проверку на GUI, но так и не додумался.
Существует целых два способа!

  • Условия:
    Real Comparison: ((Real(YourNumber) : 2.00) - Real((YourNumber : 2))) == 0.00//Число четное

  • Условия:
    Integer Comparison: (YourNumber mod 2) == 0//Число четное



    Сообщение отредактировал SirNikolas - Четверг, 17 Марта 2011, 13:08:06
  •  

    KartohaДата: Четверг, 17 Марта 2011, 14:20:52 | Сообщение # 20
    10 уровень
    Группа: Ветераны
    Сообщений: 2851
    Награды: 1
    Блокировки:
    SirNikolas, мб это в JNGP? Потому что я найти не могу.)
    Quote (Dreii)
    Kartoha, выложи суда код погялдим)

    Code
    function CheckX takes nothing returns nothing
    local integer i = 0
    local integer i2 = 10000
    loop
    exitwhen i>i2
    if i == udg_x then
    call DisplayTextToForce( GetPlayersAll(), Четное" )  
    endif
    set i = i + 2
    endloop
    set i = 0
    set i2 = 0
    endfunction

    я думаю что код можно и упростить, потому что я писал его будучи сонным, почти засыпая и чисто интуитивно - не вдумываясь, руки как буд-то сами писали, но работает вроде нормально=)

    Добавлено (17-03-2011, 14:13)
    ---------------------------------------------
    как вы поняли, в коде udg_x = проверяемая целочисленная

    Добавлено (17-03-2011, 14:20)
    ---------------------------------------------
    и она не должна превышать 10000

     

    SirNikolasДата: Четверг, 17 Марта 2011, 14:24:20 | Сообщение # 21
    Группа: Модераторы
    Сообщений: 6729
    Награды: 1
    Репутация: 1867
    Блокировки:
    Quote (Kartoha)
    мб это в JNGP?
    JNGP не добавляет новые GUI-функции, иначе карту, сделанную в нем, нельзя будет открыть в обычном редакторе. Сейчас сделаю скрин.
    Теперь насчет кода.
    Quote (Kartoha)
    call DisplayTextToForce( GetPlayersAll(), Четное" )
    Во-первых, две BJ, а во-вторых, незакрытые (вернее, неоткрытые) двойные кавычки.
    Code
    call DisplayTextToPlayer(GetLocalPlayer(), .0, .0, "Четное")
    Quote (Kartoha)
    local integer i2 = 10000
    Лучше 2147483647 - максимальное возможное значение integer.
    Quote (Kartoha)
    udg_x
    Лучше сделать, чтоб функция принимала целочисленную.




    Сообщение отредактировал SirNikolas - Четверг, 17 Марта 2011, 14:35:01
     

    KartohaДата: Четверг, 17 Марта 2011, 14:28:24 | Сообщение # 22
    10 уровень
    Группа: Ветераны
    Сообщений: 2851
    Награды: 1
    Блокировки:
    Quote (SirNikolas)
    JNGP не добавляет новые GUI-функции

    :o , у меня в JNGP очень много новых функций на GUI.
    Quote (SirNikolas)
    Во-первых, две BJ, а во-вторых, незакрытые (вернее, неоткрытые) двойные кавычки.

    не не не, это только для примера, чтоб проверить пашет или нет, а опечатался когда сюда вставлял
    Quote (SirNikolas)
    Лучше сделать, чтоб функция принимала целочисленную.

    я код писал под карту SunCreep, у него там эта самая переменная x поэтому я так и сделал, хотя ты прав, нужно было через takes делать.
     

    SirNikolasДата: Четверг, 17 Марта 2011, 14:32:46 | Сообщение # 23
    Группа: Модераторы
    Сообщений: 6729
    Награды: 1
    Репутация: 1867
    Блокировки:


     

    KartohaДата: Четверг, 17 Марта 2011, 14:37:14 | Сообщение # 24
    10 уровень
    Группа: Ветераны
    Сообщений: 2851
    Награды: 1
    Блокировки:
    SirNikolas, aa, понятно, я раньше не обращал внимания на эту штуку "Module", удивляюсь, ежедневно сижу в ве, и до сих пор узнаю что-то новое.
    И вот исправленый код:
    Code
    function CheckX takes nothing returns nothing
    local integer i = 0
    local integer i2 = 2147483647
    loop
    exitwhen i>i2
    if i == udg_x then
    <то что должно произойти, если переменная четная>
    endif
    set i = i + 2
    endloop
    set i = 0
    set i2 = 0
    endfunction


    Сообщение отредактировал Kartoha - Четверг, 17 Марта 2011, 14:38:15
     

    SirNikolasДата: Четверг, 17 Марта 2011, 14:41:20 | Сообщение # 25
    Группа: Модераторы
    Сообщений: 6729
    Награды: 1
    Репутация: 1867
    Блокировки:
    Quote (Kartoha)
    Code
    if i == udg_x then
    <то, что должно произойти, если переменная четная>
    endif
    Подправь-ка, иначе даже после нахождения нужного он будет проверять все остальные.
    Code
    if i == udg_x then
         <то, что должно произойти, если переменная четная>
         exitwhen true
    endif

    Добавлено (17-03-2011, 14:41)
    ---------------------------------------------

    Quote (Kartoha)
    set i = 0
    set i2 = 0
    Целочисленные не нужно обнулять. А i2 здесь вообще не нужна. exitwhen i>2147483646


     

    Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Чётное не чётное
    • Страница 1 из 2
    • 1
    • 2
    • »
    Поиск:

    Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
    Хостинг от uCoz