damien2008
Осваивающий
- Сообщения
- 178
- Репутация
- 34
AutoIt: 3.3.8.1
Версия: 1.0
Лицензия:
Категория: Строки, Математика, Разное
Описание: Для интересующихся решил сделать рабочий пример определения знака животного, его цвета и элемента (по восточному гороскопу). В принципе схема объясняющая работу тут. Код под катом.
Код/Пример:
Снимок: копия с сайта
История версий:
Источник: autoit-script.ru
Автор(ы): damien2008
Версия: 1.0
Лицензия:
Категория: Строки, Математика, Разное
Описание: Для интересующихся решил сделать рабочий пример определения знака животного, его цвета и элемента (по восточному гороскопу). В принципе схема объясняющая работу тут. Код под катом.
Код/Пример:
Код:
#cs ------------------------------------------------------------------------
Версия AutoIt: 3.3.8.1
Автор: damien2008
Описание: Универсальная таблица для определения знака животного, его цвета и элемента (восточный гороскоп).
#ce ------------------------------------------------------------------------
; Код программы
#include <Array.au3>
Global $powers[5] = ['дерево', 'огонь', 'земля', 'металл', 'вода' ]
Global $colors[5] = ['зеленый', 'красный', 'желтый', 'белый', 'черный' ]
Global $pets[12] = ['крыса', 'бык', 'тигр', 'кролик', 'дракон', 'змея', _
'лошадь', 'коза', 'обезьяна', 'петух', 'собака', 'свинья']
main(2013)
Exit
Func main($year)
Local $color = Ceiling(StringRight(($year - YSHIFT($year)) + 1, 1) / 2)
Local $pet = ($year - YSHIFT($year)) + 1
Local $power
GetPowerColor($color, $power)
GetPet($pet)
MsgBox(0, '', 'Год ' & $year & @CRLF & _
$color & ' ' & $pet & ', ' & $power)
;ConsoleWrite($color & ' ' & $pet & ', ' & $power & @CRLF)
EndFunc ;==>main
Func GetPowerColor(ByRef $color, ByRef $power)
If _StringInSet($color, '0,5') Then
$power = $powers[4]
$color = $colors[4]
Else
$power = $powers[$color - 1]
$color = $colors[$color - 1]
EndIf
Return
EndFunc ;==>GetColorPower
Func GetPet(ByRef $pet)
If $pet <= 12 Then
$pet = $pets[$pet - 1]
Else
While 1
If $pet <= 12 Then ExitLoop
$pet -= 12
WEnd
$pet = $pets[$pet - 1]
EndIf
Return $pet
EndFunc ;==>GetPet
Func YSHIFT($sYear, $rest = 0)
While 1
$rest = Mod($sYear, 60)
If $rest = 4 Then ExitLoop
$sYear -= 1
WEnd
Return $sYear
EndFunc ;==>YSHIFT
Func _StringInSet($Value, $List, $Delim = ',')
;by MHz @ http://www.autoitscript.com/forum/topic/12255-udf-stringinset/#entry84375
Dim $ListArray = StringSplit($List, $Delim)
If @error Then Return 0
For $i = 1 To $ListArray[0]
If $Value = $ListArray[$i] Then Return 1
Next
EndFunc ;==>_StringInSet
Снимок: копия с сайта
История версий:
1.0
Источник: autoit-script.ru
Автор(ы): damien2008