'===========================================================================
' Subject: MONOPOLY GAME                      Date: 02-25-97 (15:00)       
'  Author: Colin Davis                        Code: QB, QBasic, PDS        
'  Origin: Like the board game              Packet: GAMES.ABC
'===========================================================================
DECLARE SUB opening ()
DECLARE SUB delay (duration!)
DIM card.chance.array$(1 TO 50)
DIM card.community.chest.array$(1 TO 50)
DIM prop.color.array$(1 TO 50)
DIM prop.user.owned.current(1 TO 50)
DIM prop.name.array$(1 TO 50)
DIM prop.money.purchace.array$(1 TO 50)
DIM prop.houses.owned(1 TO 50)
DIM prop.player.owned(1 TO 50)
DIM prop.house.price.array(1 TO 50)
DIM prop.money.purchace.array.location(1 TO 50)
DIM prop.user.owned.current.location(1 TO 50)
'********************************data setup***********************************
RESTORE prop.names.data
FOR n = 1 TO 40: READ prop.name.temp$: prop.name.array$(n) = prop.name.temp$: NEXT n
RESTORE prop.house.prices.data
FOR n = 1 TO 40: READ prop.house.price.temp: prop.house.price.array(n) = prop.house.price.temp: NEXT n
RESTORE prop.colors.data
FOR n = 1 TO 40: READ prop.color.temp$: prop.color.array$(n) = prop.color.temp$: NEXT n
RESTORE prop.money.purchace.data
FOR n = 1 TO 40: READ prop.money.temp$: prop.money.purchace.array$(n) = prop.money.temp$: NEXT n
RESTORE card.community.chest
FOR n = 1 TO 12: READ prop.card.temp$: card.community.chest.array$(n) = prop.card.temp$: NEXT n
RESTORE card.chance
FOR n = 1 TO 12: READ prop.card.temp$: card.chance.array$(n) = prop.card.temp$: NEXT n
user.money.current = 1100
prop.names.current = 0
prop.names.current.select = 1
comp.money.current = 1500
prop.names.current.comp = 1
'********************************data end***********************************
CLS
user.choice.opening.loop:
LOCATE 5, 20: INPUT "Do you wish to see the opening? [Y/N] ", user.choice.opening$
IF UCASE$(user.choice.opening$) = "Y" THEN CALL opening: GOTO openingno
IF UCASE$(user.choice.opening$) = "N" THEN GOTO openingno
PRINT "Select (Y)es ro (N)o"
GOTO user.choice.opening.loop
openingno:
skipdelay = 1
GOSUB street.main.view
skipdelay = 0
mainmenu.loop:
LINE (1, 1)-(700, 140), 0, BF
IF user.money.current < 1 THEN PRINT "You ran out of money. Game over": GOTO quit
IF comp.money.current < 1 THEN PRINT "The computer ran out of money. Game over": GOTO quit
LOCATE 1, 20: PRINT "You have: "; user.money.current; " dollars"
LOCATE 2, 20: PRINT "The computer has "; comp.money.current; "dollars"
LOCATE 3, 20: PRINT "Options:"
LOCATE 4, 20: PRINT "1) Roll"
LOCATE 5, 20: PRINT "2) Buy houses"
LOCATE 6, 20: PRINT "3) Computer's Turn"
LOCATE 7, 20: PRINT "4) Save/Load"
LOCATE 8, 20: PRINT "5) Quit"
LOCATE 9, 20: INPUT user.choice.mainmenu
IF user.choice.mainmenu > 5 OR user.choice.mainmenu < 1 THEN PRINT "Invalid choice.": GOTO mainmenu.loop
ON user.choice.mainmenu GOSUB menu.choice.roll, user.purchace.homes, computer.may.go, save.load, quit
GOTO mainmenu.loop
save.load:
LINE (1, 1)-(700, 140), 0, BF
LOCATE 1, 20: PRINT "1) Save"
LOCATE 2, 20: PRINT "2) Load"
LOCATE 3, 20: PRINT "3) Return to main menu"
LOCATE 4, 20: INPUT user.choice.saveload
IF user.choice.saveload > 2 OR user.choice.mainmenu < 1 THEN PRINT "Invalid choice.": GOTO mainmenu.loop
ON user.choice.saveload GOSUB save, load, rtmm
GOTO save.load
rtmm:
RETURN

save:
INPUT "What file? ", user.save.to$
OPEN user.save.to$ FOR OUTPUT AS #1
PRINT #1, user.money.current; ","; comp.money.current; ","; prop.names.current; ","; prop.names.current.comp; ",";
FOR n = 1 TO 40
        PRINT #1, VAL(prop.money.purchace.array$(n)); ",";
NEXT n
FOR n = 1 TO 40
        PRINT #1, prop.user.owned.current(n); ",";
NEXT n
FOR n = 1 TO 40
        PRINT #1, prop.houses.owned(n); ",";
NEXT n
LOCATE 9, 20: PRINT "File saved"
CLOSE #1
RETURN

load:
INPUT "What file? ", user.load.from$
OPEN user.load.from$ FOR INPUT AS #1
INPUT #1, user.money.current, comp.money.current, prop.names.current, prop.names.current.comp
FOR n = 1 TO 40
        INPUT #1, prop.money.purchace.array$(n)
NEXT n
FOR n = 1 TO 40
        INPUT #1, prop.user.owned.current(n)
NEXT n
FOR n = 1 TO 40
        INPUT #1, prop.houses.owned(n)
        NEXT n
LOCATE 9, 20: PRINT "File loaded"
CLOSE #1
GOSUB user.screen.redraw
RETURN

user.purchace.homes:
DO
        prop.side1.select = 20
        prop.side2.select = 150
        prop.side3.select = 210
        prop.side4.select = 350
        LINE (1, 155)-(700, 500), 0, BF
        FOR n = 1 TO 4
                LINE (prop.side1.select, prop.side2.select)-(prop.side3.select, prop.side4.select), 3, B

                prop.side1.select = prop.side1.select + 201
                prop.side3.select = prop.side3.select + 201
        NEXT n
        key.string$ = INKEY$
        CIRCLE (130, 270), 35, 2
        PAINT (130, 270), 3, 2
        IF key.string$ = CHR$(0) + "K" THEN
                prop.names.current.select = prop.names.current.select - 1
        END IF
        IF key.string$ = CHR$(0) + "M" THEN
                prop.names.current.select = prop.names.current.select + 1
        END IF
       
        IF prop.names.current.select = 41 THEN prop.names.current.select = 1
        LOCATE 14, 5
       
        PRINT prop.name.array$(prop.names.current.select)
        LOCATE 14, 30
        PRINT prop.name.array$(prop.names.current.select + 1)
        LOCATE 14, 55
        PRINT prop.name.array$(prop.names.current.select + 2)
        LOCATE 15, 5
        PRINT prop.color.array$(prop.names.current.select)
        LOCATE 15, 30
        PRINT prop.color.array$(prop.names.current.select + 1)
        LOCATE 15, 55
        PRINT prop.color.array$(prop.names.current.select + 2)
        LOCATE 16, 5
        PRINT prop.money.purchace.array$(prop.names.current.select)
        LOCATE 16, 30
        PRINT prop.money.purchace.array$(prop.names.current.select + 1)
        LOCATE 16, 55
        PRINT prop.money.purchace.array$(prop.names.current.select + 2)
        LOCATE 17, 5
        PRINT "ob:"; prop.user.owned.current(prop.names.current.select)
        LOCATE 17, 30
        PRINT "ob:"; prop.user.owned.current(prop.names.current.select + 1); ""
        LOCATE 17, 55
        PRINT "ob:"; prop.user.owned.current(prop.names.current.select + 2)
        LOCATE 18, 5
        FOR n = 1 TO prop.houses.owned(prop.names.current.select)
                LOCATE 18, 5 + n + n2: PRINT "/\"
                n2 = n2 + 1
        NEXT n
        FOR n = 1 TO prop.houses.owned(prop.names.current.select + 1)
                LOCATE 18, 30 + n + n2: PRINT "/\"
                n2 = n2 + 1
        NEXT n
        FOR n = 1 TO prop.houses.owned(prop.names.current.select + 1)
                LOCATE 18, 55 + n + n2: PRINT "/\"
                n2 = n2 + 1
        NEXT n
     
       
        IF skipdelay <> 1 THEN delay .7
        IF prop.names.current.select = 41 THEN prop.names.current.select = 1
