Use VSYNC between IF BUTTON and GOTO.
Also use the
code
function for your post, makes the code nicer maybe? :)*
*not really necessary
VSYNC 'syncs' commands to not execute too many times. Like a VSYNC 1 makes commands execute once per frame (or less if lots of lag and such)
My explanation kinda sucks but there you go.
Besides that, if you want you could get rid PRINT DIGIT + 1 and say INC DIGIT (increment DIGIT by 1) or DIGIT = DIGIT + 1. I use INC (or at least try to lately)
EDIT: Oh, and your @GAMESTART loop could be WHILE 1 LOCATE 10,10 DIGIT = 0 PRINT DIGIT IF BUTTON()==16 THEN PRINT DIGIT + 1 VSYNC 1 WENDthat. While just repeats until the condition (1) is false (0). Since it's 1 in my code, it would repeat forever, but if you said maybe WHILE DIGIT<100 it would only loop if DIGIT was less than 100. Don't worry about being bad at BASIC. My first program was worse than your program here ;)