Ok holding down a key to 'roll dice' is a genius idea.

I understood a bit of that line, but I've delved in to keypresses etc. So
this will be all new territory for me. But sounds exciting :-)

On Tue, 7 Jan 2020, 3:27 pm Dan Higdon, <therealh...@gmail.com> wrote:

> In my own random number based programs (for Traveller, not D&D, lol -
> Traveller subsector generation is fun) I usually have a "busy loop" that
> does something like D=RND(1) over and over until the user presses a key,
> and then takes the next RND(1) value as my roll. This is the computer
> equivalent of "shaking the dice cup", and lets the human's own reaction
> times help with randomization.
> Sort of like this:
>   100 d=rnd(1): c=inkey$: if c=="" then 100
> If you only want to wait for a keypress, you can of course do:
>   100 d=rnd(1): if inkey$=="" then 100
> I did a D&D (1e/2e) treasure table generator that used this trick. You'd
> type the treasure code letter, and it would update the on-screen horde.
> Space cleared the horde, ESC quite the program, and it "rattled the dice"
> in a busy loop waiting for input. maybe not the most power efficient
> program (not sure if ModelT "throttles down" while waiting for keyboard
> interrupts or not), but it's easy to use. Takes a bit to load though,
> because of the treasure tables. I didn't get to the point where it
> enumerated the gems and magic items, nor do I have "Print a horde report"
> working, since I don't have a ModelT compatible printer.
>
> On Tue, Jan 7, 2020 at 6:44 AM James Zeun <james.z...@gmail.com> wrote:
>
>> I already have a reasonable idea how the program should work.
>>
>> When run, it will ask the user the number of dice required. (Value A)
>>
>> Having established that value, the next INPUT shall be to determine the
>> type of dice in play. (Value B)
>>
>> With those two values, I will either use the randomiser to roll the dice
>> or if I can be a little fancy (as someone mentioned the randomiser isn't
>> very random). I might have the computer wait for the user to tap the
>> SPACEBAR or RETURN key twice. And use the time gap between the two as a
>> value to use in the equation. (Value C)
>>
>> I'm utter rubbish at math, so I might have to trouble someone for a
>> little help.
>>
>> An additional option would be to roll multiple dice of different types.
>> So after inputting the value for one dice. The program asks the user if
>> they'd like to add another.
>>
>>
>>
>> On Tue, 7 Jan 2020, 12:20 pm Charles Hudson, <clh...@gmail.com> wrote:
>>
>>> On January 6th James Zeun wrote:
>>> "It would be even cooler on a TRS80 M100." I apologize for my ignorance
>>> in that I know nothing about the D&D game, never having played it, but I
>>> applaud your willingness to undertake the task. Programming breaks down
>>> into two (usually sequential, but don't ever let yourself get dragged into
>>> the argument) tasks: strategy and implementation. The strategy, known as
>>> the "algorithm", is just the logical path ("steps") to accomplish the
>>> desired end. Implementation is using a language's syntax ("commands") to
>>> describe each step in sufficient detail such that the computer can carry
>>> them out. If you're going to do this on the Model 100 the you probably will
>>> want to use the built-in BASIC programming language. Hopefully you have the
>>> Model 100 manual, which has all of the syntax detailed, including the RND
>>> function, which will be essential to your implementation. Your strategy
>>> will be to determine /declare the number of dice in play and the number of
>>> sides (range of values, if D&D dice differ from the familiar 6-sided,
>>> dotted cube) on any given die, and then to create a random value for each
>>> die in play that is within the domain of legal possibilities for the game.
>>> Later you can expand the program to display these values, but generating
>>> them is the first task. I know I've seen this algorithm in one of my
>>> books - I like books, too - but when I find it I'll post it.
>>>
>>> -CH-
>>>
>>

Reply via email to