LOOP UNTIL key.string$ = "1"

LINE (1, 1)-(700, 140), 0, BF
LOCATE 5, 20: PRINT "Houses for that property cost "; prop.house.price.array(prop.names.current.select)
IF prop.user.owned.current(prop.names.current.select) = 1 THEN
        prop.color.select = VAL(prop.color.array$(prop.names.current.select))
        num.of.this.color.owned = 0
        FOR n = 1 TO 40
                IF (VAL(prop.color.array$(n)) = prop.color.select) AND (prop.user.owned.current(n) = 1) THEN num.of.this.color.owned = num.of.this.color.owned + 1
        NEXT n
                IF num.of.this.color.owned <= 2 THEN
                        LOCATE 7, 20: INPUT "Are you sure? [Y/N]", prop.house.are.you.sure$
                        IF UCASE$(prop.house.are.you.sure$) = "Y" THEN
                               IF prop.houses.owned(prop.names.current.select) < 4 THEN prop.houses.owned(prop.names.current.select) = prop.houses.owned(prop.names.current.select) + 1: user.money.current = user.money.current - prop.house.price.array(prop.names.current.select)
                               IF prop.houses.owned(prop.names.current.select) = 4 THEN PRINT "You allready have the maxium number of houses"
                               SLEEP
                        ELSE SLEEP: RETURN
                        END IF
               ELSE LOCATE 6, 20: PRINT "You do not own enough of that color group"
               END IF
ELSE LOCATE 6, 20: PRINT "You do not own that property"
END IF
SLEEP
GOSUB user.screen.redraw
RETURN

street.main.view:
SCREEN 12
DO
        prop.side1 = 20
        prop.side2 = 150
        prop.side3 = 210
        prop.side4 = 350
        LINE (1, 155)-(700, 500), 0, BF
        FOR n = 1 TO 4
                LINE (prop.side1, prop.side2)-(prop.side3, prop.side4), 3, B
                prop.side1 = prop.side1 + 201
                prop.side3 = prop.side3 + 201
        NEXT n
        CIRCLE (130, 270), 35, 2
        PAINT (130, 270), 3, 2
       
        prop.names.current = prop.names.current + 1
        IF prop.names.current = 41 THEN prop.names.current = 1
        IF prop.names.current = 1 THEN user.money.current = user.money.current + 200
        LOCATE 14, 5
        PRINT prop.name.array$(prop.names.current)
        LOCATE 14, 30
        PRINT prop.name.array$(prop.names.current + 1)
        LOCATE 14, 55
        PRINT prop.name.array$(prop.names.current + 2)
        LOCATE 15, 5
        PRINT prop.color.array$(prop.names.current)
        LOCATE 15, 30
        PRINT prop.color.array$(prop.names.current + 1)
        LOCATE 15, 55
        PRINT prop.color.array$(prop.names.current + 2)
        LOCATE 16, 5
        PRINT prop.money.purchace.array$(prop.names.current)
        LOCATE 16, 30
        PRINT prop.money.purchace.array$(prop.names.current + 1)
        LOCATE 16, 55
        PRINT prop.money.purchace.array$(prop.names.current + 2); ""
        LOCATE 17, 5
        PRINT "ob:"; prop.user.owned.current(prop.names.current)
        LOCATE 17, 30
        PRINT "ob:"; prop.user.owned.current(prop.names.current + 1); ""
        LOCATE 17, 55
        PRINT "ob:"; prop.user.owned.current(prop.names.current + 2)
        LOCATE 18, 5
        FOR n = 1 TO prop.houses.owned(prop.names.current)
                LOCATE 18, 5 + n + n2: PRINT "/\"
                n2 = n2 + 1
        NEXT n
        FOR n = 1 TO prop.houses.owned(prop.names.current + 1)
                LOCATE 18, 30 + n + n2: PRINT "/\"
                n2 = n2 + 1
        NEXT n
        FOR n = 1 TO prop.houses.owned(prop.names.current + 2)
                LOCATE 18, 55 + n + n2: PRINT "/\"
                n2 = n2 + 1
        NEXT n
     
        IF user.moved.total = user.move.total THEN
               IF skipdelay <> 1 THEN delay 4
                GOSUB currentspace
                RETURN
        END IF
        IF user.moved.total <> user.move.total THEN prop.names.current = prop.names.current + 1: user.moved.total = user.moved.total + 1
        IF skipdelay <> 1 THEN delay .7
        IF prop.names.current = 41 THEN prop.names.current = 1
LOOP

menu.choice.roll:
LINE (1, 1)-(700, 140), 0, BF
RANDOMIZE TIMER
user.moved.total = 0
user.roll.1 = INT(RND * 6 + .5)
user.roll.2 = INT(RND * 6 + .5)
IF user.roll.1 = 0 THEN user.roll.1 = 1
IF user.roll.2 = 0 THEN user.roll.2 = 1
LOCATE 5, 20
IF user.roll.1 <> user.roll.2 THEN PRINT "You roll a "; user.roll.1; " and a "; user.roll.2; ""
IF user.roll.1 = user.roll.2 THEN PRINT "Doubles!, Both of your dice are a "; user.roll.1
user.move.total = user.roll.1 + user.roll.2
LOCATE 6, 20
PRINT "Press any key"
DO: LOOP UNTIL INKEY$ <> ""
GOSUB street.main.view
RETURN

currentspace:
IF prop.names.current = 1 THEN
        user.money.current = user.money.current + 200
        LOCATE 5, 20
        PRINT " You landed on go!. Collect 200$!"
END IF
IF prop.names.current = 2 THEN GOSUB property.engage
IF prop.names.current = 3 THEN GOSUB property.community.chest
IF prop.names.current = 4 THEN GOSUB property.engage
IF prop.names.current = 5 THEN
incometax.loop:
        LOCATE 5, 20: INPUT " INCOME TAX LOSE 1)10%, OR 2)200$", user.property.incometax
        IF user.property.incometax <> 1 AND user.property.incometax <> 2 THEN GOTO incometax.loop
        IF user.property.incometax = 1 THEN
                user.money.lost.incometax = user.money.current * .1
                user.money.current = user.money.current - user.money.lost
        END IF
        IF user.property.incometax = 2 THEN user.money.current = user.money.current - 200
