Name-Generator

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

 

Rocys

Betreff: Name-Generator

BeitragFr, Jan 23, 2009 17:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Namensgenerator fuer mein Projekt "Traders". Bisher gibt er nur Fantasie-Namen aus. Wird noch verbessert.
Code: [AUSKLAPPEN]

const gender_neutral=0
const gender_male=1
const gender_female=2
Function generate_name$(gender=gender_neutral)
   Local name_generator_silben%               ;Die Anzahl der name_generator_silben fuer einen Namen
   Local name_generator_name$               ;Der name der generiert wird
   Local name_generator_silbe$               ;Eine Silbe, die hinzugefuegt wird
   Local name_generator_last_char$            ;der letzte Buchstabe im Namen
   Local name_generator_first_char$         ;der erste Buchstabe im Namen
   Local name_generator_i%                  ;schleifenzaehler
   name_generator_silben=Rand(0,2)
   If name_generator_silben=2 Then name_generator_silben=Rand(2,3)
   If name_generator_silben=3 Then name_generator_silben=Rand(3,4)
   name_generator_name$=""
   For name_generator_i=0 To name_generator_silben
      name_generator_silbe$=""
      If Rand(0,4)=1 Then name_generator_silbe$=name_generator_silbe$+get_vokal$
      name_generator_silbe$=name_generator_silbe$+get_konsonant$()   
      If name_generator_i<>0 Then
         name_generator_last_char$=Right$(name_generator_silbe$,1)
         If name_generator_last_char$="r" And Rand(0,2)=1 Then
            Select Rand(0,6)
               Case 0
                  name_generator_silbe$=name_generator_silbe$+"t"
               Case 1
                  name_generator_silbe$=name_generator_silbe$+"p"
               Case 2
                  name_generator_silbe$=name_generator_silbe$+"s"
               Case 3
                  name_generator_silbe$=name_generator_silbe$+"k"
               Case 4
                  name_generator_silbe$=name_generator_silbe$+"z"
               Case 5
                  name_generator_silbe$=name_generator_silbe$+"b"
               Case 6
            End Select
         End If
         If name_generator_last_char$="t" And Rand(0,2)=1 Then
            Select Rand(0,2)
               Case 0
                  name_generator_silbe$=name_generator_silbe$+"s"
               Case 1
                  name_generator_silbe$=name_generator_silbe$+"h"
               Case 2
                  name_generator_silbe$=name_generator_silbe$+"z"
            End Select
         End If
         If name_generator_last_char$="p" And Rand(0,2)=1 Then
            Select Rand(0,2)
               Case 0
                  name_generator_silbe$=name_generator_silbe$+"r"
               Case 1
                  name_generator_silbe$=name_generator_silbe$+"h"
               Case 2
                  name_generator_silbe$=name_generator_silbe$+"l"
            End Select
         End If
         If name_generator_last_char$="s" And Rand(0,2)=1 Then
            Select Rand(0,5)
               Case 0
                  name_generator_silbe$=name_generator_silbe$+"c"
               Case 1
                  name_generator_silbe$=name_generator_silbe$+"h"
               Case 2
                  name_generator_silbe$=name_generator_silbe$+"ch"
               Case 3
                  name_generator_silbe$=name_generator_silbe$+"t"
               Case 4
                  name_generator_silbe$=name_generator_silbe$+"p"
               Case 5
                  name_generator_silbe$=name_generator_silbe$+"v"
            End Select
         End If
      End If
      If name_generator_i<>name_generator_silben Or name_generator_silben=0 Or Rand(0,4)=1 Then name_generator_silbe$=name_generator_silbe$+get_vokal$()
      If Rand(0,5)=1 Then name_generator_silbe$=name_generator_silbe$+get_vokal$
      name_generator_name$=name_generator_name$+name_generator_silbe$
   Next
   If gender=gender_male Then
      Select Rand(0,4)
         Case 0
            name_generator_name$=name_generator_name$+"os"
         Case 1
            name_generator_name$=name_generator_name$+"us"
         Case 2
            name_generator_last_char$=Right$(name_generator_name$,1)
            If name_generator_last_char$="a" Or name_generator_last_char$="e" Or name_generator_last_char$="i" Or name_generator_last_char$+"o" Or name_generator_last_char$="u"  Or name_generator_last_char$="h" Then name_generator_name$=name_generator_name$+"r" Else name_generator_name$=name_generator_name$+get_vokal$+"r"
         Case 3
            name_generator_last_char$=Right$(name_generator_name$,1)
            If name_generator_last_char$="a" Or name_generator_last_char$="e" Or name_generator_last_char$="i" Or name_generator_last_char$+"o" Or name_generator_last_char$="u" Or name_generator_last_char$="r" Or name_generator_last_char$="h" Then name_generator_name$=name_generator_name$+"s" Else name_generator_name$=name_generator_name$+"os"
         Case 4
            name_generator_last_char$=Right$(name_generator_name$,1)
            If name_generator_last_char$="a" Or name_generator_last_char$="e" Or name_generator_last_char$="i" Or name_generator_last_char$+"o" Or name_generator_last_char$="u" Or name_generator_last_char$="r" Or name_generator_last_char$="h" Then name_generator_name$=name_generator_name$+get_konsonant$()
      End Select
   End If
   If gender=gender_female Then
      Select Rand(0,4)
         Case 0
            name_generator_name$=name_generator_name$+"ia"
         Case 1
            name_generator_name$=name_generator_name$+"a"
         Case 2
            name_generator_last_char$=Right$(name_generator_name$,1)
            If name_generator_last_char$="a" Or name_generator_last_char$="e" Or name_generator_last_char$="i" Or name_generator_last_char$+"o" Or name_generator_last_char$="u" Or name_generator_last_char$="r"  Then name_generator_name$=name_generator_name$+"th" Else name_generator_name$=name_generator_name$+"uth"
         Case 3
            name_generator_name$=name_generator_name$+"ine"
         Case 4
            name_generator_name$=name_generator_name$+"ua"
      End Select
   End If
   name_generator_first_char$=Upper$(Left$(name_generator_name$,1))
   name_generator_name$=name_generator_first_char$+Right$(name_generator_name$,Len(name_generator_name$)-1)
   Return name_generator_name$
End Function

Function get_vokal$()
   Local get_vokal_nummer%
   Local get_vokal_vokal$
   get_vokal_nummer=Rand(0,4)
   Select get_vokal_nummer
      Case 0
         get_vokal_vokal$= "a"
      Case 1
         get_vokal_vokal$="e"
      Case 2
         get_vokal_vokal$="i"
      Case 3
         get_vokal_vokal$="o"
      Case 4
         get_vokal_vokal$="u"
   End Select
   Return get_vokal_vokal$
   
End Function

Function get_konsonant$()
   Local get_konsonant_konsonant$
   Repeat
      get_konsonant_konsonant$=Chr$(Rand(98,122))
   Until get_konsonant_konsonant$<>"a" And get_konsonant_konsonant$<>"e" And get_konsonant_konsonant$<>"i" And get_konsonant_konsonant$<>"o" And get_konsonant_konsonant$<>"u"
   Return get_konsonant_konsonant$
End Function

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group