QB64 Phoenix Edition
Proggies - Printable Version

+- QB64 Phoenix Edition (https://qb64phoenix.com/forum)
+-- Forum: QB64 Rising (https://qb64phoenix.com/forum/forumdisplay.php?fid=1)
+--- Forum: Prolific Programmers (https://qb64phoenix.com/forum/forumdisplay.php?fid=26)
+---- Forum: bplus (https://qb64phoenix.com/forum/forumdisplay.php?fid=36)
+---- Thread: Proggies (/showthread.php?tid=162)

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21


RE: Proggies - bplus - 10-05-2023

Thanks @Dav that is interesting effect I will play with later. Right now tied up with a couple other projects otherwise I'd be more active with several of your posts. But I Like what you've done with your balls LOL!


RE: Proggies - bplus - 10-08-2023

DRAW Contest Fun Mod

QB64.boards.net is having a contest practicing with DRAW command.

MG posted something that I started playing with and came up with this nice mod:
Code: (Select All)
' Mod MG DRAW by bplus 2023-10-08
'ref  https://qb64.boards.net/thread/219/qb64-dev-competition-idea?page=2&scrollTo=1228

Dim i As Integer, ai As Integer, cc As Integer, u As Integer
Dim a$, s$

Randomize Timer
Screen 13
Do
    a$ = ""
    Do Until Len(a$) > 20
        If Random1(2) = 1 Then
            If Random1(2) = 1 Then a$ = a$ + "L" Else a$ = a$ + "R"
        Else
            If Random1(2) = 1 Then a$ = a$ + "D" Else a$ = a$ + "U"
        End If
        a$ = a$ + Str$(Rand(1, 15))
    Loop
    s$ = a$
    Cls
    For i = 1 To 24
        stepper = Val(Mid$(" 10 12 15 18 20 30 40 45 60 72 90120180", Int(Rnd * 13) + 1, 3))
        For ai = 0 To 360 - stepper Step stepper
            cc = Rand(64, 160)
            If i > 10 Then u = 10 Else u = i
            If i Mod 2 Then cc = 9 Else cc = 15
            PSet (160, 100)
            'Draw "ta0"  ' this needed?
            a$ = "S" + Str$(22 - u * 2) + "TA" + Str$(ai) + "C" + Str$(cc) + s$
            Draw a$
        Next
    Next
    Print "spacebar for another, esc to quit"
    Sleep
Loop Until Asc(InKey$) = 27

Function Rand& (fromval&, toval&)
    Dim sg%, f&, t&
    If fromval& = toval& Then
        Rand& = fromval&
        Exit Function
    End If
    f& = fromval&
    t& = toval&
    If (f& < 0) And (t& < 0) Then
        sg% = -1
        f& = f& * -1
        t& = t& * -1
    Else
        sg% = 1
    End If
    If f& > t& Then Swap f&, t&
    Rand& = Int(Rnd * (t& - f& + 1) + f&) * sg%
End Function

Function Random1& (maxvaluu&)
    Dim sg%
    sg% = Sgn(maxvaluu&)
    If sg% = 0 Then
        Random1& = 0
    Else
        If sg% = -1 Then maxvaluu& = maxvaluu& * -1
        Random1& = Int(Rnd * maxvaluu& + 1) * sg%
    End If
End Function

Wow I like all the variations this thing can make! Maybe we can call these hairy balls.
Update: Wow this works in QBJS without a single change!!!
DRAW contest b+ mod of MG

Dav I am gonna try your thing next ;-)


RE: Proggies - Dav - 10-08-2023

That's a neat one.  DRAW is such a powerful command.  I'll try to come up with something too.

- Dav


RE: Proggies - Dav - 10-08-2023

Here's a small DRAW screen saver, @bplus.  Haven't come up with a good color changing method yet, but it makes nice spinning patterns.  Press ENTER to change patterns.  ESC to quit.  You may mod and/or share this elsewhere if you wish. Smile

- Dav

Code: (Select All)

'DRAWSPIN.BAS
'Spinning patterns using DRAW.
'Press ENTER to change pattern, ESC to quit.
'Coded by Dav, OCT/2023

SCREEN _NEWIMAGE(800, 600, 32)

seed = 123 + (RND * 123): px = 3 + RND * 3

DO
    CLS
    DO
        p = p + px: ang = ang + seed
        DRAW "D" + STR$(p) + "TA" + STR$(ang + a)
    LOOP UNTIL POINT(0) < 0 AND POINT(1) < 0
    p = 0: a = a + .01: IF ang >= (a * seed) THEN ang = 0
    seed = seed + .03: IF seed > 245 THEN seed = 123
    IF INKEY$ = CHR$(13) THEN seed = 123 + (RND * 123): px = 3 + RND * 3
    _LIMIT 30
    _DISPLAY
LOOP UNTIL INP(&H60) = 1



RE: Proggies - bplus - 10-09-2023

Wow Dav, a tour de force!

BTW I find escape key works for Inp(&H60) not seen it presented like that before.


RE: Proggies - Dav - 10-09-2023

Added some color.  The changing color adds another depth to the patterns.

- Dav

Code: (Select All)

'DRAWSPIN.BAS - v2, added some color
'Spinning patterns using DRAW.
'Press ENTER to change pattern, ESC to quit.
'Coded by Dav, OCT/2023

SCREEN _NEWIMAGE(800, 600, 32)

seed = 123 + (RND * 123): px = 3 + RND * 3

DO
    CLS
    DO
        p = p + px: ang = ang + seed
        c$ = "C" + STR$(_RGB(seed MOD p / 2, p / 6, p MOD seed * 2))
        DRAW "D" + STR$(p) + "TA" + STR$(ang + a) + c$
    LOOP UNTIL POINT(0) < 0 AND POINT(1) < 0
    p = 0: a = a + .01: IF ang >= (a * seed) THEN ang = 0
    seed = seed + .03: IF seed > 245 THEN seed = 123
    IF INKEY$ = CHR$(13) THEN seed = 123 + (RND * 123): px = 3 + RND * 3
    _LIMIT 30
    _DISPLAY
LOOP UNTIL INP(&H60) = 1



RE: Proggies - PhilOfPerth - 10-09-2023

I'm mind-boggled that this can be done in so few lines!
Well done, Dav.


RE: Proggies - mnrvovrfc - 10-09-2023

It's good to know somebody else is using the subprograms I wrote and giving me proper credit. Smile

I didn't think anybody else was going to care a lot about "You're the Bandit!" away from this forum. That program was sort of an example to teach young people how to program a game. Not a good example of an algorithm for the computer-controlled opponents in a single-player-only effort.


RE: Proggies - Dav - 10-09-2023

Hi mnrvovrfc. Not sure if your post was a response to mine, had to reply to be sure. I make it a habit to give credit when using someone’s routines. That one I came up with on my own, truly. If it’s similar to code elsewhere, then it’s the two minds thinking alike at play.

- Dav


RE: Proggies - bplus - 10-09-2023

(10-09-2023, 12:33 PM)Dav Wrote: Hi mnrvovrfc. Not sure if your post was a response to mine, had to reply to be sure. I make it a habit to give credit when using someone’s routines. That one I came up with on my own, truly. If it’s similar to code elsewhere, then it’s the two minds thinking alike at play.

- Dav

I think mnr... is referring to my post, a mod of MG. MG has mnr's trademark random number functions that I think,.. well not my first choice; I kept them in because too lazy to replace with my own.

I think mnr..., roquedrivel and MG are very tight friends or heck maybe even same person under different name for each forum?

@Dav I am considering posting your code at the other place but I don't want to piss off any forum owner with my sharing others work, so am perplexed, bad enough my own stuff I am guessing. But well I guess I will share my mods if they make significant difference. Playing politics not my thing...