END IF
IF prop.names.current = 6 THEN GOSUB property.railroad
IF prop.names.current = 7 THEN GOSUB property.engage
IF prop.names.current = 8 THEN GOSUB property.chance
IF prop.names.current = 9 THEN GOSUB property.engage
IF prop.names.current = 10 THEN GOSUB property.engage
IF prop.names.current = 12 THEN GOSUB property.engage
IF prop.names.current = 13 THEN GOSUB property.engage
IF prop.names.current = 14 THEN GOSUB property.engage
IF prop.names.current = 15 THEN GOSUB property.engage
IF prop.names.current = 16 THEN GOSUB property.railroad
IF prop.names.current = 17 THEN GOSUB property.engage
IF prop.names.current = 18 THEN GOSUB property.community.chest
IF prop.names.current = 19 THEN GOSUB property.engage
IF prop.names.current = 20 THEN GOSUB property.engage
IF prop.names.current = 22 THEN GOSUB property.engage
IF prop.names.current = 23 THEN GOSUB property.chance
IF prop.names.current = 24 THEN GOSUB property.engage
IF prop.names.current = 25 THEN GOSUB property.engage
IF prop.names.current = 26 THEN GOSUB property.railroad
IF prop.names.current = 27 THEN GOSUB property.engage
IF prop.names.current = 28 THEN GOSUB property.engage
IF prop.names.current = 29 THEN GOSUB property.engage
IF prop.names.current = 30 THEN GOSUB property.engage
IF prop.names.current = 31 THEN GOSUB user.jailed
IF prop.names.current = 32 THEN GOSUB property.engage
IF prop.names.current = 33 THEN GOSUB property.engage
IF prop.names.current = 34 THEN GOSUB property.community.chest
IF prop.names.current = 35 THEN GOSUB property.engage
IF prop.names.current = 36 THEN GOSUB property.railroad
IF prop.names.current = 37 THEN GOSUB property.chance
IF prop.names.current = 38 THEN GOSUB property.engage
IF prop.names.current = 39 THEN GOSUB property.engage
IF prop.names.current = 40 THEN GOSUB property.engage
IF prop.names.current = 41 THEN prop.names.current = 1
RETURN

property.railroad:
IF prop.user.owned.current(prop.names.current) = 1 THEN
        FOR n = 1 TO 40
                IF (prop.color.array$(n) = "railroad") AND (prop.user.owned.current(n) = 1) THEN num.of.railroads = num.of.railroads + 1
        NEXT n
        PRINT "You land on one of your "; num.of.railroads; " railroad(s)."
END IF
IF prop.user.owned.current(prop.names.current) = 2 THEN
        FOR n = 1 TO 40
                IF (prop.color.array$(n) = "railroad") AND (prop.user.owned.current(n) = 2) THEN num.of.railroads = num.of.railroads + 1
        NEXT n
        PRINT "You land on one of the computer's "; num.of.railroads; " railroad(s)."
        IF num.of.railroads = 1 THEN
                PRINT "You pay $25"
                user.money.current = user.money.current - 25
                comp.money.current = comp.money.current + 25
        END IF
        IF num.of.railroads = 2 THEN
                PRINT "You pay $50"
                user.money.current = user.money.current - 50
                comp.money.current = comp.money.current + 50
        END IF
        IF num.of.railroads = 3 THEN
                PRINT "You pay $100"
                user.money.current = user.money.current - 100
                comp.money.current = comp.money.current + 100
        END IF
        IF num.of.railroads = 4 THEN
                PRINT "You pay $200"
                user.money.current = user.money.current - 200
                comp.money.current = comp.money.current + 200
        END IF
END IF
IF prop.user.owned.current(prop.names.current) = 0 THEN
        LOCATE 5, 20
        INPUT "This property is unowned, do you wish to buy it? [y/n]", user.property.purchace.temp$
        IF VAL(prop.money.purchace.array$(prop.names.current)) <> 0 THEN
                IF UCASE$(user.property.purchace.temp$) = "Y" THEN
                        PRINT prop.money.purchace.array$(prop.names.current)
                        user.money.current = user.money.current - VAL(prop.money.purchace.array$(prop.names.current))
                        prop.user.owned.current(prop.names.current) = 1
                END IF
        ELSE LOCATE 6, 20: PRINT "That property cannot be purchaced"
        END IF
END IF
GOSUB user.screen.redraw
RETURN
user.jailed:
IF get.out.of.jail.free >= 1 THEN
        INPUT "Use get out of jail free card? [y/n]", user.jail.card.use$
        IF UCASE$(user.jail.card.use$) = "Y" THEN
                get.out.of.jail.free = get.out.of.jail.free - 1
                RETURN
        END IF
END IF
INPUT "pay $50 to get out early? [y/n]", user.jail.early.exit$
IF UCASE$(user.jail.early.exit$) = "Y" THEN user.money.current = user.money.current: RETURN
IF UCASE$(user.jail.early.exit$) = "N" THEN
jail.roll:
        FOR n = 1 TO 3
        LINE (1, 1)-(700, 140), 0, BF
        RANDOMIZE TIMER
        user.moved.total = 0
        user.roll.1 = INT(RND * 6 + .5)
        user.roll.2 = INT(RND * 6 + .5)
        IF user.roll.1 = 0 THEN user.roll.1 = 1
        IF user.roll.2 = 0 THEN user.roll.2 = 1
        LOCATE 5, 20
        IF user.roll.1 <> user.roll.2 THEN PRINT "You roll a "; user.roll.1; " and a "; user.roll.2; ""
        IF useZr.roll.1 = user.roll.2 THEN PRINT "Doubles!, Both of your dice are a "; user.roll.1; "You get out of jail": RETURN
        user.move.total = user.roll.1 + user.roll.2
        LOCATE 6, 20
        PRINT "Press any key"
        DO: LOOP UNTIL INKEY$ <> ""
NEXT n
LOCATE 7, 20: PRINT "you are out of rolls. You pay $50."
user.money.current = user.money.current - 50
GOSUB user.screen.redraw
RETURN
END IF

property.community.chest:
card.community.chest.chosen = INT(RND * 12 + .5)
LOCATE 5, 20
PRINT card.community.chest.array$(card.community.chest.chosen)
IF card.community.chest.chosen = 1 THEN card.get.out.of.jail = 1
IF card.community.chest.chosen = 2 THEN user.money.current = user.money.current + 200
IF card.community.chest.chosen = 3 THEN user.money.current = user.money.current + 45
IF card.community.chest.chosen = 4 THEN user.money.current = user.money.current + 100
IF card.community.chest.chosen = 5 THEN user.money.current = user.money.current + 100
IF card.community.chest.chosen = 6 THEN user.money.current = user.money.current + 100
IF card.community.chest.chosen = 7 THEN user.money.current = user.money.current + 10
IF card.community.chest.chosen = 8 THEN user.money.current = user.money.current + 25
IF card.community.chest.chosen = 9 THEN user.money.current = user.money.current + 200
IF card.community.chest.chosen = 10 THEN user.money.current = user.money.current - 150
IF card.community.chest.chosen = 11 THEN user.money.current = user.money.current + 45

RETURN

