'=========================================================================== ' 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.del8f2fedc1cd 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<d l8o2f3fedceo2f3edceo2f3fedcef1 " NEXT howbig LOCATE 29, 20: PRINT "by Colin Davis" LOCATE 30, 20: PRINT "Press any key to continue": SLEEP CLS END SUB