Welcome, Guest
You have to register before you can post on our site.

Username/Email:
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 471
» Latest member: MrVenus
» Forum threads: 2,754
» Forum posts: 26,110

Full Statistics

Latest Threads
request for printing patt...
Forum: Learning Resources and Archives
Last Post: SMcNeill
7 hours ago
» Replies: 10
» Views: 85
QB64-PE v3.14.1 is now re...
Forum: Announcements
Last Post: bplus
7 hours ago
» Replies: 13
» Views: 994
Pool
Forum: Games
Last Post: JRace
10 hours ago
» Replies: 49
» Views: 2,762
Detect point in triangle ...
Forum: Petr
Last Post: Petr
Yesterday, 07:31 PM
» Replies: 2
» Views: 43
Bally 1088 Slot Machine
Forum: Works in Progress
Last Post: Trial And Terror
11-19-2024, 10:08 PM
» Replies: 0
» Views: 43
It might be useful for so...
Forum: Programs
Last Post: madscijr
11-19-2024, 01:41 PM
» Replies: 3
» Views: 274
Pipes Puzzle - Maze conne...
Forum: Dav
Last Post: Dav
11-19-2024, 01:30 PM
» Replies: 10
» Views: 755
Anyone with free time wan...
Forum: Help Me!
Last Post: Kernelpanic
11-19-2024, 12:50 PM
» Replies: 17
» Views: 302
Bite operations with ShL ...
Forum: Petr
Last Post: Pete
11-19-2024, 01:03 AM
» Replies: 7
» Views: 142
Using $Debug
Forum: Help Me!
Last Post: PhilOfPerth
11-19-2024, 12:47 AM
» Replies: 3
» Views: 62

 
  Detect point in triangle (2D)
Posted by: Petr - Yesterday, 07:12 PM - Forum: Petr - Replies (2)

Hi. I needed to write a function for arrows in the game Puzzle and from that came the need to write or get a function for detecting a point in a triangle. I found a beautiful solution in C++. So I am attaching the original source code in C++ but of course also my version in QB64 which is based on it. The source code also includes a link to the original source. I think it might be useful for someone someday (and I also know that I will save it on my computer so that I can find it, so I will never find it again).

I tried some combinations of points and it seems to work correctly. If you encounter a problem, write it here. I am not entirely sure of the meaning of the last line in C++: return d == 0 || (d < 0) == (s + t <= 0); and it is possible that I did not understand it correctly. I am not good with C++.

Code: (Select All)

'Since have only touched the C++ language remotely and am not fully confident in the correct translation, am leaving the original here for review by those who know C++ better than me.
'Source: https://stackoverflow.com/questions/2049...d-triangle

'public static bool PointInTriangle(Point p, Point p0, Point p1, Point p2)
'{
'    var s = (p0.X - p2.X) * (p.Y - p2.Y) - (p0.Y - p2.Y) * (p.X - p2.X);
'    var t = (p1.X - p0.X) * (p.Y - p0.Y) - (p1.Y - p0.Y) * (p.X - p0.X);

'    if ((s < 0) != (t < 0) && s != 0 && t != 0)
'        return false;

'    var d = (p2.X - p1.X) * (p.Y - p1.Y) - (p2.Y - p1.Y) * (p.X - p1.X);
'    return d == 0 || (d < 0) == (s + t <= 0);
'}
Screen _NewImage(1024, 768, 256)

Type XY
    As Integer x, y
End Type



Do
    While _MouseInput
    Wend
    mx = _MouseX
    my = _MouseY

    Dim Shared As XY p, p0, p1, p2
    p.x = mx
    p.y = my
    p0.x = 350
    p0.y = 140
    p1.x = 350
    p1.y = 340
    p2.x = 750 '800
    p2.y = 240

    Cls
    Line (p1.x, p1.y)-(p0.x, p0.y)
    Line (p0.x, p0.y)-(p2.x, p2.y)
    Line (p1.x, p1.y)-(p2.x, p2.y)
    Locate 1
    Print PiT(p, p0, p1, p2)
    _Display
    _Limit 20

Loop

Function PiT (p As XY, p0 As XY, p1 As XY, p2 As XY)
    s = (p0.x - p2.x) * (p.y - p2.y) - (p0.y - p2.y) * (p.x - p2.x)
    t = (p1.x - p0.x) * (p.y - p0.y) - (p1.y - p0.y) * (p.x - p0.x)
    d = (p2.x - p1.x) * (p.y - p1.y) - (p2.y - p1.y) * (p.x - p1.x)
    If Sgn(d) = Sgn(t) And Sgn(t) = Sgn(s) And Sgn(t) <> 0 Then PiT = 1
    ' d, s, t - if are all three positive / all three negative ---> point is in triangle
End Function

Print this item

  request for printing patterns with for loops tutorial
Posted by: fistfullofnails - Yesterday, 02:47 AM - Forum: Learning Resources and Archives - Replies (10)

I'm trying to figure out how to build a christmas tree and such by using for loops.  I can't seem to find any using QB64 or Basic and I do not understand by looking at python examples.  I probably need to see something simple like maybe just a square before moving on to a christmas tree.  As in something like this

****
****
****

Print this item

  Bally 1088 Slot Machine
Posted by: Trial And Terror - 11-19-2024, 10:08 PM - Forum: Works in Progress - No Replies

I'm working on an accurate simulation of the Bally 1088 Slot machine. Still to do: looks of it, some sounds, improve the code. I stopped working on it a while ago and planning on finishing. The music was written by music partner Kees, who played main guitar in Helicopter Rescue. (Keeskeeskees on Spotify) Cool You need to put Bally1088.ico in folder C:\T&TWareIcons


[Image: Bally.jpg]



Attached Files
.zip   Bally1088.zip (Size: 4.39 MB / Downloads: 12)
Print this item

  Using $Debug
Posted by: PhilOfPerth - 11-18-2024, 11:11 PM - Forum: Help Me! - Replies (3)