property.chance:
card.chance.chosen = INT(RND * 12 + .5)
LOCATE 5, 20
PRINT card.chance.array$(card.chance.chosen)
SLEEP
RETURN

property.engage:
LINE (1, 1)-(700, 140), 0, BF
IF prop.user.owned.current(prop.names.current) = 0 THEN
        LOCATE 5, 20
        INPUT "This property is unowned, do you wish to buy it? [y/n]", user.property.purchace.temp$
        IF VAL(prop.money.purchace.array$(prop.names.current)) <> 0 THEN
                IF UCASE$(user.property.purchace.temp$) = "Y" THEN
                        PRINT prop.money.purchace.array$(prop.names.current)
                        user.money.current = user.money.current - VAL(prop.money.purchace.array$(prop.names.current))
                        prop.user.owned.current(prop.names.current) = 1
                END IF
        ELSE LOCATE 6, 20: PRINT "That property cannot be purchaced"
        END IF
END IF
IF prop.user.owned.current(prop.names.current) = 1 THEN
       LOCATE 5, 20
       PRINT "You own this property."
       IF prop.houses.owned(prop.names.current) >= 1 THEN
       PRINT "There are "; prop.houses.owned(prop.names.current); "houses on it."
       END IF

END IF
IF prop.user.owned.current(prop.names.current) = 2 THEN
        LOCATE 5, 20
        PRINT " This property is owned by player 2"
        IF prop.houses.owned(prop.names.current) >= 1 THEN
        PRINT "There are "; prop.houses.owned(prop.names.current); "houses on it."
        PRINT "You pay the computer $"; (VAL(prop.money.purchace.array$(prop.names.current)) * prop.houses.owned(prop.names.current) * 2)
                user.money.current = user.money.current - (VAL(prop.money.purchace.array$(prop.names.current)) * prop.houses.owned(prop.names.current) * 2)
                comp.money.current = comp.money.current + (VAL(prop.money.purchace.array$(prop.names.current)) * prop.houses.owned(prop.names.current) * 2)
        END IF
END IF
GOSUB user.screen.redraw
RETURN

computer.may.go:
LINE (1, 1)-(700, 140), 0, BF
RANDOMIZE TIMER
comp.moved.total = 0
comp.roll.1 = INT(RND * 6 + .5)
comp.roll.2 = INT(RND * 6 + .5)
IF comp.roll.1 = 0 THEN comp.roll.1 = 1
IF comp.roll.2 = 0 THEN comp.roll.2 = 1
LOCATE 5, 20
comp.move.total = comp.roll.1 + comp.roll.2
GOSUB comp.houses.purchace
DO
        prop.side1.comp = 20
        prop.side2.comp = 150
        prop.side3.comp = 210
        prop.side4.comp = 350
        LINE (1, 155)-(700, 500), 0, BF
        FOR n = 1 TO 4
                LINE (prop.side1.comp, prop.side2.comp)-(prop.side3.comp, prop.side4.comp), 3, B
                prop.side1.comp = prop.side1.comp + 201
                prop.side3.comp = prop.side3.comp + 201
        NEXT n
        LINE (120, 260)-(140, 280), 5, BF
        prop.names.current.comp = prop.names.current.comp + 1
        IF prop.names.current.comp = 41 THEN prop.names.current.comp = 1
        LOCATE 14, 5
        PRINT prop.name.array$(prop.names.current.comp)
        LOCATE 14, 30
        PRINT prop.name.array$(prop.names.current.comp + 1)
        LOCATE 14, 55
        PRINT prop.name.array$(prop.names.current.comp + 2)
        LOCATE 15, 5
        PRINT prop.color.array$(prop.names.current.comp)
        LOCATE 15, 30
        PRINT prop.color.array$(prop.names.current.comp + 1)
        LOCATE 15, 55
        PRINT prop.color.array$(prop.names.current.comp + 2)
        LOCATE 16, 5
        PRINT prop.money.purchace.array$(prop.names.current.comp)
        LOCATE 16, 30
        PRINT prop.money.purchace.array$(prop.names.current.comp + 1)
        LOCATE 16, 55
        PRINT prop.money.purchace.array$(prop.names.current.comp + 2)
        LOCATE 17, 5
        PRINT "ob:"; prop.user.owned.current(prop.names.current.comp)
        LOCATE 17, 30
        PRINT "ob:"; prop.user.owned.current(prop.names.current.comp + 1); ""
        LOCATE 17, 55
        PRINT "ob:"; prop.user.owned.current(prop.names.current.comp + 2)
        FOR n = 1 TO prop.houses.owned(prop.names.current.comp)
                LOCATE 18, 5 + n + n2: PRINT "/\"
                n2 = n2 + 1
        NEXT n
        FOR n = 1 TO prop.houses.owned(prop.names.current.comp + 1)
                LOCATE 18, 30 + n + n2: PRINT "/\"
                n2 = n2 + 1
        NEXT n
        FOR n = 1 TO prop.houses.owned(prop.names.current.comp + 2)
                LOCATE 18, 55 + n + n2: PRINT "/\"
                n2 = n2 + 1
        NEXT n
      
       
        IF comp.moved.total = comp.move.total THEN
               IF skipdelay <> 1 THEN delay 4
                GOSUB currentspace.comp
                GOTO mainmenu.loop
        END IF
        IF comp.moved.total <> comp.move.total THEN prop.names.current.comp = prop.names.current.comp + 1: comp.moved.total = comp.moved.total + 1
        IF skipdelay <> 1 THEN delay .7
        IF prop.names.current.comp = 41 THEN prop.names.current.comp = 1
LOOP

currentspace.comp:
IF prop.names.current.comp = 1 THEN
        comp.money.current = comp.money.current + 200
END IF
IF prop.names.current.comp = 2 THEN GOSUB property.engage.comp
IF prop.names.current.comp = 3 THEN GOSUB property.community.chest
IF prop.names.current.comp = 4 THEN GOSUB property.engage.comp
IF prop.names.current.comp = 5 THEN comp.money.current = comp.money.current - 200
IF prop.names.current.comp = 6 THEN GOSUB property.engage.comp
IF prop.names.current.comp = 7 THEN GOSUB property.engage.comp
IF prop.names.current.comp = 8 THEN GOSUB property.chance.comp
IF prop.names.current.comp = 9 THEN GOSUB property.engage.comp
IF prop.names.current.comp = 10 THEN GOSUB property.engage.comp
IF prop.names.current.comp = 12 THEN GOSUB property.engage.comp
IF prop.names.current.comp = 13 THEN GOSUB property.engage.comp
IF prop.names.current.comp = 14 THEN GOSUB property.engage.comp
IF prop.names.current.comp = 15 THEN GOSUB property.engage.comp
IF prop.names.current.comp = 16 THEN GOSUB property.engage.comp
IF prop.names.current.comp = 17 THEN GOSUB property.engage.comp
IF prop.names.current.comp = 18 THEN GOSUB property.community.chest.comp
IF prop.names.current.comp = 19 THEN GOSUB property.engage.comp
IF prop.names.current.comp = 20 THEN GOSUB property.engage.comp
IF prop.names.current.comp = 22 THEN GOSUB property.engage.comp
IF prop.names.current.comp = 23 THEN GOSUB property.chance.comp
IF prop.names.current.comp = 24 THEN GOSUB property.engage.comp
IF prop.names.current.comp = 25 THEN GOSUB property.engage.comp
IF prop.names.current.comp = 26 THEN GOSUB property.engage.comp
IF prop.names.current.comp = 27 THEN GOSUB property.engage.comp
IF prop.names.current.comp = 28 THEN GOSUB property.engage.comp
IF prop.names.current.comp = 29 THEN GOSUB property.engage.comp
IF prop.names.current.comp = 30 THEN GOSUB property.engage.comp
IF prop.names.current.comp = 31 THEN GOSUB property.engage.comp
IF prop.names.current.comp = 32 THEN GOSUB comp.jailed
IF prop.names.current.comp = 33 THEN GOSUB property.engage.comp
IF prop.names.current.comp = 34 THEN GOSUB property.engage.comp
IF prop.names.current.comp = 35 THEN GOSUB property.community.chest.comp
IF prop.names.current.comp = 36 THEN GOSUB property.engage.comp
IF prop.names.current.comp = 37 THEN GOSUB property.chance.comp
IF prop.names.current.comp = 38 THEN GOSUB property.engage.comp
IF prop.names.current.comp = 39 THEN GOSUB property.engage.comp
IF prop.names.current.comp = 40 THEN GOSUB property.engage.comp
IF prop.names.current.comp = 41 THEN prop.names.current.comp = 0
RETURN
comp.jailed:
IF get.out.of.jail.free.comp < 1 THEN comp.money.current = comp.money.current - 50
IF get.out.of.jail.free.comp >= 1 THEN
        get.out.jail.free.comp = get.out.of.jail.free.comp - 1
        RETURN
