[bb] Random Word Generator by Luke111 [ 1+ years ago ]

Started by BlitzBot, June 29, 2017, 00:28:41

Previous topic - Next topic

BlitzBot

Title : Random Word Generator
Author : Luke111
Posted : 1+ years ago

Description : Generate Words!!!

Code :
Code (blitzbasic) Select
Global g$ = ""
Function getLetter(i%)
If i% = 1 Then
a$ = "a"
ElseIf i% = 2 Then
a$ = "b"
ElseIf i% = 3 Then
a$ = "c"
ElseIf i% = 4 Then
a$ = "d"
ElseIf i% = 5 Then
a$ = "e"
ElseIf i% = 6 Then
a$ = "f"
ElseIf i% = 7 Then
a$ = "g"
ElseIf i% = 8 Then
a$ = "h"
ElseIf i% = 9 Then
a$ = "i"
ElseIf i% = 10 Then
a$ = "j"
ElseIf i% = 11 Then
a$ = "k"
ElseIf i% = 12 Then
a$ = "l"
ElseIf i% = 13 Then
a$ = "m"
ElseIf i% = 14 Then
a$ = "n"
ElseIf i% = 15 Then
a$ = "o"
ElseIf i% = 16 Then
a$ = "p"
ElseIf i% = 17 Then
a$ = "q"
ElseIf i% = 18 Then
a$ = "r"
ElseIf i% = 19 Then
a$ = "s"
ElseIf i% = 20 Then
a$ = "t"
ElseIf i% = 21 Then
a$ = "u"
ElseIf i% = 22 Then
a$ = "v"
ElseIf i% = 23 Then
a$ = "w"
ElseIf i% = 24 Then
a$ = "x"
ElseIf i% = 25 Then
a$ = "y"
ElseIf i% = 26 Then
a$ = "z"
EndIf
g$ = g$+a$
End Function
SeedRnd MilliSecs()
.loop
l% = 0
h% = Input$("Words? - ")
While h% <> l%
l% = l%+1
a% = Rand(1,26)
b% = Rand(1,26)
c% = Rand(1,26)
d% = Rand(1,26)
e% = Rand(1,26)
f% = Rand(1,26)
.loop1
If a% = b% Then
b% = Rand(1,26)
Goto loop1
EndIf
If b% = c% Then
c% = Rand(1,26)
Goto loop1
EndIf
If c% = d% Then
d% = Rand(1,26)
Goto loop1
EndIf
If d% = e% Then
e% = Rand(1,26)
Goto loop1
EndIf
If e% = f% Then
f% = Rand(1,26)
Goto loop1
EndIf
getLetter(a%)
getLetter(b%)
getLetter(c%)
getLetter(d%)
getLetter(e%)
getLetter(f%)
Print g$
g$ = ""
Wend
Goto loop


Comments :


matibee(Posted 1+ years ago)

 Interesting Luke :)I hope you take this in good faith, but your coding style is a little "lengthy"...
SuperStrict

Function GetLetter:String()
Return Chr( Rand(97,122) )
End Function

SeedRnd MilliSecs()

Local count% = Input$("Words? - ").ToInt()
Local length% = Input$( "Length? - ").ToInt()

While count
Local word$ = GetLetter()

For Local t:Int = 2 To length
Local a$ = GetLetter()
While( a$ = Mid$( word$, t-1, 1 ) )
a$ = GetLetter()
Wend
word$ :+ a$
Next

Print word$
count :- 1
Wend
Tell me where to go if you like :)I'm sure there's more symantics involved with generating real words but this could be great for generating passwords.


Bobysait(Posted 1+ years ago)

 Is it something to do that ?SeedRnd MilliSecs()
Local length=Input("length :")
Local NbWords=Input("Nb Words :")
For w=1 To NbWords
Local word$ = ""
For c=1 To length
word=word+Chr(Rand(Asc("a"),Asc("z")))
Next
Print word
Next
WaitKey()
End
sure, it is a bit "lengthy" ^^If you want password, it should be better to randomize with number, and upper/lower charsThen , to generate words, maybe some traitments could be interesting, likeafter a,e,i,o,u,y, always choose some of b,c,d,f,g,h,j,k, etc...


Warner(Posted 1+ years ago)

 SeedRnd MilliSecs()
Dim m(3)
Dim p$(3, 100)
i = 0
j = 0
Repeat
Read pq$
If pq$= "*" Then Exit
If pq$ <> "-"
p$(i, j) = pq$
m(i) = j
j=j+1
Else
i=i+1
j = 0
End If
Forever

Write "You, sir, are nothing but a"
s$ = p$(0, Rand(m(0)))
If Instr("haeiouy", Left$(s$, 1)) > 0 Then Write "n " Else Write " "
Write s$
Write p$(1, Rand(m(1)))
Print p$(2, Rand(m(2))) + "!"
WaitKey
End

Data "br","bl","bw","b","c","ch","d","dr","dw","e","er","el","eg","f","fr","g","gh","gl","h","j","k","kn","l","-"
Data "a","ai","ay","au","e","ea","ee","ei","eo","eu","i","ia","ie","o","oa","oe","oi","oo","ou","u","y","-"
Data "b","d","f","st","n","m","ph","-"
Data "*"



Damien Sturdy(Posted 1+ years ago)

 It just called me a Kn0b!!!!! hahahah!


_PJ_(Posted 1+ years ago)

 Warner has the right idea. Ratehr than just spew out individual letters, ideally considerations ought to be made for:1) Syllables. Each syllable should be applied separately.2) "Style" of the word (Not sure if there's a correct term for this). i.e. average length, prevalence of vowels or double letters, specific endings (such as 'ing' or 'er' etc.3) A cleanup process to remive invalid or bad combinations, such as "kk", "bt", "iy" or "hh" etc.The Replace() function is very useful for this cleanup.Simple techniques could be to ensure groups of syllables begin  or end in vowels/consonants, by placing this in certain orders can make sure that the words re always "readable".Also, think of 'soft' sounds and 'hard sounds' the syllables create when spoken/written. Some consonants can always follow others, but there are a few consonants that do not.For example:(This list is inexhaustive., but should provide a good starting point.)

; Type 1 consonant groups - Must never be used with other consonants - CAN BEGIN OR END THE WORD
Data "b","c","sc","cs","ch","d","dh","dr","","f","g","gh","gr","gl","gn","h","j","jh","ts",,"x","z","sm","kh","st","ps"

; Type 2 consonant groups - Must never be used with other consonants - CANNOT BEGIN THE WORD
Data "ck","cc","dd","gg","ff","ng","tt","ng","nn","mm","xcl","rr","vv","pth","ght","gth","nx","xx","zz","bb","ths","pths","xc","ghts","nst","lst","ll","lls","rls","lv","tts","rbs","rv","nv","nts","dt","dd","rd","ds","ms","sms","ldt","lds","ss","ht","ntr","pp","pt","pst","rs","rts","rps","rfs"

; Type 3 consonant groups - Must never be used with other consonants - CANNOT END THE WORD:
Data "cr","j","str","vv","gr","gl","kn","xcl","xc","br","bl","nj","jh","lv","shr","rv","nv","dr","dw","cl","chr","kr","vh","ht","tr","ntr","q","pr","pst","pl","pf","pk","kp","gh"

; Type 4 Groups - may appear alone or precede type 5
Data "l","s","n","r","w","m"

;Type 5 May only succede type 4 or appear alone.
Data "p","k","th","ch","qu","ph","d","n","t","s","ths","z","b","ds","ts"

;('Alone' = prefixed or suffixed with vowels)