I usually inserrt my own version of Watch for variables when I'm de-bugging - e.g. a line like "At 200, Word$ is";Word$" .
I see there's a $debug function, or meta, somewhere available, but can find no reference that says how to use it. I suspect it
has all, or some of the things I create while de-bugging. Can (or does) the Wiki (or Help) feature cover this, and if it does, how
do I access it?

Print this item

  Raytracing (started by Bplus)
Posted by: MasterGy - 11-18-2024, 05:07 PM - Forum: MasterGy - Replies (1)

Hello!

It's not qb64, but it started from here. A few years ago, Forum member Bplus shared a raytracing code with us. I will paste this here. I really liked this and tried to find the points in the program where the camera view can be adjusted and a real-time 3d world can be walked around. I managed to do it here in qb64, but unfortunately the processing is slow and I stopped. For a few months, I have been studying the b4a developer, in which you can write for Android in the basic language.

I only want to show this now because it started with these few lines of code. If I didn't come across the code then, I might not have written this program either.
The program runs beautifully on an Android device, and you can perceive the depths in 3D with cheap VR glasses available for phones.

Thank you Bplus in retrospect! Smile


Code: (Select All)
_TITLE "RayTrace" 'b+ trans from JB to QB64 2022-02-26
CONST scrw = 1024, scrh = 680
SCREEN _NEWIMAGE(scrw, scrh, 32)
_SCREENMOVE 150, 40
READ spheres
DIM c(spheres, 3), r(spheres), q(spheres), cl(4) AS _UNSIGNED LONG
w = scrw / 2
h = scrh / 2
s = 0
cl(1) = _RGB32(120, 65, 45) ' shaddow
cl(2) = _RGB32(0, 0, 100)
cl(3) = _RGB32(255, 255, 0)
cl(4) = _RGB32(0, 0, 200)
FOR k = 1 TO spheres
    READ a, b, c, d
    c(k, 1) = a
    c(k, 2) = b
    c(k, 3) = c
    r = d
    r(k) = r
    q(k) = r * r
NEXT k

FOR i = 1 TO scrh
    FOR j = 0 TO scrw - 1
        x = 0.3: y = -0.5: z = 0: ba = 3
        dx = j - w: dy = h - i: dz = (scrh / 480) * 600
        dd = dx * dx + dy * dy + dz * dz
        DO
            n = (y >= 0 OR dy <= 0) '* -1  <<< Makes $1000 for knowing where to tap the hammer
            IF n = 0 THEN s = (y / dy) * -1
            FOR k = 1 TO spheres
                px = c(k, 1) - x: py = c(k, 2) - y: pz = c(k, 3) - z
                pp = px * px + py * py + pz * pz
                sc = px * dx + py * dy + pz * dz
                IF sc > 0 THEN
                    bb = sc * sc / dd
                    aa = q(k) - pp + bb
                    IF aa > 0 THEN
                        sc = (SQR(bb) - SQR(aa)) / SQR(dd)
                        IF sc < s OR n < 0 THEN n = k: s = sc
                    END IF
                END IF
            NEXT k
            IF n < 0 THEN
                PSET (j, scrh - i), _RGB32(128 * (scrh - i) / scrh + 128 * (dy * dy / dd), 128 * (scrh - i) / scrh + 128 * (dy * dy / dd), 200 + 55 * (dy * dy / dd))
                EXIT DO
            ELSE
                dx = dx * s: dy = dy * s: dz = dz * s: dd = dd * s * s
                x = x + dx: y = y + dy: z = z + dz
                IF n <> 0 THEN
                    nx = x - c(n, 1): ny = y - c(n, 2): nz = z - c(n, 3)
                    nn = nx * nx + ny * ny + nz * nz
                    l = 2 * (dx * nx + dy * ny + dz * nz) / nn
                    dx = dx - nx * l: dy = dy - ny * l: dz = dz - nz * l
                ELSE
                    FOR k = 1 TO spheres
                        u = c(k, 1) - x
                        v = c(k, 3) - z
                        IF u * u + v * v <= q(k) THEN ba = 1: EXIT FOR
                    NEXT k
                    IF (x - INT(x) > .5) = (z - INT(z) > .5) THEN
                        PSET (j, scrh - i), cl(ba)
                    ELSE
                        PSET (j, scrh - i), cl(ba + 1)
                    END IF
                    EXIT DO
                END IF
            END IF
        LOOP
    NEXT j
NEXT i
SLEEP

DATA 6
DATA -0.3,-0.8,3,0.6
DATA 0.9,-1.4,3.5,0.35
DATA 0.7,-0.45,2.5,0.4
DATA -0.5,-0.3,1.5,0.15
DATA 1.0,-0.2,1.5,0.1
DATA -0.1,-0.2,1.25,0.2





APK (installer to android)
https://drive.google.com/file/d/15qqP9Y_...sp=sharing

Print this item

  Bite operations with ShL and ShR
Posted by: Petr - 11-16-2024, 08:44 PM - Forum: Petr - Replies (7)

This demo doesn't focus on reading Byte directly, but shows how to do the same job more easily using _ShL and ShR bit shifting. It took me a while to figure out how to use it, but I thought we could share our experiences with reading bit values from Byte here.

Code: (Select All)

'_ShL, _ShR - how place info to byte and then read it back

GameTyp = 2 ' is needed 2 bites
MaskTyp = 6 ' is needed 4 bites
TimeH = 20 '  is needed 5 bites
TimeM = 44 '  is needed 6 bites
TimeS = 33 '  is needed 6 bites


Print "writing to bytes this values:"
Print "Seconds:"; TimeS
Print "Minutes:"; TimeM
Print "Hours:"; TimeH
Print "Mask:"; MaskTyp
Print "GameTyp:"; GameTyp

Dim msk As Long '32 bite, but here is used 23 bites only


'why GameTyp bite lenght is 2?          Is needed here store values 0 to 3. For this are 2 bites enought, in two bites can be stored values 0, 1, 2, 3
'why MaskTyp bite lenght is 4?          Is needed here store 16 values. To 4 bite can be stored values 0 to 15 (16 values total)
'why TimeH bite lenght is 5?            TimeH is for saving hours. To 5 bites can be stored 32 values (0 to 31)
'why TimeM and TimeS bite lenght is 6?  TimeM save minutes and TimeS save seconds. Both are values 0 to 60. To 6 bites can be stored value 0 to 63.