END IF
RETURN

property.engage.comp:
LINE (1, 1)-(700, 140), 0, BF
prop.color.comp = VAL(prop.color.array$(prop.names.current.comp))
num.of.this.color.owned = 0
FOR n = 1 TO 40
        IF (VAL(prop.color.array$(n)) = prop.color.comp) AND (prop.user.owned.current(n) = 2) THEN num.of.this.color.owned = num.of.this.color.owned + 1
NEXT n

IF prop.user.owned.current(prop.names.current.comp) = 0 THEN
        IF comp.money.current - 500 > VAL(prop.money.purchace.array$(prop.names.current.comp)) THEN
                comp.money.current = comp.money.current - VAL(prop.money.purchace.array$(prop.names.current.comp))
                prop.user.owned.current(prop.names.current.comp) = 2
        END IF
        IF num.of.this.color.owned = 1 AND comp.money.current - 350 > VAL(prop.money.purchace.array$(prop.names.current.comp)) THEN
                comp.money.current = comp.money.current - VAL(prop.money.purchace.array$(prop.names.current.comp))
                prop.user.owned.current(prop.names.current.comp) = 2
        END IF
        IF num.of.this.color.owned = 2 AND comp.money.current - 200 > VAL(prop.money.purchace.array$(prop.names.current.comp)) THEN
                comp.money.current = comp.money.current - VAL(prop.money.purchace.array$(prop.names.current.comp))
                prop.user.owned.current(prop.names.current.comp) = 2
        END IF
       
END IF
IF prop.user.owned.current(prop.names.current.comp) = 1 THEN
       LOCATE 5, 20
       PRINT "You own this property."
       IF prop.houses.owned(prop.names.current.comp) >= 1 THEN
       PRINT "There are "; prop.houses.owned(prop.names.current.comp); "houses on it."
       END IF
       PRINT "the computer pays you $"; VAL(prop.money.purchace.array$(prop.names.current.comp)) * prop.houses.owned(prop.names.current.comp)
       user.money.current = user.money.current + (VAL(prop.money.purchace.array$(prop.names.current)) * prop.houses.owned(prop.names.current) * 2)
       comp.money.current = comp.money.current - (VAL(prop.money.purchace.array$(prop.names.current)) * prop.houses.owned(prop.names.current) * 2)
END IF
IF prop.user.owned.current(prop.names.current.comp) = 2 THEN
        LOCATE 5, 20
        PRINT "This property is owned by player 2"
END IF
RETURN

comp.houses.purchace:
prop.color.comp = VAL(prop.color.array$(prop.names.current.comp))
num.of.this.color.owned = 0
FOR n = 1 TO 40
        IF (VAL(prop.color.array$(n)) = prop.color.comp) AND (prop.user.owned.current(n) = 2) THEN num.of.this.color.owned = num.of.this.color.owned + 1
NEXT n

IF num.of.this.color > 2 THEN
        IF prop.user.owned.current(prop.names.current.comp) = 2 THEN
                IF comp.money.curent - (prop.house.price.array(prop.names.current.comp) * 2) > 300 THEN
                        IF prop.houses.owned(prop.names.current.comp) < 4 THEN prop.houses.owned(prop.names.current.comp) = prop.houses.owned(prop.names.current.comp) + 2: comp.money.current = comp.money.current - (prop.house.price.array(prop.names.current.comp) * 2)
                END IF
        END IF
END IF
RETURN
prop.railroad.comp:
IF prop.user.owned.current(prop.names.current) = 1 THEN
        FOR n = 1 TO 40
                IF (prop.color.array$(n) = "railroad") AND (prop.user.owned.current(n) = 1) THEN num.of.railroads = num.of.railroads + 1
        NEXT n
        PRINT "The computer lands on one of your "; num.of.railroads; " railroad(s)."
        IF num.of.railroads = 1 THEN
                PRINT "The computer pays $25"
                user.money.current = user.money.current + 25
                comp.money.current = comp.money.current - 25
        END IF
        IF num.of.railroads = 2 THEN
                PRINT "The computer pays $50"
                user.money.current = user.money.current + 50
                comp.money.current = comp.money.current - 50
        END IF
        IF num.of.railroads = 3 THEN
                PRINT "The computer pays $100"
                user.money.current = user.money.current + 100
                comp.money.current = comp.money.current - 100
        END IF
        IF num.of.railroads = 4 THEN
                PRINT "The computer pays $200"
                user.money.current = user.money.current + 200
                comp.money.current = comp.money.current - 200
        END IF

END IF
IF prop.user.owned.current(prop.names.current) = 2 THEN
        FOR n = 1 TO 40
                IF (prop.color.array$(n) = "railroad") AND (prop.user.owned.current(n) = 2) THEN num.of.railroads = num.of.railroads + 1
        NEXT n
        PRINT "The computer lands on one of it's  "; num.of.railroads; " railroad(s)."
END IF
IF prop.user.owned.current(prop.names.current) = 0 THEN
        LOCATE 6, 20: PRINT "The computer buys the Railroad!"
        comp.money.current = comp.money.current - VAL(prop.money.purchace.array$(prop.names.current.comp))
        comp.money.current = comp.money.current - VAL(prop.money.purchace.array$(prop.names.current.comp))
        prop.user.owned.current(prop.names.current.comp) = 2
ELSE LOCATE 6, 20: PRINT "That property is not purchaced"
END IF
RETURN

