Что нового

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

ahjkcfout7

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

DStalker

Ботоводство+Мультибоксинг = время выспаться ;)
Сообщения
39
Репутация
2
я генерил в TimeZero ники из таблицы Exel, что бы не попасть на такой ник уже существует, делал замены слогов на псевдосимволы. Например Человек=4еловек или о=0 или если заканчивается на чел, то добавлял 98 выходило что то типа того 4ел0век98.
Еще вариант брал все существительные в 1й столбец, во второй другие. и генерил 2х словные ники. выглядели бредово, но были уникальны. Например "Быт доброжелатель" или "вечность аббревиатура".
Потом копи пастил эту базу ников в текстовой файл с расширением names.ini типа такого
[name] i
name001=Быт доброжелатель
name002=вечность аббревиатура
...
name9121=раз камаз

и уже в самом скрипте циклом генерил ботов
 

DyadyaGenya

Знающий
Сообщения
300
Репутация
10
Если у кого то есть идеи, что еще можно сделать, что бы ники походили на "человеческие"?
Определиться, это только на английском ники или ещё и на русском. Потом выучить правила образования имен в нужных языках, на что заканчиваются и тп. Напр, в некоторых славянских странах больше распространены имена с окончанием на -ко, -айло (напр, Ляшко, Сикайло), или -иня, -ин (напр, Страхиня, Путин))))), Нежин, тоесть сын женщины по имени Путя или сын женщины по имени Нежа). Делаете слово из 2-3 слогов, можно из одного и лепите к нему окончание. Можно делать ники из двух частей, типа Темный Йорк и тп. И добавить к этому ещё и версии из набора слогов, строя "фамилии" по тому же принципу. И получиться какой-то Бирсикайло Йорков. В восточных языках, если под них закосить, можно добавлять "оглы", тоесть "сын" и будет типа сын такого-то персонажа. Одним словом нужно учить правила словообразования в каждом интересующем языке. Ну а массивы вы и сами настроите, включая рандомно от 1 до сколько нужно слогов по максимуму. Но тут я согласен. К теме autoit относится только работа этих массивов.
 
Верх