Author Topic: Fantasy Name Generator  (Read 6489 times)

Offline WPShadow

  • Administrator
  • Prof. Inline
  • *******
  • Posts: 1667
    • View Profile
    • http://lostrevenant.blogspot.com
Fantasy Name Generator
« on: 2008-Oct-08 »
Hi!

Ich dachte mir, ich programmiere mal schnell dieses Teil herunter. Es generiert zufällig in einer Funktion Zufallsnamen und gibt sie wieder zurück.

Ist die erste Version, aber ich überarbeite sie, sobald ich wieder ein bißchen Zeit habe. Hoffe irgendwer kann damit was anfangen.

Hoffe es gefällt so halbwegs, im Übrigen habe ich schon pläne, wie ich das Ding verbessern kann...

Gruß

W.

Code: GLBasic [Select]
// --------------------------------- //
// Project: FNG
// Start: Tuesday, October 07, 2008
// IDE Version: 5.360
LOCAL n$

       

WHILE TRUE

        n$ = FNG$(0, 7)

        PRINT n$, 0, 0

        SHOWSCREEN
        MOUSEWAIT
WEND




FUNCTION FNG$: start, lang
// ==========================
// Fantasy Name Generator 1.0
// ==========================
//
// 'start' --> gibt an, ob der Anfangsbuchstabe ein Mitlaut oder ein Selbstlaut ist
// 0 = Zufall
// 1 = Mitlaut
// 2 = Selbstlaut
//
// 'lang' --> gibt die Länge des gesamten Wortes an
LOCAL tmp, name$, status, buchst$, z_mit, z_sel, intern, status_tmp

FOR tmp = 1 TO lang


// Hier liegen die Standard - RND's
        IF start = 0
                status_tmp = RND(100)
                IF status_tmp <= 49 THEN status = 1
                IF status_tmp > 49 THEN status = 2
                start = 3
        ENDIF
       
        IF start = 1 THEN status = 1
        IF start = 2 THEN status = 2
       
       





SELECT status


// Hier werden die Mitlaute zufällig zugeteilt
CASE 1
               
        WHILE TRUE
               
                buchst$ = CHR$(RND(25) + 97)
               
                IF ASC(buchst$) <> 97 AND ASC(buchst$) <> 101 AND ASC(buchst$) <> 105 AND ASC(buchst$) <> 111 AND ASC(buchst$) <> 117
                        IF tmp = 1 THEN status = 2
                        IF tmp > 1
                               
                                intern =  RND(100)
                                IF intern <= 49
                                        status = 1
                                        z_mit = z_mit + 1
                                ENDIF
                                IF intern > 49
                                        status = 2
                                        z_mit = 0
                                ENDIF
                                // d/n/q/g/y/x/k
                                IF z_mit >= 2 OR ASC(buchst$) = 100 OR ASC(buchst$) = 110 OR ASC(buchst$) = 115 OR ASC(buchst$) = 113 OR ASC(buchst$) = 103 OR ASC(buchst$) = 121 OR ASC(buchst$) = 120 OR ASC(buchst$) = 107
                                        status = 2
                                        z_mit = 0
                                ENDIF
                               
                        ENDIF
                        BREAK
                ENDIF
       
        WEND
               

// Hier werden die Selbstlaute zufällig zugeteilt
CASE 2

        WHILE TRUE
               
                buchst$ = CHR$(RND(25) + 97)
               
                IF ASC(buchst$) = 97 OR ASC(buchst$) = 101 OR ASC(buchst$) = 105 OR ASC(buchst$) = 111 OR ASC(buchst$) = 117
                        IF tmp = 1 THEN status = 1
                        IF tmp > 1

                                intern =  RND(100)
                                IF intern <= 49
                                        status = 2
                                        z_sel = z_sel + 1
                                ENDIF
                                IF intern > 49
                                        status = 1
                                        z_sel = 0
                                ENDIF
                                IF z_sel >= 2 OR ASC(buchst$) = 117 OR ASC(buchst$) = 101
                                        status = 1
                                        z_sel = 0
                                ENDIF
               
                        ENDIF                  
                        BREAK
                ENDIF
       
        WEND  

ENDSELECT


        IF tmp = 1
                name$ = name$ + UCASE$(buchst$)
        ELSE
                name$ = name$ + LCASE$(buchst$)
        ENDIF


NEXT