property.community.chest.comp:
card.community.chest.chosen = INT(RND * 12 + .5)
LOCATE 5, 20
PRINT card.community.chest.array$(card.community.chest.chosen)
SLEEP
IF card.community.chest.chosen = 1 THEN card.get.out.of.jail.comp = 1
IF card.community.chest.chosen = 2 THEN comp.money.current = comp.money.current + 200
IF card.community.chest.chosen = 3 THEN comp.money.current = comp.money.current + 45
IF card.community.chest.chosen = 4 THEN comp.money.current = comp.money.current + 100
IF card.community.chest.chosen = 5 THEN comp.money.current = comp.money.current + 100
IF card.community.chest.chosen = 6 THEN comp.money.current = comp.money.current + 100
IF card.community.chest.chosen = 7 THEN comp.money.current = comp.money.current + 10
IF card.community.chest.chosen = 8 THEN comp.money.current = comp.money.current + 25
IF card.community.chest.chosen = 9 THEN comp.money.current = comp.money.current + 200
IF card.community.chest.chosen = 10 THEN comp.money.current = comp.money.current - 150
IF card.community.chest.chosen = 11 THEN comp.money.current = comp.money.current + 45

RETURN

property.chance.comp:
card.chance.chosen = INT(RND * 7 + .5)
LOCATE 5, 20
PRINT card.chance.array$(card.chance.chosen)
SLEEP
IF card.chance.chosen = 1 THEN user.money.current = user.money.current - 15
IF card.chance.chosen = 2 THEN prop.names.current = 6
IF card.chance.chosen = 3 THEN prop.names.current = 25
IF card.chance.chosen = 4 THEN get.out.of.jail = get.out.of.jail + 1
IF card.chance.chosen = 5 THEN GOSUB user.jailed
IF card.chance.chosen = 6 THEN prop.names.current = 39
IF card.chance.chosen = 7 THEN prop.names.current = 1
RETURN
user.screen.redraw:
        prop.side1.select = 20
        prop.side2.select = 150
        prop.side3.select = 210
        prop.side4.select = 350
        LINE (1, 155)-(700, 500), 0, BF
        FOR n = 1 TO 4
                LINE (prop.side1.select, prop.side2.select)-(prop.side3.select, prop.side4.select), 3, B

                prop.side1.select = prop.side1.select + 201
                prop.side3.select = prop.side3.select + 201
        NEXT n
        key.string$ = INKEY$
        CIRCLE (130, 270), 35, 2
        PAINT (130, 270), 3, 2
        IF key.string$ = CHR$(0) + "K" THEN
                prop.names.current = prop.names.current - 1
        END IF
        IF key.string$ = CHR$(0) + "M" THEN
                prop.names.current = prop.names.current + 1
        END IF
     
        IF prop.names.current = 41 THEN prop.names = 1
        LOCATE 14, 5
        PRINT prop.name.array$(prop.names.current)
        LOCATE 14, 30
        PRINT prop.name.array$(prop.names.current + 1)
        LOCATE 14, 55
        PRINT prop.name.array$(prop.names.current + 2)
        LOCATE 15, 5
        PRINT prop.color.array$(prop.names.current)
        LOCATE 15, 30
        PRINT prop.color.array$(prop.names.current + 1)
        LOCATE 15, 55
        PRINT prop.color.array$(prop.names.current + 2)
        LOCATE 16, 5
        PRINT prop.money.purchace.array$(prop.names.current)
        LOCATE 16, 30
        PRINT prop.money.purchace.array$(prop.names.current + 1)
        LOCATE 16, 55
        PRINT prop.money.purchace.array$(prop.names.current + 2)
        LOCATE 17, 5
        PRINT "ob:"; prop.user.owned.current(prop.names.current)
        LOCATE 17, 30
        PRINT "ob:"; prop.user.owned.current(prop.names.current + 1); ""
        LOCATE 17, 55
        PRINT "ob:"; prop.user.owned.current(prop.names.current + 2)
        LOCATE 18, 5
        FOR n = 1 TO prop.houses.owned(prop.names.current)
                LOCATE 18, 5 + n + n2: PRINT "/\"
                n2 = n2 + 1
        NEXT n
        FOR n = 1 TO prop.houses.owned(prop.names.current + 1)
                LOCATE 18, 30 + n + n2: PRINT "/\"
                n2 = n2 + 1
        NEXT n
        FOR n = 1 TO prop.houses.owned(prop.names.current + 1)
                LOCATE 18, 55 + n + n2: PRINT "/\"
                n2 = n2 + 1
        NEXT n
RETURN
     

quit:
SCREEN 13
CLS
DO
a = 1
b = 1
c = 325
d = 200
        b = 1
        a = 1
        d = 200
        c = 325
        FOR n = 1 TO 200
                LINE (a, b)-(c, d), color.ending.box, BF
                color.ending.box = color.ending.box + 1
                b = b + 1
                d = d - 1
        NEXT n
        FOR n = 1 TO 300
                LINE (a, b)-(c, d), color.ending.box, BF
                color.ending.box = color.ending.box + 1
                a = a + 1
                b = b + 1
                c = c - 1
                d = d - 1
        NEXT n
        FOR n = 200 TO 1 STEP -1
                CIRCLE (150, 100), n, color.ending.box
                color.ending.box = color.ending.box + 1
        delay .1
        NEXT n
        FOR n = 1 TO 200
                FOR n = 1 TO 200
                        CIRCLE (150, 100), n, color.ending.box
                NEXT n
        color.ending.box = color.ending.box + 1
        delay .1
        NEXT n

