Namens-Generator
Übersicht

![]() |
Silver_KneeBetreff: Namens-Generator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Da viele leute mal bots schreiben wollen brauchen sie für die immer mal Namen. dafür gibt es diese lustige funktion die von Amul optimiert wurde
Code: [AUSKLAPPEN] Function GenerateName$(min, max)
Local name$, char, vowel, length vowel = Rand(0, 1) length = Rand(min, max) For x = 1 To length vowel = Not vowel If vowel Repeat char = Rand(95, 122) Until (char <> Asc("a")) And (char <> Asc("e")) And (char <> Asc("i")) And (char <> Asc("o")) And (char <> Asc("u")) Else Select Rand(1, 5) Case 1 char = 97 Case 2 char = 101 Case 3 char = 105 Case 4 char = 111 Case 5 char = 117 End Select EndIf name = name + Chr(char) Next name= Replace(name, "q", "qu") name= Replace(name, Chr(96), "sch") name= Replace(name, Chr(95), "ch") name = Upper(Mid(name, 1,1)) + Mid(name,2) Return name End Function Der code wurde von Amul optimiert und von mir verbessert, da "qu", "sch" und "ch" als ein Buchstabe gelten und es bei Amul's Code Schwierigkeiten bei der Großschreibung aus diesem Grund gab. Für die Engländer unter uns nochmal eine englische version: Code: [AUSKLAPPEN] Function GenerateName_en$(min, max)
Local name$, char, vowel, length vowel = Rand(0, 1) length = Rand(min, max) For x = 1 To length vowel = Not vowel If vowel Repeat char = Rand(95, 122) Until (char <> Asc("a")) And (char <> Asc("e")) And (char <> Asc("i")) And (char <> Asc("o")) And (char <> Asc("u")) Else Select Rand(1, 5) Case 1 char = 97 Case 2 char = 101 Case 3 char = 105 Case 4 char = 111 Case 5 char = 117 End Select EndIf name = name + Chr(char) Next name= Replace(name, "q", "qu") name= Replace(name, Chr(96), "sh") name= Replace(name, Chr(95), "th") name = Upper(Mid(name, 1,1)) + Mid(name,2) Return name End Function Es passiert dennoch oft das der italiener im prog rauskommt: Lacideci^^ Oder tscheschen: Oxawukuzec Oder es kommen einfach tolle sachen wie: Nice |
||
- Zuletzt bearbeitet von Silver_Knee am So, Jul 15, 2007 17:35, insgesamt 4-mal bearbeitet
![]() |
Puccini |
![]() Antworten mit Zitat ![]() |
---|---|---|
LOL
die namen klingen ja sogar fast wie echte! ![]() cool gemacht ![]() |
||
-=Achtung=-
Suche Hobby-Modelliere der hin und wieder bock hat ein kleines Objekt zu erstellen. Bei Interesse PM www.ragesoft.de Passwortmanager: http://ragesoft.de/index.php?o...;Itemid=39 |
![]() |
aMulSieger des Minimalist Compo 01/13 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nette Idee. Allerdings kann man das ganz noch sehr optimieren.
Ich hab mir mal erlaubt, die Funktion zu kürzen und etwas schneller zu machen ![]() Code: [AUSKLAPPEN] Function GenerateName$(min, max)
Local name$, char, vowel, length vowel = Rand(0, 1) length = Rand(min, max) For x = 1 To length vowel = 1 - vowel If vowel Repeat char = Rand(98, 122) Until char <> 101 And char <> 105 And char <> 111 And char <> 117 name = name + Chr(char) Else Select Rand(1, 5) Case 1 char = 97 Case 2 char = 101 Case 3 char = 105 Case 4 char = 111 Case 5 char = 117 End Select name = name + Chr(char) EndIf Next name = Replace(name, "q", "qu") name = Upper(Left(name, 1)) + Right(name, length - 1) Return name End Function Funktionieren tut sie allerdings fast noch genauso wie vorher. EDIT: Hab gerade die Geschwindigkeit getestet, und meine Funktion ist bei mir etwa 10 mal schneller ![]() ![]() Hier der Code zum Testen: Code: [AUSKLAPPEN] Function GenerateName$(min, max)
Local name$, char, vowel, length vowel = Rand(0, 1) length = Rand(min, max) For x = 1 To length vowel = 1 - vowel If vowel Repeat char = Rand(98, 122) Until char <> 101 And char <> 105 And char <> 111 And char <> 117 name = name + Chr(char) Else Select Rand(1, 5) Case 1 char = 97 Case 2 char = 101 Case 3 char = 105 Case 4 char = 111 Case 5 char = 117 End Select name = name + Chr(char) EndIf Next name = Replace(name, "q", "qu") name = Upper(Left(name, 1)) + Right(name, length - 1) Return name End Function Function GenerateName_old$(min,max) bed1=Rand(0,1) If bed1 txt$="a" While txt$="a" Or txt="e" Or txt="i" Or txt="o" Or txt="u" txt$=Chr( Rand(97,122) ) Wend name$=name+txt Else txt="b" While Not(txt="a" Or txt="e" Or txt="i" Or txt="o" Or txt="u") txt$=Chr( Rand(97,122) ) Wend name=name+txt EndIf name=Upper(name) Leng=Rand(min-1,max-1) For x= 1 To leng bed1=Not(bed1) If bed1 While txt="a" Or txt="e" Or txt="i" Or txt="o" Or txt="u" txt$=Chr( Rand(97,122) ) Wend name=name+txt Else While Not(txt="a" Or txt="e" Or txt="i" Or txt="o" Or txt="u") txt$=Chr( Rand(97,122) ) Wend name=name+txt EndIf Next name=Replace(name,"q","qu") name=Replace(name,"Q","Qu") Return name End Function SeedRnd MilliSecs() Local ms, name$, i, ms1, ms2 ms = MilliSecs() For i = 0 To 9999 name = GenerateName_old(4, 8) Next ms1 = MilliSecs() - ms ms = MilliSecs() For i = 0 To 9999 name = GenerateName(4, 8) Next ms2 = MilliSecs() - ms Print "alte funktion: " + ms1 + "ms" Print " durchschnitt: " + ms1 / 10000.0 + "ms" Print "" Print "neue funktion: " + ms2 + "ms" Print " durchschnitt: " + ms2 / 10000.0 + "ms" Print "" Print "damit ist die neue funktion " + ms1 / Float(ms2) + "x schneller" Print "" Print "" Print "zum beenden beliebige taste drücken..." WaitKey |
||
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans! Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sind coole Namen dabei, wenn ich mal wieder unkreativ bin, werd ich's benutzen ![]() |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Silver_KneeBetreff: @amul |
![]() Antworten mit Zitat ![]() |
---|---|---|
hey danke ich werde es mit freude entgegen nehmen es soll auch gesagt sein dass ich äöü sowie sch und ch einbauen werde... ich arbeite dran und nehme einfachmal direkt den optimierten von amul^^
EDIT der code von amul scheit irgendwo schwachstellen zu haben ich bekomme immer wieder so sachen wie Ao was bei meinem code nie statt gefunden hätte EDIT so die fehler sind alle draußen ich habs oben verbessert und ne neue version mit sch und ch ist drinne... |
||
![]() |
Evolver01 |
![]() Antworten mit Zitat ![]() |
---|---|---|
nochmal ne kleine optimierung von mir^^:
name= Replace(name, "q", "qu") genau hier name=Replace(name,"quu","qu") name=Replace(name,"Quu","Qu") zwischen name= Replace(name, Chr(96), "sch") name= Replace(name, Chr(95), "ch") da es immer mal vorkommt das sich ein doppel u einschleicht |
||
Grafiker von Space Threat... |
![]() |
FireballFlame |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hehe, schicke Sache!
Mit ein paar Codezeilen kann man auch sowas wie nen Lorem Ipsum-Generator draus machen ![]() ![]() |
||
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit |
![]() |
Evolver01 |
![]() Antworten mit Zitat ![]() |
---|---|---|
tadaa nun kann er sogar apostroph gross und kleinbuchstaben (a e i o u):
Code: [AUSKLAPPEN] Function GenerateName$(min, max)
Local name$, char, vowel, length a$=Chr$(193) e$=Chr$(201) i$=Chr$(205) o$=Chr$(211) u$=Chr$(218) vowel = Rand(0, 1) length = Rand(min, max) For x = 1 To length vowel = Not vowel If vowel Repeat char = Rand(95, 122) Until (char <> Asc("a")) And (char <> Asc("e")) And (char <> Asc("i")) And (char <> Asc("o")) And (char <> Asc("u")) Else Select Rand(1, 25) Case 1 char = 97 Case 2 char = 101 Case 3 char = 105 Case 4 char = 111 Case 5 char = 117 Case 6 char = 225 Case 7 char = 233 Case 8 char = 237 Case 9 char = 243 Case 10 char = 250 Case 11 char = 97 Case 12 char = 101 Case 13 char = 105 Case 14 char = 111 Case 15 char = 117 Case 16 char = 97 Case 17 char = 101 Case 18 char = 105 Case 19 char = 111 Case 20 char = 117 Case 21 char = 97 Case 22 char = 101 Case 23 char = 105 Case 24 char = 111 Case 25 char = 117 End Select EndIf name = name + Chr(char) Next name= Replace(name, "q", "qu") name= Replace(name,"quu","qu") name= Replace(name, Chr(96), "sch") name= Replace(name, Chr(95), "ch") name= Upper(Mid(name, 1,1)) + Mid(name,2) apo$=Left(name,1) apoa$=Instr(apo,Chr$(225)) If apoa =1 Then name=a+Mid(name,2,-1) EndIf apoe$=Instr(apo,Chr$(233)) If apoe =1 Then name=e+Mid(name,2,-1) EndIf apoi$=Instr(apo,Chr$(237)) If apoi =1 Then name=i+Mid(name,2,-1) EndIf apoo$=Instr(apo,Chr$(243)) If apoo =1 Then name=o+Mid(name,2,-1) EndIf apou$=Instr(apo,Chr$(250)) If apou =1 Then name=u+Mid(name,2,-1) EndIf Return name End Function |
||
Grafiker von Space Threat... |
![]() |
FireballFlame |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sooo, ich hab das Ganze mal noch ein wenig verkompliziert ^^
Der Code ist jetzt zwar wieder langsamer, aber es kommen jetzt noch schönere Namen heraus, finde ich ^^ Code: [AUSKLAPPEN] Function GenerateName$(min, max)
Local name$, char, lastchar, vowel, lastvowel, length, sz2 vowel = Rand(0, 1) lastvowel=1-vowel length = Rand(min, max) For x = 1 To length If x<3 Or lastchar<97 Or lastchar>119 Or sz2=1 Or lastvowel=1 Or Rand(1,4)<3 vowel = Not vowel Else vowel = Rand(0,1) End If If lastvowel=vowel sz2=1 Else sz2=0 lastvowel=vowel If vowel Repeat char = Rand(94, 122) Until char<>Asc("a") And char<>Asc("e") And char<>Asc("i") And char<>Asc("o") And char<>Asc("u") And char<>lastchar And ((char<>99 And char<>113 And char<>118 And char<>120 And char<>121) Or Rand(1,7)>4) And (char>94 Or x>1) Else Select Rand(1, 5) Case 1 char = Asc("a") Case 2 char = Asc("e") Case 3 char = Asc("i") Case 4 char = Asc("o") Case 5 char = Asc("u") End Select EndIf name = name + Chr(char) lastchar=char Next nz1$=Left(name,1) nzl$=Right(name,1) name=Mid(name,2,Len(name)-2) name=Replace(name,"b","bb",15) name=Replace(name,"c","cc",10) name=Replace(name,"d","dd",15) name=Replace(name,"f","ff",15) name=Replace(name,"g","gg",15) name=Replace(name,"k","kk",10) name=Replace(name,"l","ll",15) name=Replace(name,"m","mm",10) name=Replace(name,"n","nn",15) name=Replace(name,"p","pp",10) name=Replace(name,"s","ss",15) name=Replace(name,"t","tt",15) name=nz1+name+nzl name=Replace(name, "q", "qu") name=Replace(name,"quu","qu") name=Replace(name, Chr(96),"sch") name=Replace(name, Chr(95),"ch") name=Replace(name, Chr(94),"ck") nnl=Rand(min,max) name=Left(Upper(Mid(name,1,1))+Mid(name,2),nnl) Return name End Function Function Replace$(zrep_string$,zrep_from$,zrep_to$,zrep_probab=100) zrep_fl=Len(zrep_from) zrep_tl=Len(zrep_string) zrep_vl=Len(zrep_to)-Len(zrep_from) For zrep_snt=1 To zrep_tl If Mid(zrep_string,zrep_snt,zrep_fl)=zrep_from And Rand(1,100)<=zrep_probab zrep_string=Left(zrep_string,zrep_snt-1)+zrep_to+Mid(zrep_string,zrep_snt+zrep_fl,-1) zrep_snt=zrep_snt+zrep_vl zrep_tl=zrep_tl+zrep_vl End If Next Return zrep_string End Function Mal schaun, ob sich das Ganze noch ein bissl auf Aussprechbarkeit optimieren lässt... @Evolver: Akzent heißen die Dinger (´, ` und ^), Abostroph ist das hier: ' ![]() |
||
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit |
- Zuletzt bearbeitet von FireballFlame am Mo, Jul 16, 2007 1:02, insgesamt 3-mal bearbeitet
![]() |
Evolver01 |
![]() Antworten mit Zitat ![]() |
---|---|---|
ja hehe danke dir... ich hab den code mit den akzenten noch etwas optimiert und hab noch Ý und ý hinzugeführt sieht nun echt nice aus ![]() Code: [AUSKLAPPEN] Function GenerateName$(min, max)
Local name$, char, vowel, length a$=Chr$(193) e$=Chr$(201) i$=Chr$(205) o$=Chr$(211) u$=Chr$(218) y$=Chr$(221) vowel = Rand(0, 1) length = Rand(min, max) For x = 1 To length vowel = Not vowel If vowel Repeat char = Rand(95, 122) Until (char <> Asc("a")) And (char <> Asc("e")) And (char <> Asc("i")) And (char <> Asc("o")) And (char <> Asc("u")) Else apornd=Rnd(1,10) If apornd <> 5 Then Select Rand(1,5) Case 1 char = 97 Case 2 char = 101 Case 3 char = 105 Case 4 char = 111 Case 5 char = 117 End Select Else Select Rand(1,6) Case 1 char = 225 Case 2 char = 233 Case 3 char = 237 Case 4 char = 243 Case 5 char = 250 Case 6 char = 253 End Select EndIf EndIf name = name + Chr(char) Next name= Replace(name, "q", "qu") name= Replace(name,"yý","ý") name= Replace(name,"ýy","y") name= Replace(name,"quu","qu") name= Replace(name, Chr(96), "sch") name= Replace(name, Chr(95), "ch") name= Upper(Mid(name, 1,1)) + Mid(name,2) apo$=Left(name,1) apoa$=Instr(apo,Chr$(225)) If apoa =1 Then name=a+Mid(name,2,-1) EndIf apoe$=Instr(apo,Chr$(233)) If apoe =1 Then name=e+Mid(name,2,-1) EndIf apoi$=Instr(apo,Chr$(237)) If apoi =1 Then name=i+Mid(name,2,-1) EndIf apoo$=Instr(apo,Chr$(243)) If apoo =1 Then name=o+Mid(name,2,-1) EndIf apou$=Instr(apo,Chr$(250)) If apou =1 Then name=u+Mid(name,2,-1) EndIf apoy$=Instr(apo,Chr$(253)) If apoy =1 Then name=y+Mid(name,2,-1) EndIf Return name End Function |
||
Grafiker von Space Threat... |
![]() |
FireballFlame |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok, hab jetzt mal beides gewissermaßen vereinigt und in meine Version auch Akzente eingebaut, geht bei mir einfacher ^^
Umlaute und weitere Zeichen sollte man meiner Meinung nach weglassen, sonst wirds zu länderspezifisch ![]() Hier ist jedenfalls der Code: [AUSKLAPPEN] Function GenerateName$(min, max)
Local name$, char, lastchar, vowel, lastvowel, length, sz2 vowel = Rand(0, 1) lastvowel=1-vowel length = Rand(min, max) For x = 1 To length If x<3 Or lastchar<97 Or lastchar>119 Or sz2=1 Or lastvowel=1 Or Rand(1,4)<3 vowel = Not vowel Else vowel = Rand(0,1) End If If lastvowel=vowel sz2=1 Else sz2=0 lastvowel=vowel If vowel Repeat char = Rand(94, 122) Until char<>Asc("a") And char<>Asc("e") And char<>Asc("i") And char<>Asc("o") And char<>Asc("u") And char<>lastchar And ((char<>99 And char<>113 And char<>118 And char<>120 And char<>121) Or Rand(1,7)>4) And (char>94 Or x>1) Else Select Rand(1, 5) Case 1 char = Asc("a") Case 2 char = Asc("e") Case 3 char = Asc("i") Case 4 char = Asc("o") Case 5 char = Asc("u") End Select EndIf name = name + Chr(char) lastchar=char Next nz1$=Left(name,1) nzl$=Right(name,1) name=Mid(name,2,Len(name)-2) name=Replace(name,"b","bb",15) name=Replace(name,"c","cc",10) name=Replace(name,"d","dd",15) name=Replace(name,"f","ff",15) name=Replace(name,"g","gg",15) name=Replace(name,"k","kk",10) name=Replace(name,"l","ll",15) name=Replace(name,"m","mm",10) name=Replace(name,"n","nn",15) name=Replace(name,"p","pp",10) name=Replace(name,"s","ss",15) name=Replace(name,"t","tt",15) name=name+nzl name=Replace(name,"a","á",5) name=Replace(name,"e","é",5) name=Replace(name,"i","í",5) name=Replace(name,"o","ó",5) name=Replace(name,"u","ú",5) name=Replace(name,"y","ý",4) name=Replace(name,"a","à",3) name=Replace(name,"e","è",3) name=Replace(name,"i","ì",3) name=Replace(name,"o","ò",3) name=Replace(name,"u","ù",3) name=Replace(name,"a","â",3) name=Replace(name,"e","ê",3) name=Replace(name,"i","î",3) name=Replace(name,"o","ô",3) name=Replace(name,"u","û",3) name=nz1+name name=Replace(name, "q", "qu") name=Replace(name,"quu","qu") name=Replace(name, Chr(96),"sch") name=Replace(name, Chr(95),"ch") name=Replace(name, Chr(94),"ck") nnl=Rand(min,max) name=Left(Upper(Mid(name,1,1))+Mid(name,2),nnl) Return name End Function Function Replace$(zrep_string$,zrep_from$,zrep_to$,zrep_probab=100) zrep_fl=Len(zrep_from) zrep_tl=Len(zrep_string) zrep_vl=Len(zrep_to)-Len(zrep_from) For zrep_snt=1 To zrep_tl If Mid(zrep_string,zrep_snt,zrep_fl)=zrep_from And Rand(1,100)<=zrep_probab zrep_string=Left(zrep_string,zrep_snt-1)+zrep_to+Mid(zrep_string,zrep_snt+zrep_fl,-1) zrep_snt=zrep_snt+zrep_vl zrep_tl=zrep_tl+zrep_vl End If Next Return zrep_string End Function |
||
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit |
![]() |
Evolver01 |
![]() Antworten mit Zitat ![]() |
---|---|---|
nice, aber ein paar doppelbuchstaben hätts auch weglassen können und das "^" auch sieht irgendwie scheisse aus xD und wenn du dann noch definieren kannst, welcher name männlich, weiblich, cosmisch, ländisch ist und das alles ordentlich gelistet inne txt bekommst, bekommst n dickes lob von mir^^ | ||
Grafiker von Space Threat... |
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich versuch gerade zu basteln, dass es rausfindet wie lange es geht bis es auf meinen Namen kommt. xD | ||
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
Grundsätzlich n name mit a am ende ist fast immer weiblich und o ist ausschlaggebend für männlich... sogesehen..... Palava zb ist mehr weiblich und Xoqualo mehr männlich wer also sicher gehen will mnimmt einfach für jungs nur namen die auf o enden und für frauen nur welche die auf a enden.
Das ist eigendlich eine italiensche grammatik regel hat sich aber bei namen eingebürgert (Alexa Maria Sonia/Antonio Mario Francesco^^). Als Nachname kann alles herhalten.... geschrieben hab ich das für bot-gegner bei Agent und für Planeten-Namen bei nem kleineren projekt. und da waren nun wirklich geschlechter egal |
||
![]() |
Evolver01 |
![]() Antworten mit Zitat ![]() |
---|---|---|
hmm ich hätte es toll gefunden wenn du nochmal online gekommen wärst.. aber naja ..... | ||
Grafiker von Space Threat... |
![]() |
FireballFlame |
![]() Antworten mit Zitat ![]() |
---|---|---|
Evolver01 hat Folgendes geschrieben: nice, aber ein paar doppelbuchstaben hätts auch weglassen können
Wenns dir zuviele sind, kannst du das ja verändern. Für Doppelvokale musst du die Rand()-Bedingung in der 8. Zeile verändern und für die Doppelkonsonanten den letzten Parameter bei meiner neuen Replace-Funktion (der gibt die Wahrscheinlichkeit in % an). Evolver01 hat Folgendes geschrieben: und das "^" auch sieht irgendwie scheisse aus xD
Geschmackssache. Wenn dus net magst, dann nimms halt raus. Evolver01 hat Folgendes geschrieben: und wenn du dann noch definieren kannst, welcher name männlich, weiblich ...
Bitte sehr ![]() (den Code kann man gleich ausführen) Code: [AUSKLAPPEN] Graphics 640,480,0,2
SeedRnd MilliSecs() For i=1 To 15 n$=generatename(3,8) If namegender(n)=0 g$="(männlich)" Else g$="(weiblich)" Print n+" "+g Next WaitKey End Function GenerateName$(min, max) Local name$, char, lastchar, vowel, lastvowel, length, sz2 vowel = Rand(0, 1) lastvowel=1-vowel length = Rand(min, max) For x = 1 To length If x<3 Or lastchar<97 Or lastchar>119 Or sz2=1 Or lastvowel=1 Or Rand(1,4)<3 vowel = Not vowel Else vowel = Rand(0,1) End If If lastvowel=vowel sz2=1 Else sz2=0 lastvowel=vowel If vowel Repeat char = Rand(94, 122) Until char<>Asc("a") And char<>Asc("e") And char<>Asc("i") And char<>Asc("o") And char<>Asc("u") And char<>lastchar And ((char<>99 And char<>113 And char<>118 And char<>120 And char<>121) Or Rand(1,7)>4) And (char>94 Or x>1) Else Repeat Select Rand(1, 5) Case 1 char = Asc("a") Case 2 char = Asc("e") Case 3 char = Asc("i") Case 4 char = Asc("o") Case 5 char = Asc("u") End Select Until Rand(1,3)>1 Or char<>lastchar EndIf name = name + Chr(char) lastchar=char Next nz1$=Left(name,1) nzl$=Right(name,1) name=Mid(name,2,Len(name)-2) name=Replace(name,"b","bb",15) name=Replace(name,"c","cc",10) name=Replace(name,"d","dd",15) name=Replace(name,"f","ff",15) name=Replace(name,"g","gg",15) name=Replace(name,"k","kk",10) name=Replace(name,"l","ll",15) name=Replace(name,"m","mm",10) name=Replace(name,"n","nn",15) name=Replace(name,"p","pp",10) name=Replace(name,"s","ss",15) name=Replace(name,"t","tt",15) name=name+nzl name=Replace(name,"a","á",5) name=Replace(name,"e","é",5) name=Replace(name,"i","í",5) name=Replace(name,"o","ó",5) name=Replace(name,"u","ú",5) name=Replace(name,"y","ý",4) name=Replace(name,"a","à",3) name=Replace(name,"e","è",3) name=Replace(name,"i","ì",3) name=Replace(name,"o","ò",3) name=Replace(name,"u","ù",3) name=Replace(name,"a","â",2) name=Replace(name,"e","ê",2) name=Replace(name,"i","î",2) name=Replace(name,"o","ô",2) name=Replace(name,"u","û",2) name=nz1+name name=Replace(name, "q", "qu") name=Replace(name,"quu","qu") name=Replace(name, Chr(96),"sch") name=Replace(name, Chr(95),"ch") name=Replace(name, Chr(94),"ck") nnl=Rand(min,max) name=Left(Upper(Mid(name,1,1))+Mid(name,2),nnl) Return name End Function Function Replace$(zrep_string$,zrep_from$,zrep_to$,zrep_probab=100) zrep_fl=Len(zrep_from) zrep_tl=Len(zrep_string) zrep_vl=Len(zrep_to)-Len(zrep_from) For zrep_snt=1 To zrep_tl If Mid(zrep_string,zrep_snt,zrep_fl)=zrep_from And Rand(1,100)<=zrep_probab zrep_string=Left(zrep_string,zrep_snt-1)+zrep_to+Mid(zrep_string,zrep_snt+zrep_fl,-1) zrep_snt=zrep_snt+zrep_vl If zrep_snt<1 zrep_snt=1 zrep_tl=zrep_tl+zrep_vl End If Next Return zrep_string End Function Function NameGender(zbname$) ; Rückgabe: 0=männlich, 1=weiblich zbname=Lower(zbname) zbname=Replace(zbname,"á","a") zbname=Replace(zbname,"é","e") zbname=Replace(zbname,"í","i") zbname=Replace(zbname,"ó","o") zbname=Replace(zbname,"ú","u") zbname=Replace(zbname,"ý","y") zbname=Replace(zbname,"à","a") zbname=Replace(zbname,"è","e") zbname=Replace(zbname,"ì","i") zbname=Replace(zbname,"ò","o") zbname=Replace(zbname,"ù","u") zbname=Replace(zbname,"â","a") zbname=Replace(zbname,"ê","e") zbname=Replace(zbname,"î","i") zbname=Replace(zbname,"ô","o") zbname=Replace(zbname,"û","u") zbname=Replace(zbname,"sch",Chr(96)) zbname=Replace(zbname,"ch",Chr(95)) zbname=Replace(zbname,"ck",Chr(94)) mw#=0 For zhw=1 To Len(zbname) Select Mid(zbname,zhw,1) Case "u","c","w","z" mw=mw-1 Case Chr(94),Chr(96),"k","g","o","p","q","r","s","t","x" mw=mw-2 Case Chr(95),"a","e","l","m","n" mw=mw+1 Case "h","i","y","v" mw=mw+2 End Select Next neg=-1 r$=Right(zbname,1) If r="a" Or r="e" Or r="i" Or r="h" Or r="v" Or r="z" neg=1 If r="y" Or r="z" Or r="c" Or r="q" Or r="h" neg=0 mw=mw+5*neg mw=Sgn(mw) If mw=0 mw=mw+neg If mw=0 mw=-1 If mw<1 mw=mw+1 Return mw End Function |
||
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit |
- Zuletzt bearbeitet von FireballFlame am Di, Jul 17, 2007 1:35, insgesamt einmal bearbeitet
![]() |
Evolver01 |
![]() Antworten mit Zitat ![]() |
---|---|---|
hey, die function ist echt nice, die gefällt mir!^^ hab ich gleich bei mir eingebaut^^ | ||
Grafiker von Space Threat... |
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Diese Funktion würd ich nicht ungefiltert in nem Spiel verwenden... Vorallem die namegender funktion gibt manchmal mist aus... hatte z.B. Cho (männlich)
Baut aber auch noch ein, das es keine Namen gibt wie z.B. Sch |
||
Gewinner der 6. und der 68. BlitzCodeCompo |
![]() |
FireballFlame |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wieso ist das "Mist? Würdest du den Namen "Cho" zum ersten Mal hören, wüsstest du, ob das ein Männer- oder Frauenname ist? Die Funktion sollte ja nicht zwischen zwischen Phantasiewörtern Männer- und Frauennamen unterscheiden, nicht zwischen echten. die Funktion gibt auch z.B. bei "Opa" "weiblich" aus ^^
Zum Thema "Sch" wär wohl das einfachste, nen Workaround zu machen und einfach hinterher zu prüfen, ob ein Vokal im Namen ist. |
||
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
jeah dann kommt :
Scha o.ô ich find meine grundfunktion bringts auch dakommen auf jedenfall abwechslungsreiche namen raus. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group