GLBasic forum

Codesnippets => Code Snippets => Topic started by: WPShadow on 2008-Oct-08

Title: Fantasy Name Generator
Post by: WPShadow 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



Title: Re: Fantasy Name Generator
Post by: Quentin on 2008-Oct-11
cool, WP, die generierten Namen hören sich ganz gut an
Quzlaca lässt grüßen ;)
Title: Re: Fantasy Name Generator
Post by: WPShadow 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!
Title: Re: Fantasy Name Generator
Post by: Quentin on 2008-Oct-11
Ave Vesedix!
fein, wünsche dir viel Erfolg dabei. Wären dann auch Namen mit unterschiedlicher Länge drin?
Title: Re: Fantasy Name Generator
Post by: WPShadow 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

// '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


Die 2. Version wird gleich funktionieren, aber dafür werden intern viel mehr Abwandlungen bzw. Modifikationen durchgeführt...
Title: Re: Fantasy Name Generator
Post by: Schranz0r on 2008-Oct-12
Die Österreicher wieder :D
Title: Re: Fantasy Name Generator
Post by: Schnatterplatsch 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???
Title: Re: Fantasy Name Generator
Post by: Schranz0r on 2009-Mar-24
Stochastik ?   =D
Title: Re: Fantasy Name Generator
Post by: WPShadow 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
Title: Re: Fantasy Name Generator
Post by: Schnatterplatsch on 2009-Mar-26
QuoteJa, 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