    REM --- PIG Dice 
    REM --- Created: 2022-04-01 by lettuce
    REM --- for Tiny BASIC 
    REM --- COPYLEFT ALL RIGHTS WRONGED

    REM --- Variable List
    REM
    REM A - aggression, max times the computer will roll
    REM C - Computer's total
    REM H - Current Hand total
    REM I - For determining if player needs instructions
    REM D - Current die roll
    REM P - Player total
    REM R - A random number returned by the Random Number Generator
    REM Q - For determining if player would like to roll again
    LET A=4
    LET H=0
    LET C=0
    LET P=0

    REM --- Initialise the random number seed
10  PRINT "ENTER A 4 DIGIT NUMBER:"
    INPUT R

    PRINT "DO YOU NEED INSTRUCTIONS? (0 NO, 1 YES)"
    INPUT I
    IF I=1 THEN GOSUB 250

    REM --- START
    PRINT "WHAT POINT TOTAL TO PLAY TO?"
    INPUT W

15  PRINT "You play first: "
   
    REM --- MAIN GAME LOOP
20  PRINT "YOUR CURRENT HAND IS ",H
    PRINT "WOULD YOU LIKE TO ROLL? (0 NO, 1 YES)"
    INPUT Q

30  IF Q=0 THEN GOTO 40
   
    REM --- CHECK IF PLAYER BUSTED
    GOSUB 200 
    PRINT "YOU ROLLED ",D
    IF D=1 THEN GOTO 50
    LET H=H+D
    GOTO 20

    REM --- COMPUTER'S TURN
40  REM FIRST ADD PLAYER'S HAND TOTAL TO PLAYER TOTAL
    REM AND DISPLAY IT
    LET P=P+H
    REM RESET H
42  LET H=0
    GOSUB 150
    REM CHECK IF PLAYER WON
    GOSUB 100
    PRINT ""
    PRINT "MY TURN"
    LET A=4
45  GOSUB 200
    PRINT "I ROLLED ",D
    IF D=1 THEN GOTO 60
    LET H=H+D
    LET A=A-1
    REM CHECKING TO SEE IF COMPUTER WILL STOP ROLLING
    IF A<1 THEN GOTO 47
    GOTO 45
47  GOSUB 130
    PRINT "I'M ENDING MY TURN"
    LET C=H+C
    PRINT "MY CURRENT TOTAL IS ",C
    PRINT ""
    LET H=0
    GOSUB 150
    GOTO 20

    REM --- PLAYER BUSTS
50  PRINT "XXXXXXXXXXX"
    PRINT "YOU BUSTED!"
    PRINT "XXXXXXXXXXX"
    GOTO 42

    REM --- COMPUTER BUSTS
60  PRINT "I BUSTED!"
    PRINT "MY TOTAL IS ",C
    LET H=0
    GOSUB 150
    GOTO 20

    REM - CHECK IF PLAYER WINS
100 IF P>W THEN GOTO 120
    RETURN
120 PRINT "CONGRATULATIONS, YOU WIN!"
    GOTO 300

    REM - CHECK IF COMPUTER WINS
130 IF C>W THEN GOTO 140
    RETURN
140 PRINT "YOU LOSE!"
    GOTO 300

    REM PRINT PLAYER TOTAL
150 PRINT "YOUR CURRENT TOTAL IS ",P
    RETURN

200 LET D=1+R-R/6*6
    LET R=5*R+35
    LET R=R-R/6547*6547
    RETURN

    REM INSTRUCTIONS
250 PRINT "Pig is a simple competitive dice game for two players. In a round, a player may roll a single die as many times as they want, each time adding the points to their hand for that round. They may stop at any time and add the hand to their total game points. If they roll a 1 at any time they are 'BUSTED'. They immediately stop and lose all accrued points in the hand for that round. When a player stops by choice or due to busting, the other player begins a new turn. Game continues in this fashion ending when either player reaches a previously agreed-upon point total."
    PRINT ""
    RETURN

    REM END
300 PRINT "YOUR SCORE IS ",P
    PRINT "COMPUTER SCORE IS ",C
    PRINT "GOODBYE"

