Что нового

Генератор ников

ahjkcfout7

Знающий
Сообщения
22
Репутация
5
Всем доброго времени суток! Появилась потребность для написания генератора ников. Нет, это мне не для брута надо, а для регистраций. Конечно, есть сайты, которые под это заточены. Но мне захотелось написать. В общим, я немного подумав, и взял два массива с гласными и согласными буквами и случайным образом объединял ячейки этих массивов составляя слоги. Мне показались эти ники немного примитивными, и я стал добавлять "года рождения". Если у кого то есть идеи, что еще можно сделать, что бы ники походили на "человеческие"?
Результат работы программы:
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
 
Верх