QB64 Phoenix Edition
My 1st Demo - Printable Version

+- QB64 Phoenix Edition (https://qb64phoenix.com/forum)
+-- Forum: QB64 Rising (https://qb64phoenix.com/forum/forumdisplay.php?fid=1)
+--- Forum: Code and Stuff (https://qb64phoenix.com/forum/forumdisplay.php?fid=3)
+---- Forum: Works in Progress (https://qb64phoenix.com/forum/forumdisplay.php?fid=9)
+---- Thread: My 1st Demo (/showthread.php?tid=2710)



My 1st Demo - BloodyHash - 05-19-2024

Thanks for y'all help guys i finally able to make a small very small demo lol


Now i wanna do Equipment attack points and etc if anyone could help me with that dm me on disc
(hashdaking) my discord


RE: My 1st Demo - JRace - 05-19-2024

(05-19-2024, 02:36 PM)BloodyHash Wrote: Thanks for y'all help guys i finally able to make a small very small demo lol


Now i wanna do Equipment attack points and etc if anyone could help me with that dm me on disc
(hashdaking) my discord

Bug report:

Notice the 0 being printed at the end of the last line below:

   

Instead of setting HP to 0, lines 17 & 18 of your demo are printing the result of the comparison (HP=0), which is false (0) at those points in your demo, because HP is actually 100.

The semicolon ( ; ) prevents the PRINT and INPUT statements from printing linefeeds, so "; HP=0" has the demo printing the result of comparing HP to 0.

(Comparisons like x=y, a<>b, etc, are functions which return a value of false (0) or true (non-zero, specifically -1 in Basic).)

The colon ( : ) is the statement separator in Basic.

If your intention is to print something and then set HP to 0 then you should change those semicolons ( ; ) to colons ( : ) (Note: If you plan on distributing your source code, many people do not like seeing multiple source statements packed onto one line, although such program density was common back in Ye Olde Dayes, when address spaces were small and RAM was expensive.).

OR you could just move the "HP = 0" operations to their own lines (which is a coding style that many people find more readable):

Code: (Select All)
'DEMO.BAS:
HP = 100
Do
    Input X
    Select Case X
        Case 1: Print "You lift the troll up and slam down"; HP = 0
        Case 2: Print "You sneak behind the troll and snapped his neck"; HP = 0
        Case Else: Print "ERROR"
    End Select
Loop Until X >= 1 And X <= 2

'fix #1:
HP = 100
Do
    Input X
    Select Case X
        Case 1: Print "You lift the troll up and slam down" : HP = 0
        Case 2: Print "You sneak behind the troll and snapped his neck" : HP = 0
        Case Else: Print "ERROR"
    End Select
Loop Until X >= 1 And X <= 2

'fix #2:
HP = 100
Do
    Input X
    Select Case X
        Case 1: Print "You lift the troll up and slam down"
                HP = 0
        Case 2: Print "You sneak behind the troll and snapped his neck"
                HP = 0
        Case Else: Print "ERROR"
    End Select
Loop Until X >= 1 And X <= 2
Either of the above changes will work.  It's your choice.