ahjkcfout7
Знающий
- Сообщения
- 26
- Репутация
- 6
Всем доброго времени суток! Появилась потребность для написания генератора ников. Нет, это мне не для брута надо, а для регистраций. Конечно, есть сайты, которые под это заточены. Но мне захотелось написать. В общим, я немного подумав, и взял два массива с гласными и согласными буквами и случайным образом объединял ячейки этих массивов составляя слоги. Мне показались эти ники немного примитивными, и я стал добавлять "года рождения". Если у кого то есть идеи, что еще можно сделать, что бы ники походили на "человеческие"?
Результат работы программы:
leachuthu
nearise
chiquyzi
fiheapu
megufa
1986phokyre
nylyqi
1991ckeawexe
niboko1912
1990xeaqueqe
Результат работы программы:
leachuthu
nearise
chiquyzi
fiheapu
megufa
1986phokyre
nylyqi
1991ckeawexe
niboko1912
1990xeaqueqe
Код:
#include <array.au3>
$s1="qwrtpsdfghjklzxcvbnm"
$s2="eyioau"
$s1_array=StringSplit($s1,"")
$s2_array=StringSplit($s2,"")
_ArrayAdd($s2_array,"ea")
_ArrayAdd($s1_array,"ch")
_ArrayAdd($s1_array,"ph")
_ArrayAdd($s1_array,"ck")
_ArrayAdd($s1_array,"qu")
_ArrayAdd($s1_array,"th")
;~ _ArrayDisplay($s2_array_rd)
Global $answer
For $q=1 To 10
$answer=""
For $i=1 To 3
$cell_rand= Random(1,7)
$s1_array_rd=_UniqArray(1, UBound($s1_array)-1)
$s2_array_rd=_UniqArray(1, UBound($s2_array)-1)
$answer &= $s1_array[$s1_array_rd[$i]] & $s2_array[$s2_array_rd[$cell_rand]]
Next
Switch Random(0,3,1)
Case 1
If Random(0,1,1)=1 Then
$answer &= Random(1887,2004,1)
Else
$answer = Random(1984,2004,1)& $answer
EndIf
EndSwitch
ConsoleWrite($answer & @CRLF)
Next
Func _UniqArray($iMin, $iMax)
Local $iR
Local $iU = $iMax - $iMin, $iT = 0
Local $aI[$iU + 1], $aO[$iU + 1]
For $i = $iMin To $iMax
$aI[$iT] = $i
$iT += 1
Next
For $i = 0 To $iU
$iR = Random(0, $iU - $i, 1)
$aO[$i] = $aI[$iR]
For $k = $iR To $iU - $i - 1
$aI[$k] = $aI[$k + 1]
Next
Next
Return SetError(0, 0, $aO)
EndFunc