XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Закрытая тема
 
Критик
Нету времени(
offline
Опыт: 3,375
Активность:
Нужен оптимальный код
Нужен код, который будет каждые 10 секунд создавать локальную переменную присваивать ей случайное число от 1 до 20. И если это 7, то присваивать глобальной переменной "n" = "n+1". Задача в принципе легкая. Но хочу оптимально. Просто JASS изучаю начинаю с легкого и оптимального. . .
Старый 28.10.2009, 20:43
tgonta
Pixelated Sora Coder
offline
Опыт: 3,160
Активность:
Критик,
Держи, вот.
function Checking takes nothing returns nothing
    local integer i = GetRandomInt(1,20)
    if(i == 7) then
        set udg_n = udg_n + 1
    endif 
endfunction

//===============================================================
function InitTrig_Primer takes nothing returns nothing    
    local trigger tr = CreateTrigger()
    call TriggerRegisterTimerEventPeriodic(tr,10.)
    call TriggerAddAction(tr,function Checking)
    set tr = null
endfunction
Старый 28.10.2009, 20:55
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
scope test
	globals
		integer n = 0
	endglobals
	
	private function Check takes nothing returns nothing
		if(GetRandomInt(1,20) == 7) then
			set n = n + 1
		endif 
	endfunction

    	private function Init takes nothing returns nothing    
        	call TimerStart( CreateTimer(), 10., true, function Check)
    	endfunction
endscope
Старый 28.10.2009, 21:09
tgonta
Pixelated Sora Coder
offline
Опыт: 3,160
Активность:
Van_Damm,
Ну, это уже vJass...
Автор сказал, что он пока новичок.
Старый 28.10.2009, 21:17
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
так надо сразу с него начинать
Старый 28.10.2009, 21:29
Nekit1234007

offline
Опыт: 11,916
Активность:
ВД, ты про initializer кажется забыл...
Старый 28.10.2009, 21:40
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
Nekit1234007, скопы инициализируются так, как я написал. Initializer - это для библиотек
Старый 28.10.2009, 21:42
Критик
Нету времени(
offline
Опыт: 3,375
Активность:
Цитата:
Сообщение от Van Damm
так надо сразу с него начинать

вопрос. С чего тогда начать? В JASS'e, я на 3 ступеньке из 10.. То есть локальные переменные, if/then/else и сейчас изучаю циклы.
Старый 28.10.2009, 21:42
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
Критик, не слушай меня. Если ты идешь вообще с нуля, то так и продолжай по руководству. Когда будешь более-менее ориентироватсья в основных конструкциях просто жасса, можно браться за вжасс.
Тогда для тебя код такой:
function Check takes nothing returns nothing
	if(GetRandomInt(1,20) == 7) then
		set udg_n = udg_n + 1
	endif 
endfunction

function InitTrig_test takes nothing returns nothing    
        call TimerStart( CreateTimer(), 10., true, function Check)
endfunction
Старый 28.10.2009, 21:45
Критик
Нету времени(
offline
Опыт: 3,375
Активность:
Van Damm, благодарю, все понятно и ясно.
Старый 28.10.2009, 21:49
Закрытая тема

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 00:10.