Log In  

Is there a way for a keyboard entry when I need an integer from the user?
Especially for this:
https://www.lexaloffle.com/bbs/?tid=141477

On the line of

local playerHand = drawCards(5,cardDeck)

to which 5 can be modified…

btw can the F keys be overridden to a specific integer? (ie. pressing F12 for an integer of 12)

P#145972 2024-04-07 12:14 ( Edited 2024-04-12 22:41)

1

There are probably more efficient ways of achieving this, but my knowledge on coroutines was weak so I took a look into it. As far as I know if you have an infinite while loop until a valid key is pressed, your game will hang. So you need to get the input within a coroutine that can yield control back to Picotron after each try.

This code works for me and is initiated when cardprompt is not nul. Val contains a valid input from scancodes 49 to 53 on the keyboard (1-5) once it is pressed. Function keys should be the same - just a case of getting their scancodes (F1=58, F12=69)

function _init()
    cardprompt=true
end

function getinput(sca,scb)
    local validinput=nil
    while not validinput do
        input=readtext()
        if input and ord(input)>=sca and ord(input)<=scb then validinput=input end
        yield()
    end
    return validinput
end

function _update()
    if cardprompt and not wait then
        wait=cocreate(getinput)
    end
    if wait and costatus(wait) ~= "dead" then
        temp,val=coresume(wait,49,53)
    else
        if cardprompt and val then printh(val) end
        wait=nil
        cardprompt=false
    end
end

In terms on integrating this with your code though, I think you would need your existing code ran as a coroutine (so it doesn't hang Picotron half way through it) and within that, prior to calling playerHand, you can use a while loop with a yield in it like the one in getinput. Not as straight forward as just using Input in BASIC and there may be better ways of doing this like I said.

P#145979 2024-04-07 14:52 ( Edited 2024-04-07 14:55)

Thank you for your valuable feedback :3
I’ll try to check it out soon.

P#145981 2024-04-07 15:21 ( Edited 2024-04-07 15:22)

[Please log in to post a comment]