'output 4 bytes structure (LONG is 4 byte value):

'    Variable          GameTyp  MaskTyp  TimeH  TimeM  TimeS
'    Bite Lenght          2      4        5      6      6
'Position in BYTE:      23      21      17    12      6

'write values to Bytes:
msk = msk Or _ShL(GameTyp, 21) '      it is always necessary to shift the bit value to the position as it will be stored in the byte (see above)
msk = msk Or _ShL(MaskTyp, 17)
msk = msk Or _ShL(TimeH, 12)
msk = msk Or _ShL(TimeM, 6)
msk = msk Or TimeS

msk2 = msk
_ControlChr Off
Print
Print "All values writed as"; msk; "("; MKL$(msk); ")"
Print
Print "Reading values from this bytes"
'now - read values back from created msk value:

TimeSec = msk And 63 ' read 6 bites    (63 is 00111111)
msk = _ShR(msk, 6) '  shift bites right up 6 bite
TimeMin = msk And 63 ' read 6 bites
msk = _ShR(msk, 6) '  right bites up 6 bite
TimeHrs = msk And 31 ' read 5 bites    (31 is 00011111)
msk = _ShR(msk, 5) '  shift bites right up 5 bites
Mtyp = msk And 15 '    read 4 bites    (15 is 00001111)
msk = _ShR(msk, 4) '  shift bites right up 4 bites
Gtyp = msk And 3 '    read 2 bites    (3 is 00000011)

Print "Seconds:"; TimeSec
Print "Minutes:"; TimeMin
Print "Hours:"; TimeHrs
Print "Mask:"; Mtyp
Print "GameTyp:"; Gtyp

Print this item

  Basic co-inventor Thomas Kurtz has passed away
Posted by: doppler - 11-16-2024, 03:07 AM - Forum: Announcements - Replies (1)

https://hackaday.com/2024/11/15/basic-co...ssed-away/

Basic has lost a important contributor.

Print this item

  Anyone with free time want to help this guy?
Posted by: SMcNeill - 11-15-2024, 07:09 PM - Forum: Help Me! - Replies (17)

Quote:Hi, I designed many years a little app in Basic and now I need to migrate it to a more versatile program like qb64pe, but need some help to Understand the Logic to Setup User-Defined Types for Random Access Files. My problem begins when I have to Link each Employee worked hours with the Code I have tailored to Process the Payroll File.. I don't get understand EXACTLY the approach used in the UDTypes Method.. I have the app running more or less with Basic Sequential, but need more Effective Reports, and Information.. Thank you so much