LOOP UNTIL INKEY$ <> ""
END
'************Data*************
prop.names.data:
DATA GO, MEDITERANEAN AVENUE , COMMUNITY CHEST, BALTIC AVENUE, INCOME TAX, READING RAILROAD, ORIENTAL AVENUE , CHANCE
DATA VERMONT AVENUE , CONNECTICUT AVENUE , JAIL/JUSTVISITING, ST. CHARLES PLACE , ELECTRIC COMPANY, STATES AVENUE, VIRGINIA AVENUE, PENNSYLVANIA RAILROAD, ST. JAMES PLACE, COMMUNITY CHEST, TENNESSEE AVENUE, NEWYORK AVENUE
DATA FREE PARKING, KENTUCKY AVENUE, CHANCE, INDIANA AVENUE, ILLINOIS AVENUE, B&O RAILROAD, ATLANTIC AVENUE, VENTNOR AVENUE, WATER WORKS, MARVIN GARDENS, GO TO JAIL, PACIFIC AVENUE, NORTH CAROLINA AVENUE, COMMUNITY CHEST, PENNSYLVANIA AVENUE, SHORT LINE RAILROAD, CHANCE, PARK PLACE, LUXARY TAX, BOARD WALK
prop.colors.data:
DATA " ", DK. PURPLE, " ", DK. PURPLE  , " ", RAILROAD, LT. BLUE, " ",LT. BLUE, LT.BLUE, " ", PURPLE, " ", PURPLE, PURPLE, RAILROAD, ORANGE, " ", ORANGE, ORANGE, " ", RED, " ", RED, RED, RAILROAD, YELLOW, YELLOW,  " ",YELLOW,  " ",GREEN, GREEN, " ", GREEN, RAILROAD, " ", BLUE, " ", BLUE                        LT.BLUE
prop.money.purchace.data:
DATA " ",60, " ", 60, " ",200,100, " ", 100, 120, " ", 140, 150, 140, 160, 200, 180, " ", 180, 200, " ", 220, " ", 220, 240, 200, 260, 260, 150, 280, " ", 300, 300, " ", 320, 200, " ", 350, " ", 400
card.chance:
DATA Pay Poor tax $15, Take a ride on the reading Railroad, Advance to illonis Ave,Get Out of Jail free, Go to jail, Take a walk on board walk, Advance to go, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16
card.community.chest:
DATA Get out of jail free,Advance to go,You recive $45 from sale of stock, you inherit $100, life insurance matures collect $100, x-mas fund.matures collect $100,Second prize in beuty contest collect $10,You recieve for services $25
DATA Bank error in your favor collect $200, pay school tax of $150, temp, temp2
prop.house.prices.data:
DATA 0, 50, 0, 50, 0, 50, 50, 0, 50, 50, 0, 100, 0, 100, 100, 0, 100, 0, 100, 100, 0 , 150, 0, 150, 150, 0, 150, 150, 0, 150, 0, 200, 200, 0, 200, 0, 200,0, 200
start.pic:
DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0                                  ,999
DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0                                  ,999
DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0                                  ,999
DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 256, 256, 256, 256, 256, 256, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0                  ,999
DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 256, 256, 255, 255, 255, 255, 255, 255, 256, 256, 256, 256, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0      ,999
DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 256, 255, 255, 255, 255, 255, 255, 255, 256, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0            ,999
DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 256, 256, 255, 255, 255, 255, 255, 255, 256, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0            ,999
DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 256, 255, 255, 255, 255, 255, 255, 255, 256, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0            ,999
DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 256, 256, 256, 256, 256, 256, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0                  ,999
DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 256, 255, 255, 255, 255, 255, 255, 255, 255, 256, 256, 256, 256, 256, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0  ,999
DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 256, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 256, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0      ,999
DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 12, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 256, 256, 256, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0   ,999
DATA 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 255, 255, 256, 6, 6, 6, 6, 6, 256, 255, 256, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0             ,999
DATA 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 255, 256, 6, 6, 256, 6, 256, 6, 6, 256, 12, 12, 12, 12, 256, 256, 256, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0          ,999
DATA 0, 0, 0, 12, 12, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 6, 255, 255, 255, 255, 255, 255, 256, 6, 6, 6, 256, 6, 6, 6, 256, 255, 255, 255, 255, 256, 255, 256, 255, 255, 255, 255, 255, 255, 255, 255, 255, 12, 12, 0, 0, 0, 0    ,999
DATA 0, 0, 0, 12, 12, 254, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 6, 12, 12, 12, 12, 12, 256, 6, 6, 255, 255, 255, 6, 256, 12, 12, 12, 12, 6, 6, 6, 12, 12, 12, 12, 12, 12, 12, 12, 12, 255, 12, 12, 0, 0, 0, 0                                                  ,999
DATA 0, 0, 0, 12, 12, 254, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 6, 6, 6, 6, 256, 256, 12, 12, 12, 12, 256, 255, 255, 256, 255, 255, 256, 12, 255, 256, 256, 6, 6, 6, 12, 12, 255, 255, 255, 255, 255, 255, 12, 255, 12, 12, 0, 0, 0, 0                                     ,999
DATA 0, 0, 0, 12, 12, 254, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 6, 6, 6, 6, 256, 256, 256, 256, 12, 255, 12, 256, 6, 6, 6, 256, 12, 256, 256, 256, 256, 12, 256, 255, 12, 12, 255, 12, 12, 12, 12, 255, 12, 255, 12, 12, 0, 0, 0, 0                                        ,999
DATA 0, 0, 0, 12, 12, 254, 12, 12, 255, 255, 12, 12, 12, 12, 12, 12, 12, 12, 12, 255, 255, 12, 12, 12, 12, 12, 255, 255, 255, 255, 255, 255, 12, 12, 12, 12, 255, 255, 12, 12, 12, 12, 12, 12, 12, 12, 256, 256, 256, 256, 256, 256, 255, 255, 256, 256, 256, 256, 256, 12, 12, 12, 256, 255, 12, 12, 255, 12, 12, 12, 12, 255, 12, 255, 12, 12, 0, 0, 0, 0                   ,999
DATA 0, 0, 0, 12, 12, 254, 12, 12, 255, 12, 255, 12, 12, 12, 12, 12, 12, 12, 255, 12, 255, 12, 12, 12, 12, 255, 255, 12, 12, 12, 12, 12, 255, 12, 12, 12, 255, 12, 255, 12, 12, 12, 12, 12, 12, 12, 255, 12, 256, 256, 256, 256, 256, 255, 256, 256, 256, 12, 255, 12, 12, 12, 256, 255, 12, 12, 255, 12, 12, 12, 12, 255, 12, 255, 12, 12, 0, 0, 0, 0                        ,999
DATA 0, 0, 0, 12, 12, 254, 12, 12, 255, 12, 255, 12, 12, 12, 12, 12, 12, 12, 255, 12, 255, 12, 12, 12, 12, 255, 12, 12, 12, 12, 12, 12, 255, 12, 12, 12, 255, 12, 255, 12, 12, 12, 12, 12, 12, 12, 255, 12, 12, 255, 256, 256, 256, 256, 256, 255, 12, 12, 255, 12, 12, 12, 256, 255, 12, 12, 255, 12, 12, 12, 12, 255, 12, 255, 12, 12, 0, 0, 0, 0                           ,999
DATA 0, 0, 0, 12, 12, 254, 12, 12, 255, 12, 12, 255, 12, 12, 12, 12, 12, 255, 12, 12, 255, 12, 12, 12, 12, 255, 12, 12, 12, 12, 12, 12, 255, 12, 12, 12, 255, 12, 255, 255, 12, 12, 12, 12, 12, 12, 255, 12, 12, 255, 256, 256, 255, 255, 256, 255, 12, 12, 255, 12, 12, 12, 256, 255, 12, 12, 255, 12, 12, 12, 12, 255, 12, 255, 12, 12, 0, 0, 0, 0                          ,999
DATA 0, 0, 0, 12, 12, 254, 12, 12, 255, 12, 12, 255, 12, 12, 12, 12, 12, 255, 12, 12, 255, 12, 12, 12, 12, 255, 12, 12, 12, 12, 12, 12, 255, 12, 12, 12, 255, 12, 12, 255, 12, 12, 12, 12, 12, 12, 255, 12, 12, 255, 256, 256, 255, 256, 256, 255, 12, 12, 255, 255, 255, 255, 255, 255, 12, 12, 255, 12, 12, 12, 12, 255, 12, 255, 12, 12, 0, 0, 0, 0                        ,999
DATA 0, 0, 0, 12, 12, 254, 12, 12, 255, 12, 12, 12, 255, 12, 12, 12, 255, 12, 12, 12, 255, 12, 12, 12, 12, 255, 12, 12, 12, 12, 12, 12, 255, 12, 12, 12, 255, 12, 12, 255, 255, 12, 12, 12, 12, 12, 255, 12, 12, 255, 256, 256, 255, 255, 256, 255, 12, 12, 255, 12, 12, 12, 12, 12, 12, 12, 255, 12, 12, 12, 12, 255, 12, 255, 12, 12, 0, 0, 0, 0                            ,999
DATA 0, 0, 0, 12, 12, 254, 12, 12, 255, 12, 12, 12, 255, 12, 12, 12, 255, 12, 12, 12, 255, 12, 12, 12, 12, 255, 12, 12, 12, 12, 12, 12, 255, 12, 12, 12, 255, 12, 12, 12, 255, 12, 12, 12, 12, 12, 255, 12, 12, 255, 256, 256, 255, 255, 256, 255, 12, 12, 255, 12, 12, 12, 12, 12, 12, 12, 255, 12, 12, 12, 12, 255, 12, 255, 12, 12, 0, 0, 0, 0                             ,999
DATA 0, 0, 0, 12, 12, 254, 12, 12, 255, 12, 12, 12, 12, 255, 12, 255, 12, 12, 12, 12, 255, 12, 12, 12, 12, 255, 12, 12, 12, 12, 12, 12, 255, 12, 12, 12, 255, 12, 12, 12, 255, 255, 12, 12, 12, 12, 255, 12, 12, 255, 256, 256, 255, 256, 256, 255, 12, 12, 255, 12, 12, 12, 12, 12, 12, 12, 255, 12, 12, 12, 12, 255, 12, 255, 12, 12, 0, 0, 0, 0                            ,999
DATA 0, 0, 0, 12, 12, 254, 12, 12, 255, 12, 12, 12, 12, 255, 12, 255, 12, 12, 12, 12, 255, 12, 12, 12, 12, 255, 12, 12, 12, 12, 12, 12, 255, 12, 12, 12, 255, 12, 12, 12, 12, 255, 12, 12, 12, 12, 255, 12, 12, 255, 256, 256, 255, 255, 256, 255, 12, 12, 255, 12, 12, 12, 12, 12, 12, 12, 255, 12, 12, 12, 12, 255, 12, 255, 12, 12, 0, 0, 0, 0                             ,999
DATA 0, 0, 0, 12, 12, 254, 12, 12, 255, 12, 12, 12, 12, 12, 255, 12, 12, 12, 12, 12, 255, 12, 12, 12, 12, 255, 12, 12, 12, 12, 12, 12, 255, 12, 12, 12, 255, 12, 12, 12, 12, 255, 255, 12, 12, 12, 255, 12, 12, 255, 256, 256, 255, 255, 256, 255, 12, 12, 255, 12, 12, 12, 12, 12, 12, 12, 255, 12, 12, 12, 12, 255, 12, 255, 12, 12, 0, 0, 0, 0                             ,999
DATA 0, 0, 0, 12, 12, 254, 12, 12, 255, 12, 12, 12, 12, 12, 255, 12, 12, 12, 12, 12, 255, 12, 12, 12, 12, 255, 12, 12, 12, 12, 12, 12, 255, 12, 12, 12, 255, 12, 12, 12, 12, 12, 255, 12, 12, 12, 255, 12, 12, 255, 256, 256, 255, 255, 256, 255, 12, 12, 255, 12, 12, 12, 12, 12, 12, 12, 255, 12, 12, 12, 12, 255, 12, 255, 12, 12, 0, 0, 0, 0                              ,999
DATA 0, 0, 0, 12, 12, 254, 12, 12, 255, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 255, 12, 12, 12, 12, 255, 12, 12, 12, 12, 12, 12, 255, 12, 12, 12, 255, 12, 12, 12, 12, 12, 255, 255, 12, 12, 255, 12, 12, 255, 256, 256, 255, 256, 256, 255, 12, 12, 255, 12, 12, 12, 12, 12, 12, 12, 255, 12, 12, 12, 12, 255, 12, 255, 12, 12, 0, 0, 0, 0                              ,999
DATA 0, 0, 0, 12, 12, 254, 12, 12, 255, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 255, 12, 12, 12, 12, 255, 12, 12, 12, 12, 12, 12, 255, 12, 12, 12, 255, 12, 12, 12, 12, 12, 12, 255, 12, 12, 255, 12, 12, 255, 256, 256, 256, 256, 256, 255, 12, 12, 255, 12, 12, 12, 12, 12, 12, 12, 255, 12, 12, 12, 12, 255, 12, 255, 12, 12, 0, 0, 0, 0                               ,999
DATA 0, 0, 0, 12, 12, 254, 12, 12, 255, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 255, 12, 12, 12, 12, 255, 12, 12, 12, 12, 12, 12, 255, 12, 12, 12, 255, 12, 12, 12, 12, 12, 12, 255, 255, 12, 255, 12, 12, 255, 256, 256, 256, 256, 256, 255, 12, 12, 255, 12, 12, 12, 12, 12, 12, 12, 255, 12, 12, 12, 12, 255, 12, 255, 12, 12, 0, 0, 0, 0                              ,999
DATA 0, 0, 0, 12, 12, 254, 12, 12, 255, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 255, 12, 12, 12, 12, 12, 255, 12, 12, 12, 12, 12, 255, 12, 12, 12, 255, 12, 12, 12, 12, 12, 12, 12, 255, 12, 255, 12, 12, 255, 255, 255, 255, 255, 255, 255, 12, 12, 255, 12, 12, 12, 12, 12, 12, 12, 255, 255, 255, 255, 255, 255, 12, 255, 12, 12, 0, 0, 0, 0                           ,999
DATA 0, 0, 0, 12, 12, 254, 12, 12, 255, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 255, 12, 12, 12, 12, 12, 12, 255, 255, 255, 255, 255, 12, 12, 12, 12, 255, 12, 12, 12, 12, 12, 12, 12, 255, 255, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 255, 12, 12, 0, 0, 0, 0                                      ,999
DATA 0, 0, 0, 12, 12, 254, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 255, 12, 12, 0, 0, 0, 0                                                ,999
DATA 0, 0, 0, 12, 12, 254, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 255, 12, 12, 0, 0, 0, 0                                                ,999
DATA 0, 0, 0, 12, 12, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 12, 12, 0, 0, 0, 0  ,999
DATA 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0                                                                       ,999
DATA 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0                                                                         ,999
DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0             ,999                                                                                                                                   ,999


