home *** CD-ROM | disk | FTP | other *** search
/ The Glitch Apple Disk Collection / 2014.glitch.apple.collection.zip / indexed / FLASHCOM.DSK / PENTOMINOES.int < prev    next >
Text File  |  2014-09-09  |  6KB  |  117 lines

  1. 10 CALL -936:VTAB 5:PRINT "THIS PROGRAM WILL ATTEMPT TO FIT":PRINT "SEVERAL DIFFERENT SHAPES INTO A":PRINT "RECTANGLE WHOSE AREA IS 60.":PRINT 
  2. 20 PRINT "SO YOU MUST GIVE THE HEIGHT AND WIDTH":PRINT "OF THE RECTANGLE SO THAT WHEN"
  3. 30 PRINT "THEY ARE MULTIPLIED TOGETHER THE RESULT":PRINT "WILL EQUAL 60 EXACTLY."
  4. 40 PRINT :PRINT "THIS PROGRAM TAKES A LONG TIME TO":PRINT "FIND A SOLUTION.  5000 TO 9000 PIECE":PRINT "INSERTIONS ARE TYPICAL."
  5. 80 T1=0
  6. 85 T2=0
  7. 90 DIM USED(12),LS(12),A$(10)
  8. 95 PRINT :PRINT :INPUT "PRESS RETURN KEY TO START ",A$
  9. 100 DIM P(295),ARENA(400),STACK(12):GOSUB 1000
  10. 110 FOR I=0 TO 12:STACK(I)=0:USED(I)=0:NEXT I
  11. 120 FOR I=0 TO 400:ARENA(I)=0:NEXT I
  12. 124 REAP=0
  13. 125 TEXT :CALL -936:VTAB 24
  14. 126 PRINT "HORIZ X VERT MUST=60"
  15. 130 GR :COLOR= 15
  16. 140 PRINT "WIDTH";:INPUT W:PRINT "HEIGHT";:INPUT H
  17. 160 LL=11:RL=10+W:TL=2:BL=1+2*H
  18. 165 IF W<3 OR H<3 THEN 175
  19. 170 IF W*H=60 THEN 180
  20. 175 PRINT "INVALID SIZE<CTRL-G>":GOTO 125
  21. 180 HLIN LL-1,RL+1 AT TL-1:HLIN LL-1,RL+1 AT TL-2:HLIN LL-1,RL+1 AT BL+1:HLIN LL-1,RL+1 AT BL+2
  22. 190 VLIN TL,BL AT LL-1:VLIN TL,BL AT RL+1
  23. 195 CALL -936:VTAB 22:TAB 15:PRINT "PENTOMINOES":TAB 7:PRINT MSG$;
  24. 200 FOR X=1 TO 20:FOR Y=1 TO 20
  25. 210 IF X<=W+1 AND X>=2 AND Y<=H+1 AND Y>=2 THEN 230:ARENA(X+20*(Y-1))=255
  26. 230 NEXT Y,X
  27. 240 SP=0:GOSUB 500
  28. 250 CP=1
  29. 260 IF NOT USED(P(CP)) THEN 300
  30. 270 CP=CP+5:IF CP<296 THEN 260
  31. 275 GOTO 410
  32. 280 PRINT "<CTRL-G><CTRL-G>SOLUTION":INPUT A$
  33. 290 GOTO 410
  34. 300 FILL=0:FOR I=1 TO 4:IF ARENA(LEAD+P(CP+I)) THEN FILL=1:NEXT I
  35. 310 IF FILL=0 THEN 340
  36. 320 CP=CP+5:IF CP>295 THEN 410
  37. 330 IF NOT USED(P(CP)) THEN 300:GOTO 320
  38. 340 SP=SP+1:STACK(SP)=CP:LS(SP)=LEAD:USED(P(CP))=1
  39. 350 COLOR= P(CP):FOR I=1 TO 4:J=LEAD+P(CP+I):ARENA(J)=P(CP)
  40. 352 PLOT (J MOD 20)+9,2*(J/20):PLOT (J MOD 20)+9,2*(J/20)+1
  41. 354 NEXT I
  42. 355 ARENA(LEAD)=P(CP)
  43. 360 PLOT (LEAD MOD 20)+9,2*(LEAD/20)
  44. 365 PLOT (LEAD MOD 20)+9,2*(LEAD/20)+1
  45. 370 GOSUB 500:GOTO 250
  46. 410 IF SP=0 THEN 440:CP=STACK(SP):LEAD=LS(SP):USED(P(CP))=0:SP=SP-1
  47. 415 A= PEEK (-16336)+ PEEK (-16336)
  48. 417 T2=T2+1
  49. 420 COLOR= 0:FOR I=1 TO 4:J=LEAD+P(CP+I):ARENA(J)=0
  50. 422 PLOT (J MOD 20)+9,2*(J/20):PLOT (J MOD 20)+9,2*(J/20)+1
  51. 424 NEXT I
  52. 425 ARENA(LEAD)=0
  53. 426 PLOT (LEAD MOD 20)+9,2*(LEAD/20)
  54. 427 PLOT (LEAD MOD 20)+9,2*(LEAD/20)+1
  55. 430 GOTO 270
  56. 440 PRINT "<CTRL-G><CTRL-G><CTRL-G>NO MORE SOLUTIONS":END 
  57. 500 I=1:T1=T1+1
  58. 505 VTAB 21:TAB 8
  59. 507 PRINT "INSERTION=";T1;" REMOVAL =";T2
  60. 510 IF NOT ARENA(I) THEN 520:I=I+1:IF I<400 THEN 510
  61. 515 POP :GOTO 280
  62. 520 LEAD=I:RETURN 
  63. 530 RETURN 
  64. 1000 P(1)=1:P(2)=1:P(3)=2:P(4)=3:P(5)=4:P(6)=1:P(7)=20:P(8)=40:P(9)=60:P(10)=80
  65. 1010 P(11)=2:P(12)=19:P(13)=20:P(14)=21:P(15)=40:P(16)=3:P(17)=19:P(18)=20:P(19)=40:P(20)=41
  66. 1020 P(21)=3:P(22)=20:P(23)=21:P(24)=39:P(25)=40:P(26)=3:P(27)=1:P(28)=19:P(29)=20:P(30)=40
  67. 1030 P(31)=3:P(32)=1:P(33)=21:P(34)=22:P(35)=41:P(36)=3:P(37)=20:P(38)=21:P(39)=22:P(40)=41
  68. 1040 P(41)=3:P(42)=18:P(43)=19:P(44)=20:P(45)=39:P(46)=3:P(47)=19:P(48)=20:P(49)=21:P(50)=39
  69. 1050 P(51)=3:P(52)=19:P(53)=20:P(54)=21:P(55)=41:P(56)=4:P(57)=2:P(58)=20:P(59)=21:P(60)=22
  70. 1060 P(61)=4:P(62)=1:P(63)=20:P(64)=40:P(65)=41:P(66)=4:P(67)=1:P(68)=21:P(69)=40:P(70)=41
  71. 1070 P(71)=4:P(72)=1:P(73)=2:P(74)=20:P(75)=22:P(76)=5:P(77)=1:P(78)=2:P(79)=3:P(80)=23
  72. 1080 P(81)=5:P(82)=11:P(83)=2:P(84)=3:P(85)=20:P(86)=5:P(87)=20:P(88)=21:P(89)=22:P(90)=23
  73. 1090 P(91)=5:P(92)=17:P(93)=18:P(94)=19:P(95)=20:P(96)=6:P(97)=1:P(98)=2:P(99)=3:P(100)=22
  74. 1100 P(101)=6:P(102)=1:P(103)=21:P(104)=2:P(105)=3:P(106)=6:P(107)=19:P(108)=20:P(109)=21:P(110)=22
  75. 1110 P(111)=6:P(112)=18:P(113)=19:P(114)=20:P(115)=21:P(116)=6:P(117)=20:P(118)=21:P(119)=40:P(120)=60
  76. 1120 P(121)=6:P(122)=19:P(123)=20:P(124)=40:P(125)=60:P(126)=6:P(127)=20:P(128)=40:P(129)=41:P(130)=60
  77. 1130 P(131)=6:P(132)=20:P(133)=39:P(134)=40:P(135)=60:P(136)=7:P(137)=1:P(138)=21:P(139)=22:P(140)=23
  78. 1140 P(141)=7:P(142)=1:P(143)=20:P(144)=19:P(145)=18:P(146)=7:P(147)=1:P(148)=2:P(149)=20:P(150)=19
  79. 1150 P(151)=7:P(152)=1:P(153)=2:P(154)=22:P(155)=23:P(156)=7:P(157)=20:P(158)=21:P(159)=41:P(160)=61
  80. 1160 P(161)=7:P(162)=20:P(163)=19:P(164)=39:P(165)=59:P(166)=7:P(167)=20:P(168)=40:P(169)=41:P(170)=61
  81. 1170 P(171)=7:P(172)=20:P(173)=40:P(174)=39:P(175)=59:P(176)=8:P(177)=1:P(178)=2:P(179)=20:P(180)=21
  82. 1180 P(181)=8:P(182)=1:P(183)=2:P(184)=21:P(185)=22:P(186)=8:P(187)=1:P(188)=20:P(189)=21:P(190)=40
  83. 1190 P(191)=8:P(192)=1:P(193)=20:P(194)=21:P(195)=41:P(196)=8:P(197)=1:P(198)=20:P(199)=21:P(200)=22
  84. 1200 P(201)=8:P(202)=1:P(203)=19:P(204)=20:P(205)=21:P(206)=8:P(207)=20:P(208)=21:P(209)=40:P(210)=41
  85. 1210 P(211)=8:P(212)=19:P(213)=20:P(214)=39:P(215)=40:P(216)=9:P(217)=20:P(218)=21:P(219)=41:P(220)=42
  86. 1220 P(221)=9:P(222)=19:P(223)=20:P(224)=38:P(225)=39:P(226)=9:P(227)=1:P(228)=19:P(229)=20:P(230)=39
  87. 1230 P(231)=9:P(232)=1:P(233)=21:P(234)=22:P(235)=42:P(236)=10:P(237)=20:P(238)=21:P(239)=22:P(240)=40
  88. 1240 P(241)=10:P(242)=20:P(243)=19:P(244)=18:P(245)=40:P(246)=10:P(247)=1:P(248)=2:P(249)=21:P(250)=41
  89. 1250 P(251)=10:P(252)=20:P(253)=39:P(254)=40:P(255)=41:P(256)=11:P(257)=1:P(258)=2:P(259)=20:P(260)=40
  90. 1260 P(261)=11:P(262)=1:P(263)=2:P(264)=22:P(265)=42:P(266)=11:P(267)=20:P(268)=40:P(269)=39:P(270)=38
  91. 1270 P(271)=11:P(272)=20:P(273)=40:P(274)=41:P(275)=42:P(276)=12:P(277)=20:P(278)=19:P(279)=18:P(280)=38
  92. 1280 P(281)=12:P(282)=20:P(283)=21:P(284)=22:P(285)=42:P(286)=12:P(287)=1:P(288)=20:P(289)=40:P(290)=39
  93. 1290 P(291)=12:P(292)=1:P(293)=21:P(294)=41:P(295)=42
  94. 1300 GOSUB 5000
  95. 1999 RETURN 
  96. 2000 FOR X=1 TO 20:FOR Y=1 TO 20:PRINT ARENA(X+20*(Y-1));:NEXT Y:PRINT :NEXT X:END 
  97. 5000 DIM QWE(2),MSG$(200):QWE=1:QWE(0)=2:MSG$="SLOW INTEGER BASIC VERSION"
  98. 5010 IF QWE=2 THEN 5999
  99. 5020 MSG$="FLASH!  COMPILED  VERSION"
  100. 5999 RETURN 
  101. 10000 REM 
  102. 10010 REM PENTOMINOES GAME
  103. 10020 REM PROBLEM IS TO FIT SEVERAL
  104. 10030 REM DIFFERENT SHAPED PIECES
  105. 10040 REM INTO A RECTANGLE WHICH
  106. 10050 REM HAS AN AREA OF 60 SQAURE
  107. 10060 REM UNITS.
  108. 10070 REM 
  109. 10080 REM TAKES A LONG TIME UNDER
  110. 10090 REM INTEGER BASIC. TOO LONG FOR
  111. 10100 REM SOMEONE TO WAIT WITH A
  112. 10110 REM STOPWATCH TO TIME IT.
  113. 10120 REM 
  114. 10130 REM FIRST SOLUTION IS FOUND
  115. 10140 REM IN A FEW MINUTES UNDER
  116. 10150 REM FLASH!
  117.