As admin, I get messages from guests and such, from time to time, asking for help. Usually, I'm more than happy to chime in and do all I can to help people, but right now I'm just too swamped with work and junk to do much of anything, and this seems like it might be the type of issue that would take several messages back and forth and multiple working examples to help someone sort out. If anyone would be so kind as to feel like taking this request upon themselves, I'm certain it'd be greatly appreciated by our guest. (See if they'll sign up as a regular forum member too, if they can. It usually makes stuff like this much easier so multiple people can chime in and offer help.)

lpolanco980@gmail.com <-- that's the contact e-mail they left. If you reach out, let us know. It'd be nice to know the guy could get the assistance he was looking for here. Wink

Print this item

  Need help with boolean
Posted by: Petr - 11-13-2024, 08:53 PM - Forum: Help Me! - Replies (6)

Quick feature description:

The program encodes a text string into a binary string that is encoded in five bits. To achieve this, thanks to the MEM functions, I manipulate a variable of type _Integer64, where I fill the first 5 bytes with five bits, thereby placing 8 characters of the text string in these 5 bytes. Subsequently, I save the variable of type Integer64 in memory and in the next step I overwrite its last three bytes. This gives me a five-byte value that is not directly available in QB64. Finally, I extract the valid length from the memory to the string (for 8 characters it is 40 bits, so 5 bytes).

During decoding, the coded string is inserted into memory and is read from it using a string of five bytes, and thanks to the MEM options, this variable is inserted into a number of type Integer64. This number is then decomposed back into the individual array indices that determine the specific letters of the encoded string.

I have completely avoided the previous Dec2Bin and Bin2Dec practices here that you can see in my old programs.

While this whole thing was supposed to be a nice distraction and fun, it turned into a huge embarrassment. I really don't know what I neglected, that's why I want to ask you for help.

 Now if you run this program as is, it will work correctly. But. Please disable MemFill on line 81 and run it again.

Where do the artifacts come from? Where does the new memory array take those bogus values? I am not able to deduce it logically and I do not see it in the program (with my little knowledge of boolean operations). Can someone explain this to me?

Code: (Select All)

'S2FB$ - String to five bite string
'FB2S$ - five bite string back to normal 8 bit string
'allowed characters: abcdefghijklmnopqrstuvwxyz+- '

'can be expanded, but this is not implanted in this version.




txt$ = "text to five byte binary text coder and decoder - first version"
'
t$ = S2FB$(txt$) 'string to five byte code (return binary string code)

Do
    u$ = FB2S$(t$) 'decode binary string t$ to normal text u$
    Print u$
    t$ = S2FB$(txt$) 'make 5 bit coded string from normal text string txt$
    _Limit 20
Loop






Function S2FB$ (S As String) 'returns a binary string encoded in the form of an index in the range 0 to 31, where each number is encoded in five bits according to the internal character table
    Stable$ = "abcdefghijklmnopqrstuvwxyz+- '"
    Dim InputTable(Len(S$)) As _Unsigned _Byte
    i = 0
    For test = 1 To Len(S$)
        ch1$ = Mid$(S$, test, 1)
        Allow = 0
        For compare = 1 To Len(Stable$)
            ch2$ = Mid$(Stable$, compare, 1)
            If ch2$ = ch1$ Then
                Allow = 1
                InputTable(i) = compare 'set indexes to characters in S string
                i = i + 1
            End If
        Next compare
        If Allow = 0 Then Print "Can not create B5$. Unexpected character: "; ch1$: _Display: Sleep 3: End
    Next test

    Dim prd As _Unsigned _Integer64
    Dim me As _MEM
    If Len(S$) > 32 Then me = _MemNew(Len(S$)) Else me = _MemNew(32)
    j = 0
    meStep = 0
    prd = 0

    Do Until j > i
        For t = 1 To 7
            If j > UBound(InputTable) Then Exit For
            prd = prd Or InputTable(j)
            prd = _ShL(prd, 5)
            j = j + 1
        Next t
        _MemPut me, me.OFFSET + meStep, prd
        meStep = meStep + 5
        prd = 0
    Loop
    prd = 0
    Dim V As _Unsigned _Byte
    V = 0

    Code5$ = Space$(meStep)
    _MemGet me, me.OFFSET, Code5$
    S2FB$ = Code5$
    _MemFree me
    Erase InputTable
End Function


Function FB2S$ (code As String) ' Function decode binary string coded in 5 bite and return it as normal 8bit text.
    Stable$ = "abcdefghijklmnopqrstuvwxyz+- '"
    Dim me As _MEM
    MSize = Len(code) * 1.6
    If MSize < 16 Then MSize = 16
    me = _MemNew(MSize)
    _MemFill me, me.OFFSET, me.SIZE, 0 As _UNSIGNED _BYTE 'this is VERY VERY NEED HERE.
    _MemPut me, me.OFFSET, code$

    Dim hodnota As _Unsigned _Integer64
    Dim Vse As _Offset
    Dim Var As _MEM
    Dim prd As _Unsigned _Integer64
    prd = 0
    Var = _Mem(prd)
    If MSize < 5 Then swp$ = Space$(MSize) Else swp$ = Space$(5)
    outb$ = ""

    Vse = 0
    Do Until Vse > me.SIZE - 5
        uu = uu + 1
        _MemGet me, me.OFFSET + Vse, swp$
        _MemPut Var, Var.OFFSET, swp$
        ReDim swp(1 To 8) As _Unsigned _Byte

        For pr = 1 To 8
            hodnota = prd And 31
            swp(9 - pr) = hodnota
            prd = _ShR(prd, 5)
        Next

        For dis = 1 To 8
            outb$ = outb$ + Mid$(Stable$, swp(dis), 1)
        Next

        ReDim swp(1 To 8) As _Unsigned _Byte
        Vse = Vse + 5
        prd = 0
    Loop

    swp$ = ""
    FB2S$ = outb$
    _MemFree me
    _MemFree Var
End Function

Print this item

  Type Speed 3
Posted by: aadityap0901 - 11-12-2024, 03:24 PM - Forum: Games - Replies (4)

Type Speed 3: a console-based speed test (not very good)
Click here for Typespeed 1, 2

Code: (Select All)
$Console:Only
DefLng A-Z
Randomize Timer
Dim Shared WordsList$(1 To 2994)
If _CommandCount = 0 Then TOTALWORDS = 10 Else TOTALWORDS = Val(Command$(1))
For I = 1 To UBound(WordsList$)
    Read WordsList$(I)
Next I
10
Cls
ST! = 0
TEXT$ = ""
CursorPosition = 1
For I = 1 To TOTALWORDS - 1
    TEXT$ = TEXT$ + RandomWord$ + " "
Next I
TEXT$ = LCase$(TEXT$ + RandomWord$)
ITEXT$ = ""

Locate 3, 1
For I = 1 To CursorPosition - 1
    If Asc(ITEXT$, I) = Asc(TEXT$, I) Then Color 1 Else Color 15, 4
    Print Mid$(ITEXT$, I, 1);
Next I
Color 15
Print Mid$(TEXT$, CursorPosition, 1);
Color 11
Print Mid$(TEXT$, CursorPosition + 1)
Locate 3, CursorPosition

Do
    _Limit 60
    WORDS = 1
    For I = 1 To Len(ITEXT$)
        If Asc(ITEXT$, I) = 32 Then WORDS = WORDS + 1
    Next I
    Locate 1, 1
    If ST! Then Print Int(120 * WORDS / (Timer(0.01) - ST!))

    Locate 3, CursorPosition - 1
    I = CursorPosition - 1
    If CursorPosition > 1 Then
        If Asc(ITEXT$, I) = Asc(TEXT$, I) Then Color 1 Else Color 15, 4
        Print Mid$(ITEXT$, I, 1);
    End If
    Color 15: Print Mid$(TEXT$, CursorPosition, 1);
    Color 11: Print Mid$(TEXT$, CursorPosition + 1, 1);
    Locate 3, CursorPosition

    If CursorPosition = Len(TEXT$) + 1 Then GoTo EVALUATE
    K = _ConsoleInput
    K = _CInp
    If K = 1 Then Exit Do
    Select Case K
        Case 2 To 11: ITEXT$ = ITEXT$ + Mid$("1234567890", K - 1, 1)
        Case 14: If Len(ITEXT$) Then ITEXT$ = Left$(ITEXT$, Len(ITEXT$) - 1): CursorPosition = CursorPosition - 1
            _Continue
        Case 16 To 25: ITEXT$ = ITEXT$ + Mid$("qwertyuiop", K - 15, 1)
        Case 30 To 38: ITEXT$ = ITEXT$ + Mid$("asdfghjkl", K - 29, 1)
        Case 44 To 50: ITEXT$ = ITEXT$ + Mid$("zxcvbnm", K - 43, 1)
        Case 57: ITEXT$ = ITEXT$ + " "
        Case 28: GoTo 10
        Case Else: _Continue
    End Select
    If Asc(ITEXT$, CursorPosition) <> Asc(TEXT$, CursorPosition) Then ERRORS = ERRORS + 1
    If ST! = 0 Then ST! = Timer(0.01)
    CursorPosition = CursorPosition + 1
Loop
Cls
System
EVALUATE:
Cls
Print "Speed:"; 120 * TOTALWORDS / (Timer(0.01) - ST!); " wpm"
Print "Accuracy: "; 100 * (1 - ERRORS / Len(TEXT$)); "%"
End
Data "a","abandon","ability","able","abortion","about","above","abroad","absence","absolute","absolutely","absorb","abuse","academic","accept","access","accident","accompany","accomplish","according","account","accurate","accuse","achieve","achievement","acid","acknowledge","acquire","across","act","action","active","activist","activity","actor","actress","actual","actually","ad","adapt","add","addition","additional","address","adequate","adjust","adjustment","administration","administrator","admire","admission","admit","adolescent","adopt","adult","advance","advanced","advantage","adventure","advertising","advice","advise","adviser","advocate","affair","affect","afford","afraid","African","after","afternoon","again","against","age","agency","agenda","agent","aggressive","ago","agree","agreement","agricultural","ah","ahead","aid","aide","AIDS","aim","air","aircraft","airline","airport","album","alcohol","alive","all","alliance","allow","ally","almost","alone","along","already","also","alter","alternative","although","always","AM","amazing","American","among","amount","analysis","analyst","analyze","ancient","and","anger","angle","angry","animal","anniversary","announce","annual","another","answer","anticipate","anxiety","any","anybody","anymore","anyone","anything","anyway","anywhere","apart","apartment","apparent","apparently","appeal","appear","appearance","apple","application","apply","appoint","appointment","appreciate","approach","appropriate","approval","approve","approximately","Arab","architect","area","argue","argument","arise","arm","armed","army","around","arrange","arrangement","arrest","arrival","arrive","art","article","artist","artistic","as","Asian","aside","ask","asleep","aspect","assault","assert","assess","assessment","asset","assign","assignment","assist","assistance","assistant","associate","association","assume","assumption","assure","at","athlete","athletic","atmosphere","attach","attack","attempt","attend","attention","attitude","attorney","attract","attractive","attribute","audience","author","authority","auto","available","average","avoid","award","aware","awareness","away","awful"
Data "baby","back","background","bad","badly","bag","bake","balance","ball","ban","band","bank","bar","barely","barrel","barrier","base","baseball","basic","basically","basis","basket","basketball","bathroom","battery","battle","be","beach","bean","bear","beat","beautiful","beauty","because","become","bed","bedroom","beer","before","begin","beginning","behavior","behind","being","belief","believe","bell","belong","below","belt","bench","bend","beneath","benefit","beside","besides","best","bet","better","between","beyond","Bible","big","bike","bill","billion","bind","biological","bird","birth","birthday","bit","bite","black","blade","blame","blanket","blind","block","blood","blow","blue","board","boat","body","bomb","bombing","bond","bone","book","boom","boot","border","born","borrow","boss","both","bother","bottle","bottom","boundary","bowl","box","boy","boyfriend","brain","branch","brand","bread","break","breakfast","breast","breath","breathe","brick","bridge","brief","briefly","bright","brilliant","bring","British","broad","broken","brother","brown","brush","buck","budget","build","building","bullet","bunch","burden","burn","bury","bus","business","busy","but","butter","button","buy","buyer","by"
Data "cabin","cabinet","cable","cake","calculate","call","camera","camp","campaign","campus","can","Canadian","cancer","candidate","cap","capability","capable","capacity","capital","captain","capture","car","carbon","card","care","career","careful","carefully","carrier","carry","case","cash","cast","cat","catch","category","Catholic","cause","ceiling","celebrate","celebration","celebrity","cell","center","central","century","CEO","ceremony","certain","certainly","chain","chair","chairman","challenge","chamber","champion","championship","chance","change","changing","channel","chapter","character","characteristic","characterize","charge","charity","chart","chase","cheap","check","cheek","cheese","chef","chemical","chest","chicken","chief","child","childhood","Chinese","chip","chocolate","choice","cholesterol","choose","Christian","Christmas","church","cigarette","circle","circumstance","cite","citizen","city","civil","civilian","claim","class","classic","classroom","clean","clear","clearly","client","climate","climb","clinic","clinical","clock","close","closely","closer","clothes","clothing","cloud","club","clue","cluster","coach","coal","coalition","coast","coat","code","coffee","cognitive","cold","collapse","colleague","collect","collection","collective","college","colonial","color","column","combination","combine","come","comedy","comfort","comfortable","command","commander","comment","commercial","commission","commit","commitment","committee","common","communicate","communication","community","company","compare","comparison","compete","competition","competitive","competitor","complain","complaint","complete","completely","complex","complicated","component","compose","composition","comprehensive","computer","concentrate","concentration","concept","concern","concerned","concert","conclude","conclusion","concrete","condition","conduct","conference","confidence","confident","confirm","conflict","confront","confusion","Congress","congressional","connect","connection","consciousness","consensus","consequence","conservative","consider","considerable","consideration","consist","consistent","constant","constantly","constitute","constitutional","construct","construction","consultant","consume","consumer","consumption","contact","contain","container","contemporary","content","contest","context","continue","continued","contract","contrast","contribute","contribution","control","controversial","controversy","convention","conventional","conversation","convert","conviction","convince","cook","cookie","cooking","cool","cooperation","cop","cope","copy","core","corn","corner","corporate","corporation","correct","correspondent","cost","cotton","couch","could","council","counselor","count","counter","country","county","couple","courage","course","court","cousin","cover","coverage","cow","crack","craft","crash","crazy","cream","create","creation","creative","creature","credit","crew","crime","criminal","crisis","criteria","critic","critical","criticism","criticize","crop","cross","crowd","crucial","cry","cultural","culture","cup","curious","current","currently","curriculum","custom","customer","cut","cycle"
Data "dad","daily","damage","dance","danger","dangerous","dare","dark","darkness","data","date","daughter","day","dead","deal","dealer","dear","death","debate","debt","decade","decide","decision","deck","declare","decline","decrease","deep","deeply","deer","defeat","defend","defendant","defense","defensive","deficit","define","definitely","definition","degree","delay","deliver","delivery","demand","democracy","Democrat","democratic","demonstrate","demonstration","deny","department","depend","dependent","depending","depict","depression","depth","deputy","derive","describe","description","desert","deserve","design","designer","desire","desk","desperate","despite","destroy","destruction","detail","detailed","detect","determine","develop","developing","development","device","devote","dialogue","die","diet","differ","difference","different","differently","difficult","difficulty","dig","digital","dimension","dining","dinner","direct","direction","directly","director","dirt","dirty","disability","disagree","disappear","disaster","discipline","discourse","discover","discovery","discrimination","discuss","discussion","disease","dish","dismiss","disorder","display","dispute","distance","distant","distinct","distinction","distinguish","distribute","distribution","district","diverse","diversity","divide","division","divorce","DNA","do","doctor","document","dog","domestic","dominant","dominate","door","double","doubt","down","downtown","dozen","draft","drag","drama","dramatic","dramatically","draw","drawing","dream","dress","drink","drive","driver","drop","drug","dry","due","during","dust","duty"
Data "each","eager","ear","early","earn","earnings","earth","ease","easily","east","eastern","easy","eat","economic","economics","economist","economy","edge","edition","editor","educate","education","educational","educator","effect","effective","effectively","efficiency","efficient","effort","egg","eight","either","elderly","elect","election","electric","electricity","electronic","element","elementary","eliminate","elite","else","elsewhere","embrace","emerge","emergency","emission","emotion","emotional","emphasis","emphasize","employ","employee","employer","employment","empty","enable","encounter","encourage","end","enemy","energy","enforcement","engage","engine","engineer","engineering","English","enhance","enjoy","enormous","enough","ensure","enter","enterprise","entertainment","entire","entirely","entrance","entry","environment","environmental","episode","equal","equally","equipment","era","error","escape","especially","essay","essential","essentially","establish","establishment","estate","estimate","etc","ethics","ethnic","European","evaluate","evaluation","even","evening","event","eventually","ever","every","everybody","everyday","everyone","everything","everywhere","evidence","evolution","evolve","exact","exactly","examination","examine","example","exceed","excellent","except","exception","exchange","exciting","executive","exercise","exhibit","exhibition","exist","existence","existing","expand","expansion","expect","expectation","expense","expensive","experience","experiment","expert","explain","explanation","explode","explore","explosion","expose","exposure","express","expression","extend","extension","extensive","extent","external","extra","extraordinary","extreme","extremely","eye"
Data "fabric","face","facility","fact","factor","factory","faculty","fade","fail","failure","fair","fairly","faith","fall","false","familiar","family","famous","fan","fantasy","far","farm","farmer","fashion","fast","fat","fate","father","fault","favor","favorite","fear","feature","federal","fee","feed","feel","feeling","fellow","female","fence","few","fewer","fiber","fiction","field","fifteen","fifth","fifty","fight","fighter","fighting","figure","file","fill","film","final","finally","finance","financial","find","finding","fine","finger","finish","fire","firm","first","fish","fishing","fit","fitness","five","fix","flag","flame","flat","flavor","flee","flesh","flight","float","floor","flow","flower","fly","focus","folk","follow","following","food","foot","football","for","force","foreign","forest","forever","forget","form","formal","formation","former","formula","forth","fortune","forward","found","foundation","founder","four","fourth","frame","framework","free","freedom","freeze","French","frequency","frequent","frequently","fresh","friend","friendly","friendship","from","front","fruit","frustration","fuel","full","fully","fun","function","fund","fundamental","funding","funeral","funny","furniture","furthermore","future"
Data "gain","galaxy","gallery","game","gang","gap","garage","garden","garlic","gas","gate","gather","gay","gaze","gear","gender","gene","general","generally","generate","generation","genetic","gentleman","gently","German","gesture","get","ghost","giant","gift","gifted","girl","girlfriend","give","given","glad","glance","glass","global","glove","go","goal","God","gold","golden","golf","good","government","governor","grab","grade","gradually","graduate","grain","grand","grandfather","grandmother","grant","grass","grave","gray","great","greatest","green","grocery","ground","group","grow","growing","growth","guarantee","guard","guess","guest","guide","guideline","guilty","gun","guy"
Data "habit","habitat","hair","half","hall","hand","handful","handle","hang","happen","happy","hard","hardly","hat","hate","have","he","head","headline","headquarters","health","healthy","hear","hearing","heart","heat","heaven","heavily","heavy","heel","height","helicopter","hell","hello","help","helpful","her","here","heritage","hero","herself","hey","hi","hide","high","highlight","highly","highway","hill","him","himself","hip","hire","his","historian","historic","historical","history","hit","hold","hole","holiday","holy","home","homeless","honest","honey","honor","hope","horizon","horror","horse","hospital","host","hot","hotel","hour","house","household","housing","how","however","huge","human","humor","hundred","hungry","hunter","hunting","hurt","husband","hypothesis"
Data "I","ice","idea","ideal","identification","identify","identity","ie","if","ignore","ill","illegal","illness","illustrate","image","imagination","imagine","immediate","immediately","immigrant","immigration","impact","implement","implication","imply","importance","important","impose","impossible","impress","impression","impressive","improve","improvement","in","incentive","incident","include","including","income","incorporate","increase","increased","increasing","increasingly","incredible","indeed","independence","independent","index","Indian","indicate","indication","individual","industrial","industry","infant","infection","inflation","influence","inform","information","ingredient","initial","initially","initiative","injury","inner","innocent","inquiry","inside","insight","insist","inspire","install","instance","instead","institution","institutional","instruction","instructor","instrument","insurance","intellectual","intelligence","intend","intense","intensity","intention","interaction","interest","interested","interesting","internal","international","Internet","interpret","interpretation","intervention","interview","into","introduce","introduction","invasion","invest","investigate","investigation","investigator","investment","investor","invite","involve","involved","involvement","Iraqi","Irish","iron","Islamic","island","Israeli","issue","it","Italian","item","its","itself"
Data "jacket","jail","Japanese","jet","Jew","Jewish","job","join","joint","joke","journal","journalist","journey","joy","judge","judgment","juice","jump","junior","jury","just","justice","justify"
Data "keep","key","kick","kid","kill","killer","killing","kind","king","kiss","kitchen","knee","knife","knock","know","knowledge"
Data "lab","label","labor","laboratory","lack","lady","lake","land","landscape","language","lap","large","largely","last","late","later","Latin","latter","laugh","launch","law","lawn","lawsuit","lawyer","lay","layer","lead","leader","leadership","leading","leaf","league","lean","learn","learning","least","leather","leave","left","leg","legacy","legal","legend","legislation","legitimate","lemon","length","less","lesson","let","letter","level","liberal","library","license","lie","life","lifestyle","lifetime","lift","light","like","likely","limit","limitation","limited","line","link","lip","list","listen","literally","literary","literature","little","live","living","load","loan","local","locate","location","lock","long","look","loose","lose","loss","lost","lot","lots","loud","love","lovely","lover","low","lower","luck","lucky","lunch","lung"
Data "machine","mad","magazine","mail","main","mainly","maintain","maintenance","major","majority","make","maker","makeup","male","mall","man","manage","management","manager","manner","manufacturer","manufacturing","many","map","margin","mark","market","marketing","marriage","married","marry","mask","mass","massive","master","match","material","math","matter","may","maybe","mayor","me","meal","mean","meaning","meanwhile","measure","measurement","meat","mechanism","media","medical","medication","medicine","medium","meet","meeting","member","membership","memory","mental","mention","menu","mere","merely","mess","message","metal","meter","method","Mexican","middle","might","military","milk","million","mind","mine","minister","minor","minority","minute","miracle","mirror","miss","missile","mission","mistake","mix","mixture","mode","model","moderate","modern","modest","mom","moment","money","monitor","month","mood","moon","moral","more","moreover","morning","mortgage","most","mostly","mother","motion","motivation","motor","mount","mountain","mouse","mouth","move","movement","movie","Mr","Mrs","Ms","much","multiple","murder","muscle","museum","music","musical","musician","Muslim","must","mutual","my","myself","mystery","myth"
Data "naked","name","narrative","narrow","nation","national","native","natural","naturally","nature","near","nearby","nearly","necessarily","necessary","neck","need","negative","negotiate","negotiation","neighbor","neighborhood","neither","nerve","nervous","net","network","never","nevertheless","new","newly","news","newspaper","next","nice","night","nine","no","nobody","nod","noise","nomination","none","nonetheless","nor","normal","normally","north","northern","nose","not","note","nothing","notice","notion","novel","now","nowhere","nuclear","number","numerous","nurse","nut"
Data "object","objective","obligation","observation","observe","observer","obtain","obvious","obviously","occasion","occasionally","occupation","occupy","occur","ocean","odd","odds","of","off","offense","offensive","offer","office","officer","official","often","oh","oil","ok","okay","old","Olympic","on","once","one","ongoing","onion","online","only","onto","open","opening","operate","operating","operation","operator","opinion","opponent","opportunity","oppose","opposite","opposition","option","or","orange","order","ordinary","organic","organization","organize","orientation","origin","original","originally","other","others","otherwise","ought","our","ourselves","out","outcome","outside","oven","over","overall","overcome","overlook","owe","own","owner"
Data "pace","pack","package","page","pain","painful","paint","painter","painting","pair","pale","Palestinian","palm","pan","panel","pant","paper","parent","park","parking","part","participant","participate","participation","particular","particularly","partly","partner","partnership","party","pass","passage","passenger","passion","past","patch","path","patient","pattern","pause","pay","payment","PC","peace","peak","peer","penalty","people","pepper","per","perceive","percentage","perception","perfect","perfectly","perform","performance","perhaps","period","permanent","permission","permit","person","personal","personality","personally","personnel","perspective","persuade","pet","phase","phenomenon","philosophy","phone","photo","photograph","photographer","phrase","physical","physically","physician","piano","pick","picture","pie","piece","pile","pilot","pine","pink","pipe","pitch","place","plan","plane","planet","planning","plant","plastic","plate","platform","play","player","please","pleasure","plenty","plot","plus","PM","pocket","poem","poet","poetry","point","pole","police","policy","political","politically","politician","politics","poll","pollution","pool","poor","pop","popular","population","porch","port","portion","portrait","portray","pose","position","positive","possess","possibility","possible","possibly","post","pot","potato","potential","potentially","pound","pour","poverty","powder","power","powerful","practical","practice","pray","prayer","precisely","predict","prefer","preference","pregnancy","pregnant","preparation","prepare","prescription","presence","present","presentation","preserve","president","presidential","press","pressure","pretend","pretty","prevent","previous","previously","price","pride","priest","primarily","primary","prime","principal","principle","print","prior","priority","prison","prisoner","privacy","private","probably","problem","procedure","proceed","process","produce","producer","product","production","profession","professional","professor","profile","profit","program","progress","project","prominent","promise","promote","prompt","proof","proper","properly","property","proportion","proposal","propose","proposed","prosecutor","prospect","protect","protection","protein","protest","proud","prove","provide","provider","province","provision","psychological","psychologist","psychology","public","publication","publicly","publish","publisher","pull","punishment","purchase","pure","purpose","pursue","push","put"
Data "qualify","quality","quarter","quarterback","question","quick","quickly","quiet","quietly","quit","quite","quote"
Data "race","racial","radical","radio","rail","rain","raise","range","rank","rapid","rapidly","rare","rarely","rate","rather","rating","ratio","raw","reach","react","reaction","read","reader","reading","ready","real","reality","realize","really","reason","reasonable","recall","receive","recent","recently","recipe","recognition","recognize","recommend","recommendation","record","recording","recover","recovery","recruit","red","reduce","reduction","refer","reference","reflect","reflection","reform","refugee","refuse","regard","regarding","regardless","regime","region","regional","register","regular","regularly","regulate","regulation","reinforce","reject","relate","relation","relationship","relative","relatively","relax","release","relevant","relief","religion","religious","rely","remain","remaining","remarkable","remember","remind","remote","remove","repeat","repeatedly","replace","reply","report","reporter","represent","representation","representative","Republican","reputation","request","require","requirement","research","researcher","resemble","reservation","resident","resist","resistance","resolution","resolve","resort","resource","respect","respond","respondent","response","responsibility","responsible","rest","restaurant","restore","restriction","result","retain","retire","retirement","return","reveal","revenue","review","revolution","rhythm","rice","rich","rid","ride","rifle","right","ring","rise","risk","river","road","rock","role","roll","romantic","roof","room","root","rope","rose","rough","roughly","round","route","routine","row","rub","rule","run","running","rural","rush","Russian"
Data "sacred","sad","safe","safety","sake","salad","salary","sale","sales","salt","same","sample","sanction","sand","satellite","satisfaction","satisfy","sauce","save","saving","say","scale","scandal","scared","scenario","scene","schedule","scheme","scholar","scholarship","school","science","scientific","scientist","scope","score","scream","screen","script","sea","search","season","seat","second","secret","secretary","section","sector","secure","security","see","seed","seek","seem","segment","seize","select","selection","self","sell","Senate","senator","send","senior","sense","sensitive","sentence","separate","sequence","series","serious","seriously","serve","service","session","set","setting","settle","settlement","seven","several","severe","sex","sexual","shade","shadow","shake","shall","shape","share","sharp","she","sheet","shelf","shell","shelter","shift","shine","ship","shirt","shit","shock","shoe","shoot","shooting","shop","shopping","shore","short","shortly","shot","should","shoulder","shout","show","shower","shrug","shut","sick","side","sigh","sight","sign","signal","significance","significant","significantly","silence","silent","silver","similar","similarly","simple","simply","sin","since","sing","singer","single","sink","sir","sister","sit","site","situation","six","size","ski","skill","skin","sky","slave","sleep","slice","slide","slight","slightly","slip","slow","slowly","small","smart","smell","smile","smoke","smooth","snap","snow","so","soccer","social","society","soft","software","soil","solar","soldier","solid","solution","solve","some","somebody","somehow","someone","something","sometimes","somewhat","somewhere","son","song","soon","sophisticated","sorry","sort","soul","sound","soup","source","south","southern","Soviet","space","Spanish","speak","speaker","special","specialist","species","specific","specifically","speech","speed","spend","spending","spin","spirit","spiritual","split","spokesman","sport","spot","spread","spring","square","squeeze","stability","stable","staff","stage","stair","stake","stand","standard","standing","star","stare","start","state","statement","station","statistics","status","stay","steady","steal","steel","step","stick","still","stir","stock","stomach","stone","stop","storage","store","storm","story","straight","strange","stranger","strategic","strategy","stream","street","strength","strengthen","stress","stretch","strike","string","strip","stroke","strong","strongly","structure","struggle","student","studio","study","stuff","stupid","style","subject","submit","subsequent","substance","substantial","succeed","success","successful","successfully","such","sudden","suddenly","sue","suffer","sufficient","sugar","suggest","suggestion","suicide","suit","summer","summit","sun","super","supply","support","supporter","suppose","supposed","Supreme","sure","surely","surface","surgery","surprise","surprised","surprising","surprisingly","surround","survey","survival","survive","survivor","suspect","sustain","swear","sweep","sweet","swim","swing","switch","symbol","symptom","system"
Data "table","tablespoon","tactic","tail","take","tale","talent","talk","tall","tank","tap","tape","target","task","taste","tax","taxpayer","tea","teach","teacher","teaching","team","tear","teaspoon","technical","technique","technology","teen","teenager","telephone","telescope","television","tell","temperature","temporary","ten","tend","tendency","tennis","tension","tent","term","terms","terrible","territory","terror","terrorism","terrorist","test","testify","testimony","testing","text","than","thank","thanks","that","the","theater","their","them","theme","themselves","then","theory","therapy","there","therefore","these","they","thick","thin","thing","think","thinking","third","thirty","this","those","though","thought","thousand","threat","threaten","three","throat","through","throughout","throw","thus","ticket","tie","tight","time","tiny","tip","tire","tired","tissue","title","to","tobacco","today","toe","together","tomato","tomorrow","tone","tongue","tonight","too","tool","tooth","top","topic","toss","total","totally","touch","tough","tour","tourist","tournament","toward","towards","tower","town","toy","trace","track","trade","tradition","traditional","traffic","tragedy","trail","train","training","transfer","transform","transformation","transition","translate","transportation","travel","treat","treatment","treaty","tree","tremendous","trend","trial","tribe","trick","trip","troop","trouble","truck","true","truly","trust","truth","try","tube","tunnel","turn","TV","twelve","twenty","twice","twin","two","type","typical","typically"
Data "ugly","ultimate","ultimately","unable","uncle","under","undergo","understand","understanding","unfortunately","uniform","union","unique","unit","United","universal","universe","university","unknown","unless","unlike","unlikely","until","unusual","up","upon","upper","urban","urge","us","use","used","useful","user","usual","usually","utility"
Data "vacation","valley","valuable","value","variable","variation","variety","various","vary","vast","vegetable","vehicle","venture","version","versus","very","vessel","veteran","via","victim","victory","video","view","viewer","village","violate","violation","violence","violent","virtually","virtue","virus","visible","vision","visit","visitor","visual","vital","voice","volume","volunteer","vote","voter","vs","vulnerable"
Data "wage","wait","wake","walk","wall","wander","want","war","warm","warn","warning","wash","waste","watch","water","wave","way","we","weak","wealth","wealthy","weapon","wear","weather","wedding","week","weekend","weekly","weigh","weight","welcome","welfare","well","west","western","wet","what","whatever","wheel","when","whenever","where","whereas","whether","which","while","whisper","white","who","whole","whom","whose","why","wide","widely","widespread","wife","wild","will","willing","win","wind","window","wine","wing","winner","winter","wipe","wire","wisdom","wise","wish","with","withdraw","within","without","witness","woman","wonder","wonderful","wood","wooden","word","work","worker","working","works","workshop","world","worried","worry","worth","would","wound","wrap","write","writer","writing","wrong"
Data "yard","yeah","year","yell","yellow","yes","yesterday","yet","yield","you","young","your","yours","yourself","youth"
Data "zone"
Function RandomWord$
    RandomWord$ = WordsList$(1 + Int(Rnd * UBound(WordsList$)))
End Function

Print this item