'************End Data*********

SUB delay (duration)
totalmovedelay = 5000 * duration
FOR delaycntr = 1 TO totalmovedelay: NEXT delaycntr
END SUB

SUB opening
DEFINT A-Z
start.picture.draw:
PLAY "MB l4o2g2dga2.>dc2.<bg2.l16g>del8f2fedc1<l16b>cd<mlb1.mnb2"

SCREEN 12
locate1 = 100
locate2 = 100
FOR howbig = 2 TO 5
        RESTORE start.pic
        DO
                READ color.pset
                IF color.pset <> 999 THEN
                        FOR n = 1 TO howbig
                                LINE (locate1, locate2)-(locate1 + howbig, locate2 + howbig), color.pset, BF
                        NEXT n
                        locate1 = locate1 + 1 + howbig
                END IF
                
                IF color.pset = 999 THEN
                        locate2 = locate2 + 1 + howbig
                        locate1 = 100
                END IF
                total.set = total.set + 1
        LOOP UNTIL total.set = 3237
        locate1 = 100
        locate2 = 100
        total.set = 0
        IF howbig = 5 THEN PLAY "MB l8o3f3fedced2<<l4b->d l8o2f3fedceo2f3edceo2f3fedcef1 "
       
NEXT howbig
LOCATE 29, 20: PRINT "by Colin  Davis"
LOCATE 30, 20: PRINT "Press any key to continue": SLEEP
CLS

END SUB