RETURN name$

ENDFUNCTION



 
« Last Edit: 2008-Oct-11 by WPShadow »
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Offline Quentin

  • Prof. Inline
  • *****
  • Posts: 915
    • View Profile
Re: Fantasy Name Generator
« Reply #1 on: 2008-Oct-11 »
cool, WP, die generierten Namen hören sich ganz gut an
Quzlaca lässt grüßen ;)

Offline WPShadow

  • Administrator
  • Prof. Inline
  • *******
  • Posts: 1667
    • View Profile
    • http://lostrevenant.blogspot.com
Re: Fantasy Name Generator
« Reply #2 on: 2008-Oct-11 »
hehehe

Ich weiß, die ersten Namen sind Furchtbar! *ggg*

Inzwischen baue ich an der 2. Version. Darin sind einige Regeln eingebaut, die auch mit Wahrscheinlichkeiten usw. arbeiten. Insgesamt wird es viel weniger q's usw. geben, sodass es wirklich zu "normaleren" Namen kommen sollte. Dauert aber ein bißchen, da die Version auch um einiges aufwändiger wird!
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Offline Quentin

  • Prof. Inline
  • *****
  • Posts: 915
    • View Profile
Re: Fantasy Name Generator
« Reply #3 on: 2008-Oct-11 »
Ave Vesedix!
fein, wünsche dir viel Erfolg dabei. Wären dann auch Namen mit unterschiedlicher Länge drin?

Offline WPShadow

  • Administrator
  • Prof. Inline
  • *******
  • Posts: 1667
    • View Profile
    • http://lostrevenant.blogspot.com
Re: Fantasy Name Generator
« Reply #4 on: 2008-Oct-11 »
Sind sie jetzt doch auch schon! Mußt dir die Funktion nur genau ansehen:

bla$ = FNG$(start, lang)

Code: GLBasic [Select]
// &#39;start&#39; --> gibt an, ob der Anfangsbuchstabe ein Mitlaut oder ein Selbstlaut ist
// 0 = Zufall
// 1 = Mitlaut
// 2 = Selbstlaut
//
// &#39;lang&#39; --> gibt die Länge des gesamten Wortes an
 

Die 2. Version wird gleich funktionieren, aber dafür werden intern viel mehr Abwandlungen bzw. Modifikationen durchgeführt...
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5024
  • O Rly?
    • View Profile
Re: Fantasy Name Generator
« Reply #5 on: 2008-Oct-12 »
Die Österreicher wieder :D
I <3 DGArray's :D

PC:
AMD Ryzen 7 1700 @3.9GHz, 16GB HyperX Fury 3000MHz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline Schnatterplatsch

  • Mc. Print
  • *
  • Posts: 41
    • View Profile
Re: Fantasy Name Generator
« Reply #6 on: 2009-Mar-24 »
ich hatte vor ewigketen mal ein programm in java geschrieben, dass die buchstaben in einem text z?hlt und die wahrscheinlichkeit zur?ck gibt, dass ein buchstabe auftaucht. Interesse???

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5024
  • O Rly?
    • View Profile
Re: Fantasy Name Generator
« Reply #7 on: 2009-Mar-24 »
Stochastik ?   =D
I <3 DGArray's :D

PC:
AMD Ryzen 7 1700 @3.9GHz, 16GB HyperX Fury 3000MHz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline WPShadow

  • Administrator
  • Prof. Inline
  • *******
  • Posts: 1667
    • View Profile
    • http://lostrevenant.blogspot.com
Re: Fantasy Name Generator
« Reply #8 on: 2009-Mar-25 »
Ja, da k?nnen wir gerne auch zusammen was basteln!

Bin bis jetzt noch nicht dazu gekomen eine ordentliche 2. Version von dem Ding zu machen!  =D
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Offline Schnatterplatsch

  • Mc. Print
  • *
  • Posts: 41
    • View Profile
Re: Fantasy Name Generator
« Reply #9 on: 2009-Mar-26 »
Quote
Ja, da k?nnen wir gerne auch zusammen was basteln!

Bin bis jetzt noch nicht dazu gekomen eine ordentliche 2. Version von dem Ding zu machen!  grin

Bin grade am ?berlegen was man da nimmt: Die Wahrscheinlichkeit eines Buchstabens innerhalb eines Namens oder die allg. Wahrscheinlichkeit in allen w?rtern