Noch ein Namengenerator
Verfasst: 20.12.2006 23:33
Mein Namengenerator ist gut für Spiele verwendbar, da er in einer Prozedur ist. Die länge sollte 4-8 betragen, das ist sowieso nicht so genau. Der längenparameter ist sowieso ein schätzeisen
das ding hab ich schon in viele spiele eingebaut.

Code: Alles auswählen
Procedure.s CreateFantasyName(CFN_Length.b)
Repeat
A$ = Chr$(Random(25)+65)
Until A$<> "X" And A$ <>"Q" And A$<> "J" And A$<> "Y"
If A$ = "A" Or A$ = "E" Or A$ = "I" Or A$ = "O" Or A$ = "U"
flip=1
Else
flip=0
EndIf
Length=CFN_Length-1 ;
For a = 1 To Length
If flip
Repeat
forbid=0
Repeat
B$ = Chr$(Random(25)+97)
Until B$ <> "a" And B$ <> "e" And B$ <> "i" And B$ <> "o" And B$ <> "u" And B$ <> "y" And B$ <> "j"
Select B$
Case "h"
If a= Length
forbid=1
EndIf
Case "c"
If a= Length
forbid=1
Else
Select Random(2)
Case 0
B$+"h"
flip =Random( 1)
Case 1
B$+"k"
EndSelect
Length-1
EndIf
Case "k"
forbid=1
Case "q"
If a >= Length -1
forbid=1
Else
B$+"u"
Length-1
EndIf
Case "r"
If Random(1) And a <> Length
B$+"r"
Length-1
EndIf
Case "s"
If Random(1) And a <> Length
B$+"s"
Length-1
EndIf
Case "t"
If Random(1) And a <> Length
B$+"t"
Length-1
EndIf
Case "f"
If Random(1) And a <> Length
B$+"f"
Length-1
EndIf
Case "m"
If Random(1) And a <> Length
B$+"m"
Length-1
EndIf
Case "x"
If FindString(A$,"x",1)
forbid=1
EndIf
EndSelect
Until forbid=0
A$+B$
Else
Repeat
forbid=0
Select Random(4)
Case 1
A$+"a"
Case 2
A$+"e"
Case 3
A$+"i"
Case 4
A$+"o"
Case 0
If B$ <> "qu"
A$+"u"
Else
forbid=1
EndIf
EndSelect
Until forbid=0
EndIf
flip ! 1
Next a
ProcedureReturn A$
EndProcedure
For a = 0 To 100
Debug CreateFantasyName(6)
Next a