1 :
2 :
3 :
4 :
5 :
6 :
7 :
8 :
9 :
10 :
11 :
12 :
13 :
14 :
15 :
16 :
17 :
18 :
19 :
20 :
21 :
22 :
23 :
24 :
25 :
26 :
27 :
28 :
29 :
30 :
31 :
32 :
33 :
34 :
35 :
36 :
37 :
38 :
39 :
40 :
41 :
42 :
43 :
44 :
45 :
46 :
47 :
48 :
49 :
50 :
51 :
52 :
53 :
54 :
55 :
56 :
57 :
58 :
59 :
60 :
61 :
62 :
63 :
64 :
65 :
66 :
67 :
68 :
69 :
70 :
71 :
72 :
73 :
74 :
75 :
76 :
77 :
78 :
79 :
80 :
81 :
82 :
83 :
84 :
85 :
86 :
87 :
88 :
89 :
90 :
91 :
92 :
93 :
94 :
95 :
96 :
97 :
98 :
99 :
100 :
101 :
102 :
103 :
104 :
105 :
106 :
107 :
108 :
109 :
110 :
111 :
112 :
113 :
114 :
115 :
116 :
117 :
118 :
119 :
120 :
121 :
122 :
123 :
124 :
125 :
126 :
127 :
128 :
129 :
130 :
131 :
132 :
133 :
134 :
135 :
136 :
137 :
138 :
139 :
140 :
141 :
142 :
143 :
144 :
145 :
146 :
147 :
148 :
149 :
150 :
151 :
152 :
153 :
154 :
155 :
156 :
157 :
158 :
159 :
160 :
161 :
162 :
163 :
164 :
165 :
166 :
167 :
168 :
169 :
170 :
171 :
172 :
173 :
174 :
175 :
176 :
177 :
178 :
179 :
180 :
181 :
182 :
183 :
184 :
185 :
186 :
187 :
188 :
189 :
190 :
191 :
192 :
193 :
194 :
195 :
196 :
197 :
198 :
199 :
200 :
201 :
202 :
203 :
204 :
205 :
206 :
207 :
208 :
209 :
210 :
211 :
212 :
213 :
214 :
215 :
216 :
217 :
218 :
219 :
220 :
221 :
222 :
223 :
224 :
225 :
226 :
227 :
228 :
229 :
230 :
231 :
232 :
233 :
234 :
235 :
236 :
237 :
238 :
239 :
240 :
241 :
242 :
243 :
244 :
245 :
246 :
247 :
248 :
249 :
250 :
251 :
252 :
253 :
254 :
255 :
256 :
257 :
258 :
259 :
260 :
261 :
262 :
263 :
264 :
265 :
266 :
267 :
268 :
269 :
270 :
271 :
272 :
273 :
274 :
275 :
276 :
277 :
278 :
279 :
280 :
281 :
282 :
283 :
284 :
285 :
286 :
287 :
288 :
289 :
290 :
291 :
292 :
293 :
294 :
295 :
296 :
297 :
298 :
299 :
300 :
301 :
302 :
303 :
304 :
305 :
306 :
307 :
308 :
309 :
310 :
311 :
312 :
313 :
314 :
315 :
316 :
317 :
318 :
319 :
320 :
321 :
322 :
323 :
324 :
325 :
326 :
327 :
328 :
329 :
330 :
331 :
332 :
333 :
334 :
335 :
336 :
337 :
338 :
339 :
340 :
341 :
342 :
343 :
344 :
345 :
346 :
347 :
348 :
349 :
350 :
351 :
352 :
353 :
354 :
355 :
356 :
357 :
358 :
359 :
360 :
361 :
362 :
363 :
364 :
365 :
366 :
367 :
368 :
369 :
370 :
371 :
372 :
373 :
374 :
375 :
376 :
377 :
378 :
379 :
380 :
381 :
382 :
383 :
384 :
385 :
386 :
387 :
388 :
389 :
390 :
391 :
392 :
393 :
394 :
395 :
396 :
397 :
398 :
399 :
400 :
401 :
402 :
403 :
404 :
405 :
406 :
407 :
408 :
409 :
410 :
411 :
412 :
413 :
414 :
415 :
416 :
417 :
418 :
419 :
420 :
421 :
422 :
423 :
424 :
425 :
426 :
427 :
428 :
429 :
430 :
431 :
432 :
433 :
434 :
435 :
436 :
437 :
438 :
439 :
440 :
441 :
442 :
443 :
444 :
445 :
446 :
447 :
448 :
449 :
450 :
451 :
452 :
453 :
454 :
455 :
456 :
457 :
458 :
459 :
460 :
461 :
462 :
463 :
464 :
465 :
466 :
467 :
468 :
469 :
470 :
471 :
472 :
473 :
474 :
475 :
476 :
477 :
478 :
479 :
480 :
481 :
482 :
483 :
484 :
485 :
486 :
487 :
488 :
489 :
490 :
491 :
492 :
493 :
494 :
495 :
496 :
497 :
498 :
499 :
500 :
501 :
502 :
503 :
504 :
505 :
506 :
507 :
508 :
509 :
510 :
511 :
512 :
513 :
514 :
515 :
516 :
517 :
518 :
519 :
520 :
521 :
522 :
523 :
524 :
525 :
526 :
527 :
528 :
529 :
530 :
531 :
532 :
533 :
534 :
535 :
536 :
537 :
538 :
539 :
540 :
541 :
542 :
543 :
544 :
545 :
546 :
547 :
548 :
549 :
550 :
551 :
552 :
553 :
554 :
555 :
556 :
557 :
558 :
559 :
560 :
561 :
562 :
563 :
564 :
565 :
566 :
567 :
568 :
569 :
570 :
571 :
572 :
573 :
574 :
575 :
576 :
577 :
578 :
579 :
580 :
581 :
582 :
583 :
584 :
585 :
586 :
587 :
588 :
589 :
590 :
591 :
592 :
593 :
594 :
595 :
596 :
597 :
598 :
599 :
600 :
601 :
602 :
603 :
604 :
605 :
606 :
607 :
608 :
609 :
610 :
611 :
612 :
613 :
614 :
615 :
616 :
617 :
618 :
619 :
620 :
621 :
622 :
623 :
624 :
625 :
626 :
627 :
628 :
629 :
630 :
631 :
632 :
633 :
634 :
635 :
636 :
637 :
638 :
639 :
640 :
641 :
642 :
643 :
644 :
645 :
646 :
647 :
648 :
649 :
650 :
651 :
652 :
653 :
654 :
655 :
656 :
657 :
658 :
659 :
660 :
661 :
662 :
663 :
664 :
665 :
666 :
667 :
668 :
669 :
670 :
671 :
672 :
673 :
674 :
675 :
676 :
677 :
678 :
679 :
680 :
681 :
682 :
683 :
684 :
685 :
686 :
687 :
688 :
689 :
690 :
691 :
692 :
693 :
694 :
695 :
696 :
697 :
698 :
699 :
700 :
701 :
702 :
703 :
704 :
705 :
706 :
707 :
708 :
709 :
710 :
711 :
712 :
713 :
714 :
715 :
716 :
717 :
718 :
719 :
720 :
721 :
722 :
723 :
724 :
725 :
726 :
727 :
728 :
729 :
730 :
731 :
732 :
733 :
734 :
735 :
736 :
737 :
738 :
739 :
740 :
741 :
742 :
743 :
744 :
745 :
746 :
747 :
748 :
749 :
750 :
751 :
752 :
753 :
754 :
755 :
756 :
757 :
758 :
759 :
760 :
761 :
762 :
763 :
764 :
765 :
766 :
767 :
768 :
769 :
770 :
771 :
772 :
773 :
774 :
775 :
776 :
777 :
778 :
779 :
780 :
781 :
782 :
783 :
784 :
785 :
786 :
787 :
788 :
789 :
790 :
791 :
792 :
793 :
794 :
795 :
796 :
797 :
798 :
799 :
800 :
801 :
802 :
803 :
804 :
805 :
806 :
807 :
808 :
809 :
810 :
811 :
812 :
813 :
814 :
815 :
816 :
817 :
818 :
819 :
820 :
821 :
822 :
823 :
824 :
825 :
826 :
827 :
828 :
829 :
830 :
831 :
832 :
833 :
834 :
835 :
836 :
837 :
838 :
839 :
840 :
841 :
842 :
843 :
844 :
845 :
846 :
847 :
848 :
849 :
850 :
851 :
852 :
853 :
854 :
855 :
856 :
857 :
858 :
859 :
860 :
861 :
862 :
863 :
864 :
865 :
866 :
867 :
868 :
869 :
870 :
871 :
872 :
873 :
874 :
875 :
876 :
877 :
878 :
879 :
880 :
881 :
882 :
883 :
884 :
885 :
886 :
887 :
888 :
889 :
890 :
891 :
892 :
893 :
894 :
895 :
896 :
897 :
898 :
899 :
900 :
901 :
902 :
903 :
904 :
905 :
906 :
907 :
908 :
909 :
910 :
911 :
912 :
913 :
914 :
915 :
916 :
917 :
918 :
919 :
920 :
921 :
922 :
923 :
924 :
925 :
926 :
927 :
928 :
929 :
930 :
931 :
932 :
933 :
934 :
935 :
936 :
937 :
938 :
939 :
940 :
941 :
942 :
943 :
944 :
945 :
946 :
947 :
948 :
949 :
950 :
951 :
952 :
953 :
954 :
955 :
956 :
957 :
958 :
959 :
960 :
961 :
962 :
963 :
964 :
965 :
966 :
967 :
968 :
969 :
970 :
971 :
972 :
973 :
974 :
975 :
976 :
977 :
978 :
979 :
980 :
981 :
982 :
983 :
984 :
985 :
986 :
987 :
988 :
989 :
990 :
991 :
992 :
993 :
994 :
995 :
996 :
997 :
998 :
999 :
1000 :
1001 :
1002 :
1003 :
1004 :
1005 :
1006 :
1007 :
1008 :
1009 :
1010 :
1011 :
1012 :
1013 :
1014 :
1015 :
1016 :
1017 :
1018 :
1019 :
1020 :
1021 :
1022 :
1023 :
1024 :
1025 :
1026 :
1027 :
1028 :
1029 :
1030 :
1031 :
1032 :
1033 :
1034 :
1035 :
1036 :
1037 :
1038 :
1039 :
1040 :
1041 :
1042 :
1043 :
1044 :
1045 :
1046 :
1047 :
1048 :
1049 :
1050 :
1051 :
1052 :
1053 :
1054 :
1055 :
1056 :
1057 :
1058 :
1059 :
1060 :
1061 :
1062 :
1063 :
1064 :
1065 :
1066 :
1067 :
1068 :
1069 :
1070 :
1071 :
1072 :
1073 :
1074 :
1075 :
1076 :
1077 :
1078 :
1079 :
1080 :
1081 :
1082 :
1083 :
1084 :
1085 :
1086 :
1087 :
1088 :
1089 :
1090 :
1091 :
1092 :
1093 :
1094 :
1095 :
1096 :
1097 :
1098 :
1099 :
1100 :
1101 :
1102 :
1103 :
1104 :
1105 :
1106 :
1107 :
1108 :
1109 :
1110 :
1111 :
1112 :
1113 :
1114 :
1115 :
1116 :
1117 :
1118 :
1119 :
1120 :
1121 :
1122 :
1123 :
1124 :
1125 :
1126 :
1127 :
1128 :
1129 :
1130 :
1131 :
1132 :
1133 :
1134 :
1135 :
1136 :
1137 :
1138 :
1139 :
1140 :
1141 :
1142 :
1143 :
1144 :
1145 :
1146 :
1147 :
1148 :
1149 :
1150 :
1151 :
1152 :
1153 :
1154 :
1155 :
1156 :
1157 :
1158 :
1159 :
1160 :
1161 :
1162 :
1163 :
1164 :
1165 :
1166 :
1167 :
1168 :
1169 :
1170 :
1171 :
1172 :
1173 :
1174 :
1175 :
1176 :
1177 :
1178 :
1179 :
1180 :
1181 :
1182 :
1183 :
1184 :
1185 :
1186 :
1187 :
1188 :
1189 :
1190 :
1191 :
1192 :
1193 :
1194 :
1195 :
1196 :
1197 :
1198 :
1199 :
1200 :
1201 :
1202 :
1203 :
1204 :
1205 :
1206 :
1207 :
1208 :
1209 :
1210 :
1211 :
1212 :
1213 :
1214 :
1215 :
1216 :
1217 :
1218 :
1219 :
1220 :
1221 :
1222 :
1223 :
1224 :
1225 :
1226 :
1227 :
1228 :
1229 :
1230 :
1231 :
1232 :
1233 :
1234 :
1235 :
1236 :
1237 :
1238 :
1239 :
1240 :
1241 :
1242 :
1243 :
1244 :
1245 :
1246 :
1247 :
1248 :
1249 :
1250 :
1251 :
1252 :
1253 :
1254 :
1255 :
1256 :
1257 :
1258 :
1259 :
1260 :
1261 :
1262 :
1263 :
1264 :
1265 :
1266 :
1267 :
1268 :
1269 :
1270 :
1271 :
1272 :
1273 :
1274 :
1275 :
1276 :
1277 :
1278 :
1279 :
1280 :
1281 :
1282 :
1283 :
1284 :
1285 :
1286 :
1287 :
1288 :
1289 :
1290 :
1291 :
1292 :
1293 :
1294 :
1295 :
1296 :
1297 :
1298 :
1299 :
1300 :
1301 :
1302 :
1303 :
1304 :
1305 :
1306 :
1307 :
1308 :
1309 :
1310 :
1311 :
1312 :
1313 :
1314 :
1315 :
1316 :
1317 :
1318 :
1319 :
1320 :
1321 :
1322 :
1323 :
1324 :
1325 :
1326 :
1327 :
1328 :
1329 :
1330 :
1331 :
1332 :
1333 :
1334 :
1335 :
1336 :
1337 :
1338 :
1339 :
1340 :
1341 :
1342 :
1343 :
1344 :
1345 :
1346 :
1347 :
1348 :
1349 :
1350 :
1351 :
1352 :
1353 :
1354 :
1355 :
1356 :
1357 :
1358 :
1359 :
1360 :
1361 :
1362 :
1363 :
1364 :
1365 :
1366 :
1367 :
1368 :
1369 :
1370 :
1371 :
1372 :
1373 :
1374 :
1375 :
1376 :
1377 :
1378 :
1379 :
1380 :
1381 :
1382 :
1383 :
1384 :
1385 :
1386 :
1387 :
1388 :
1389 :
1390 :
1391 :
1392 :
1393 :
1394 :
1395 :
1396 :
1397 :
1398 :
1399 :
1400 :
1401 :
1402 :
1403 :
1404 :
1405 :
1406 :
1407 :
1408 :
1409 :
1410 :
1411 :
1412 :
1413 :
1414 :
1415 :
1416 :
1417 :
1418 :
1419 :
1420 :
1421 :
1422 :
1423 :
1424 :
1425 :
1426 :
1427 :
1428 :
1429 :
1430 :
1431 :
1432 :
1433 :
1434 :
1435 :
1436 :
1437 :
1438 :
1439 :
1440 :
1441 :
1442 :
1443 :
1444 :
1445 :
1446 :
1447 :
1448 :
1449 :
1450 :
1451 :
1452 :
1453 :
1454 :
1455 :
1456 :
1457 :
1458 :
1459 :
1460 :
1461 :
1462 :
1463 :
1464 :
1465 :
1466 :
1467 :
1468 :
1469 :
1470 :
1471 :
1472 :
1473 :
1474 :
1475 :
1476 :
1477 :
1478 :
1479 :
1480 :
1481 :
1482 :
1483 :
1484 :
1485 :
1486 :
1487 :
1488 :
1489 :
1490 :
1491 :
1492 :
1493 :
1494 :
1495 :
1496 :
1497 :
1498 :
1499 :
1500 :
1501 :
1502 :
1503 :
1504 :
1505 :
1506 :
1507 :
1508 :
1509 :
1510 :
1511 :
1512 :
1513 :
1514 :
1515 :
1516 :
1517 :
1518 :
1519 :
1520 :
1521 :
1522 :
1523 :
1524 :
1525 :
1526 :
1527 :
1528 :
1529 :
1530 :
1531 :
1532 :
1533 :
1534 :
1535 :
1536 :
1537 :
1538 :
1539 :
1540 :
1541 :
1542 :
1543 :
1544 :
1545 :
1546 :
1547 :
1548 :
1549 :
1550 :
1551 :
1552 :
1553 :
1554 :
1555 :
1556 :
1557 :
1558 :
1559 :
1560 :
1561 :
1562 :
1563 :
1564 :
1565 :
1566 :
1567 :
1568 :
1569 :
1570 :
1571 :
1572 :
1573 :
1574 :
1575 :
1576 :
1577 :
1578 :
1579 :
1580 :
1581 :
1582 :
1583 :
1584 :
1585 :
1586 :
1587 :
1588 :
1589 :
1590 :
1591 :
1592 :
1593 :
1594 :
1595 :
1596 :
1597 :
1598 :
1599 :
1600 :
1601 :
1602 :
1603 :
1604 :
1605 :
1606 :
1607 :
1608 :
1609 :
1610 :
1611 :
1612 :
1613 :
1614 :
1615 :
1616 :
1617 :
1618 :
1619 :
1620 :
1621 :
1622 :
1623 :
1624 :
1625 :
1626 :
1627 :
1628 :
1629 :
1630 :
1631 :
1632 :
1633 :
1634 :
1635 :
1636 :
1637 :
1638 :
1639 :
1640 :
1641 :
1642 :
1643 :
1644 :
1645 :
1646 :
1647 :
1648 :
1649 :
1650 :
1651 :
1652 :
1653 :
1654 :
1655 :
1656 :
1657 :
1658 :
1659 :
1660 :
1661 :
1662 :
1663 :
1664 :
1665 :
1666 :
1667 :
1668 :
1669 :
1670 :
1671 :
1672 :
1673 :
1674 :
1675 :
1676 :
1677 :
1678 :
1679 :
1680 :
1681 :
1682 :
1683 :
1684 :
1685 :
1686 :
1687 :
1688 :
1689 :
1690 :
1691 :
1692 :
1693 :
1694 :
1695 :
1696 :
1697 :
1698 :
1699 :
1700 :
1701 :
1702 :
1703 :
1704 :
1705 :
1706 :
1707 :
1708 :
1709 :
1710 :
1711 :
1712 :
1713 :
1714 :
1715 :
1716 :
1717 :
1718 :
1719 :
1720 :
1721 :
1722 :
1723 :
1724 :
1725 :
1726 :
1727 :
1728 :
1729 :
1730 :
1731 :
1732 :
1733 :
1734 :
1735 :
1736 :
1737 :
1738 :
1739 :
1740 :
1741 :
1742 :
1743 :
1744 :
1745 :
1746 :
1747 :
1748 :
1749 :
1750 :
1751 :
1752 :
1753 :
1754 :
1755 :
1756 :
1757 :
1758 :
1759 :
1760 :
1761 :
1762 :
1763 :
1764 :
1765 :
1766 :
1767 :
1768 :
1769 :
1770 :
1771 :
1772 :
1773 :
1774 :
1775 :
1776 :
1777 :
1778 :
1779 :
1780 :
1781 :
1782 :
1783 :
1784 :
1785 :
1786 :
1787 :
1788 :
1789 :
1790 :
1791 :
1792 :
1793 :
1794 :
1795 :
1796 :
1797 :
1798 :
1799 :
1800 :
1801 :
1802 :
1803 :
1804 :
1805 :
1806 :
1807 :
1808 :
1809 :
1810 :
1811 :
1812 :
1813 :
1814 :
1815 :
1816 :
1817 :
1818 :
1819 :
1820 :
1821 :
1822 :
1823 :
1824 :
1825 :
1826 :
1827 :
1828 :
1829 :
1830 :
1831 :
1832 :
1833 :
1834 :
1835 :
1836 :
1837 :
1838 :
1839 :
1840 :
1841 :
1842 :
1843 :
1844 :
1845 :
1846 :
1847 :
1848 :
1849 :
1850 :
1851 :
1852 :
1853 :
1854 :
1855 :
1856 :
1857 :
1858 :
1859 :
1860 :
1861 :
1862 :
1863 :
1864 :
1865 :
1866 :
1867 :
1868 :
1869 :
1870 :
1871 :
1872 :
1873 :
1874 :
1875 :
1876 :
1877 :
1878 :
1879 :
1880 :
1881 :
1882 :
1883 :
1884 :
1885 :
1886 :
1887 :
1888 :
1889 :
1890 :
1891 :
1892 :
1893 :
1894 :
1895 :
1896 :
1897 :
1898 :
1899 :
1900 :
1901 :
1902 :
1903 :
1904 :
1905 :
1906 :
1907 :
1908 :
1909 :
1910 :
1911 :
1912 :
1913 :
1914 :
1915 :
1916 :
1917 :
1918 :
1919 :
1920 :
1921 :
1922 :
1923 :
1924 :
1925 :
1926 :
1927 :
1928 :
1929 :
1930 :
1931 :
1932 :
1933 :
1934 :
1935 :
1936 :
1937 :
1938 :
1939 :
1940 :
1941 :
1942 :
1943 :
1944 :
1945 :
1946 :
1947 :
1948 :
1949 :
1950 :
1951 :
1952 :
1953 :
1954 :
1955 :
1956 :
1957 :
1958 :
1959 :
1960 :
1961 :
1962 :
1963 :
1964 :
1965 :
1966 :
1967 :
1968 :
1969 :
1970 :
1971 :
1972 :
1973 :
1974 :
1975 :
1976 :
1977 :
1978 :
1979 :
1980 :
1981 :
1982 :
1983 :
1984 :
1985 :
1986 :
1987 :
1988 :
1989 :
1990 :
1991 :
1992 :
1993 :
1994 :
1995 :
1996 :
1997 :
1998 :
1999 :
2000 :
2001 :
2002 :
2003 :
2004 :
2005 :
2006 :
2007 :
2008 :
2009 :
2010 :
2011 :
2012 :
2013 :
2014 :
2015 :
2016 :
2017 :
2018 :
2019 :
2020 :
2021 :
2022 :
2023 :
2024 :
2025 :
2026 :
2027 :
2028 :
2029 :
2030 :
2031 :
2032 :
2033 :
2034 :
2035 :
2036 :
2037 :
2038 :
2039 :
2040 :
2041 :
2042 :
2043 :
2044 :
2045 :
2046 :
2047 :
2048 :
2049 :
2050 :
2051 :
2052 :
2053 :
2054 :
2055 :
2056 :
2057 :
2058 :
2059 :
2060 :
2061 :
2062 :
2063 :
2064 :
2065 :
2066 :
2067 :
2068 :
2069 :
2070 :
2071 :
2072 :
2073 :
2074 :
2075 :
2076 :
2077 :
2078 :
2079 :
2080 :
2081 :
2082 :
2083 :
2084 :
2085 :
2086 :
2087 :
2088 :
2089 :
2090 :
2091 :
2092 :
2093 :
2094 :
2095 :
2096 :
2097 :
2098 :
2099 :
2100 :
2101 :
2102 :
2103 :
2104 :
2105 :
2106 :
2107 :
2108 :
2109 :
2110 :
2111 :
2112 :
2113 :
2114 :
2115 :
2116 :
2117 :
2118 :
2119 :
2120 :
2121 :
2122 :
2123 :
2124 :
2125 :
2126 :
2127 :
2128 :
2129 :
2130 :
2131 :
2132 :
2133 :
2134 :
2135 :
2136 :
2137 :
2138 :
2139 :
2140 :
2141 :
2142 :
2143 :
2144 :
2145 :
2146 :
2147 :
2148 :
2149 :
2150 :
2151 :
2152 :
2153 :
2154 :
2155 :
2156 :
2157 :
2158 :
2159 :
2160 :
2161 :
2162 :
2163 :
2164 :
2165 :
2166 :
2167 :
2168 :
2169 :
2170 :
2171 :
2172 :
2173 :
2174 :
2175 :
2176 :
2177 :
2178 :
2179 :
2180 :
2181 :
2182 :
2183 :
2184 :
2185 :
2186 :
2187 :
2188 :
2189 :
2190 :
2191 :
2192 :
2193 :
2194 :
2195 :
2196 :
2197 :
2198 :
2199 :
2200 :
2201 :
2202 :
2203 :
2204 :
2205 :
2206 :
2207 :
2208 :
2209 :
2210 :
2211 :
2212 :
2213 :
2214 :
2215 :
2216 :
2217 :
2218 :
2219 :
2220 :
2221 :
2222 :
2223 :
2224 :
2225 :
2226 :
2227 :
2228 :
2229 :
2230 :
2231 :
2232 :
2233 :
2234 :
2235 :
2236 :
2237 :
2238 :
2239 :
2240 :
2241 :
2242 :
2243 :
2244 :
2245 :
2246 :
2247 :
2248 :
2249 :
2250 :
2251 :
2252 :
2253 :
2254 :
2255 :
2256 :
2257 :
2258 :
2259 :
2260 :
2261 :
2262 :
2263 :
2264 :
2265 :
2266 :
2267 :
2268 :
2269 :
2270 :
2271 :
2272 :
2273 :
2274 :
2275 :
2276 :
2277 :
2278 :
2279 :
2280 :
2281 :
2282 :
2283 :
2284 :
2285 :
2286 :
2287 :
2288 :
2289 :
2290 :
2291 :
2292 :
2293 :
2294 :
2295 :
2296 :
2297 :
2298 :
2299 :
2300 :
2301 :
2302 :
2303 :
2304 :
2305 :
2306 :
2307 :
2308 :
2309 :
2310 :
2311 :
2312 :
2313 :
2314 :
2315 :
2316 :
2317 :
2318 :
2319 :
2320 :
2321 :
2322 :
2323 :
2324 :
2325 :
2326 :
2327 :
2328 :
2329 :
2330 :
2331 :
2332 :
2333 :
2334 :
2335 :
2336 :
2337 :
2338 :
2339 :
2340 :
2341 :
2342 :
2343 :
2344 :
2345 :
2346 :
2347 :
2348 :
2349 :
2350 :
2351 :
2352 :
2353 :
2354 :
2355 :
2356 :
2357 :
2358 :
2359 :
2360 :
2361 :
2362 :
2363 :
2364 :
2365 :
2366 :
2367 :
2368 :
2369 :
2370 :
2371 :
2372 :
2373 :
2374 :
2375 :
2376 :
2377 :
2378 :
2379 :
2380 :
2381 :
2382 :
2383 :
2384 :
2385 :
2386 :
2387 :
2388 :
2389 :
2390 :
2391 :
2392 :
2393 :
2394 :
2395 :
2396 :
2397 :
2398 :
2399 :
2400 :
2401 :
2402 :
2403 :
2404 :
2405 :
2406 :
2407 :
2408 :
2409 :
2410 :
2411 :
2412 :
2413 :
2414 :
2415 :
2416 :
2417 :
2418 :
2419 :
2420 :
2421 :
2422 :
2423 :
2424 :
2425 :
2426 :
2427 :
2428 :
2429 :
2430 :
2431 :
2432 :
2433 :
2434 :
2435 :
2436 :
2437 :
2438 :
2439 :
2440 :
2441 :
2442 :
2443 :
2444 :
2445 :
2446 :
2447 :
2448 :
2449 :
2450 :
2451 :
2452 :
2453 :
2454 :
2455 :
2456 :
2457 :
2458 :
2459 :
2460 :
2461 :
2462 :
2463 :
2464 :
2465 :
2466 :
2467 :
2468 :
2469 :
2470 :
2471 :
2472 :
2473 :
2474 :
2475 :
2476 :
2477 :
2478 :
2479 :
2480 :
2481 :
2482 :
2483 :
2484 :
2485 :
2486 :
2487 :
2488 :
2489 :
2490 :
2491 :
2492 :
2493 :
2494 :
2495 :
2496 :
2497 :
2498 :
2499 :
2500 :
2501 :
2502 :
2503 :
2504 :
2505 :
2506 :
2507 :
2508 :
2509 :
2510 :
2511 :
2512 :
2513 :
2514 :
2515 :
2516 :
2517 :
2518 :
2519 :
2520 :
2521 :
2522 :
2523 :
2524 :
2525 :
2526 :
2527 :
2528 :
2529 :
2530 :
2531 :
2532 :
2533 :
2534 :
2535 :
2536 :
2537 :
2538 :
2539 :
2540 :
2541 :
2542 :
2543 :
2544 :
2545 :
2546 :
2547 :
2548 :
2549 :
2550 :
2551 :
2552 :
2553 :
2554 :
2555 :
2556 :
2557 :
2558 :
2559 :
2560 :
2561 :
2562 :
2563 :
2564 :
2565 :
2566 :
2567 :
2568 :
2569 :
2570 :
2571 :
2572 :
2573 :
2574 :
2575 :
2576 :
2577 :
2578 :
2579 :
2580 :
2581 :
2582 :
2583 :
2584 :
2585 :
2586 :
2587 :
2588 :
2589 :
2590 :
2591 :
2592 :
2593 :
2594 :
2595 :
2596 :
2597 :
2598 :
2599 :
2600 :
2601 :
2602 :
2603 :
2604 :
2605 :
2606 :
2607 :
2608 :
2609 :
2610 :
2611 :
2612 :
2613 :
2614 :
2615 :
2616 :
2617 :
2618 :
2619 :
2620 :
2621 :
2622 :
2623 :
2624 :
2625 :
2626 :
2627 :
2628 :
2629 :
2630 :
2631 :
2632 :
2633 :
2634 :
2635 :
2636 :
2637 :
2638 :
2639 :
2640 :
2641 :
2642 :
2643 :
2644 :
2645 :
2646 :
2647 :
2648 :
2649 :
2650 :
2651 :
2652 :
2653 :
2654 :
2655 :
2656 :
2657 :
2658 :
2659 :
2660 :
2661 :
2662 :
2663 :
2664 :
2665 :
2666 :
2667 :
2668 :
2669 :
2670 :
2671 :
2672 :
2673 :
2674 :
2675 :
2676 :
2677 :
2678 :
2679 :
2680 :
2681 :
2682 :
2683 :
2684 :
2685 :
2686 :
2687 :
2688 :
2689 :
2690 :
2691 :
2692 :
2693 :
2694 :
2695 :
2696 :
2697 :
2698 :
2699 :
2700 :
2701 :
2702 :
2703 :
2704 :
2705 :
2706 :
2707 :
2708 :
2709 :
2710 :
2711 :
2712 :
2713 :
2714 :
2715 :
2716 :
2717 :
2718 :
2719 :
2720 :
2721 :
2722 :
2723 :
2724 :
2725 :
2726 :
2727 :
2728 :
2729 :
2730 :
2731 :
2732 :
2733 :
2734 :
2735 :
2736 :
2737 :
2738 :
2739 :
2740 :
2741 :
2742 :
2743 :
2744 :
2745 :
2746 :
2747 :
2748 :
2749 :
2750 :
2751 :
2752 :
2753 :
2754 :
2755 :
2756 :
2757 :
2758 :
2759 :
2760 :
2761 :
2762 :
2763 :
2764 :
2765 :
2766 :
2767 :
2768 :
2769 :
2770 :
2771 :
2772 :
2773 :
2774 :
2775 :
2776 :
2777 :
2778 :
2779 :
2780 :
2781 :
2782 :
2783 :
2784 :
2785 :
2786 :
2787 :
2788 :
2789 :
2790 :
2791 :
2792 :
2793 :
2794 :
2795 :
2796 :
2797 :
2798 :
2799 :
2800 :
2801 :
2802 :
2803 :
2804 :
2805 :
2806 :
2807 :
2808 :
2809 :
2810 :
2811 :
2812 :
2813 :
2814 :
2815 :
2816 :
2817 :
2818 :
2819 :
2820 :
2821 :
2822 :
2823 :
2824 :
2825 :
2826 :
2827 :
2828 :
2829 :
2830 :
2831 :
2832 :
2833 :
2834 :
2835 :
2836 :
2837 :
2838 :
2839 :
2840 :
2841 :
2842 :
2843 :
2844 :
2845 :
2846 :
2847 :
2848 :
2849 :
2850 :
2851 :
2852 :
2853 :
2854 :
2855 :
2856 :
2857 :
2858 :
2859 :
2860 :
2861 :
2862 :
2863 :
2864 :
2865 :
2866 :
2867 :
2868 :
2869 :
2870 :
2871 :
2872 :
2873 :
2874 :
2875 :
2876 :
2877 :
2878 :
2879 :
2880 :
2881 :
2882 :
2883 :
2884 :
2885 :
2886 :
2887 :
2888 :
2889 :
2890 :
2891 :
2892 :
2893 :
2894 :
2895 :
2896 :
2897 :
2898 :
2899 :
2900 :
2901 :
2902 :
2903 :
2904 :
2905 :
2906 :
2907 :
2908 :
2909 :
2910 :
2911 :
2912 :
2913 :
2914 :
2915 :
2916 :
2917 :
2918 :
2919 :
2920 :
2921 :
2922 :
2923 :
2924 :
2925 :
2926 :
2927 :
2928 :
2929 :
2930 :
2931 :
2932 :
2933 :
2934 :
2935 :
2936 :
2937 :
2938 :
2939 :
2940 :
2941 :
2942 :
2943 :
2944 :
2945 :
2946 :
2947 :
2948 :
2949 :
2950 :
2951 :
2952 :
2953 :
2954 :
2955 :
2956 :
2957 :
2958 :
2959 :
2960 :
2961 :
2962 :
2963 :
2964 :
2965 :
2966 :
2967 :
2968 :
2969 :
2970 :
2971 :
2972 :
2973 :
2974 :
2975 :
2976 :
2977 :
2978 :
2979 :
2980 :
2981 :
2982 :
2983 :
2984 :
2985 :
2986 :
2987 :
2988 :
2989 :
2990 :
2991 :
2992 :
2993 :
2994 :
2995 :
2996 :
2997 :
2998 :
2999 :
3000 :
3001 :
3002 :
3003 :
3004 :
3005 :
3006 :
3007 :
3008 :
3009 :
3010 :
3011 :
3012 :
3013 :
3014 :
3015 :
3016 :
3017 :
3018 :
3019 :
3020 :
3021 :
3022 :
3023 :
3024 :
3025 :
3026 :
3027 :
3028 :
3029 :
3030 :
3031 :
3032 :
3033 :
3034 :
3035 :
3036 :
3037 :
3038 :
3039 :
3040 :
3041 :
3042 :
3043 :
3044 :
3045 :
3046 :
3047 :
3048 :
3049 :
3050 :
3051 :
3052 :
3053 :
3054 :
3055 :
3056 :
3057 :
3058 :
3059 :
3060 :
3061 :
3062 :
3063 :
3064 :
3065 :
3066 :
3067 :
3068 :
3069 :
3070 :
3071 :
3072 :
3073 :
3074 :
3075 :
3076 :
3077 :
3078 :
3079 :
3080 :
3081 :
3082 :
3083 :
3084 :
3085 :
3086 :
3087 :
3088 :
3089 :
3090 :
3091 :
3092 :
3093 :
3094 :
3095 :
3096 :
3097 :
3098 :
3099 :
3100 :
3101 :
3102 :
3103 :
3104 :
3105 :
3106 :
3107 :
3108 :
3109 :
3110 :
3111 :
3112 :
3113 :
3114 :
3115 :
3116 :
3117 :
3118 :
3119 :
3120 :
3121 :
3122 :
3123 :
3124 :
3125 :
3126 :
3127 :
3128 :
3129 :
3130 :
3131 :
3132 :
3133 :
3134 :
3135 :
3136 :
3137 :
3138 :
3139 :
3140 :
3141 :
3142 :
3143 :
3144 :
3145 :
3146 :
3147 :
3148 :
3149 :
3150 :
3151 :
3152 :
3153 :
3154 :
3155 :
3156 :
3157 :
3158 :
3159 :
3160 :
3161 :
3162 :
3163 :
3164 :
3165 :
3166 :
3167 :
3168 :
3169 :
3170 :
3171 :
3172 :
3173 :
3174 :
3175 :
3176 :
3177 :
3178 :
3179 :
3180 :
3181 :
3182 :
3183 :
3184 :
3185 :
3186 :
3187 :
3188 :
3189 :
3190 :
3191 :
3192 :
3193 :
3194 :
3195 :
3196 :
3197 :
3198 :
3199 :
3200 :
3201 :
3202 :
3203 :
3204 :
3205 :
3206 :
3207 :
3208 :
3209 :
3210 :
3211 :
3212 :
3213 :
3214 :
3215 :
3216 :
3217 :
3218 :
3219 :
3220 :
3221 :
3222 :
3223 :
3224 :
3225 :
3226 :
3227 :
3228 :
3229 :
3230 :
3231 :
3232 :
3233 :
3234 :
3235 :
3236 :
3237 :
3238 :
3239 :
3240 :
3241 :
3242 :
3243 :
3244 :
3245 :
3246 :
3247 :
3248 :
3249 :
3250 :
3251 :
3252 :
3253 :
3254 :
3255 :
3256 :
3257 :
3258 :
3259 :
3260 :
3261 :
3262 :
3263 :
3264 :
3265 :
3266 :
3267 :
3268 :
3269 :
3270 :
3271 :
3272 :
3273 :
3274 :
3275 :
3276 :
3277 :
3278 :
3279 :
3280 :
3281 :
3282 :
3283 :
3284 :
3285 :
3286 :
3287 :
3288 :
3289 :
3290 :
3291 :
3292 :
3293 :
3294 :
3295 :
3296 :
3297 :
3298 :
3299 :
3300 :
3301 :
3302 :
3303 :
3304 :
3305 :
3306 :
3307 :
3308 :
3309 :
3310 :
3311 :
3312 :
3313 :
3314 :
3315 :
3316 :
3317 :
3318 :
3319 :
3320 :
3321 :
3322 :
3323 :
3324 :
3325 :
3326 :
3327 :
3328 :
3329 :
3330 :
3331 :
3332 :
3333 :
3334 :
3335 :
3336 :
3337 :
3338 :
3339 :
3340 :
3341 :
3342 :
3343 :
3344 :
3345 :
3346 :
3347 :
3348 :
3349 :
3350 :
3351 :
3352 :
3353 :
3354 :
3355 :
3356 :
3357 :
3358 :
3359 :
3360 :
3361 :
3362 :
3363 :
3364 :
3365 :
3366 :
3367 :
3368 :
3369 :
3370 :
3371 :
3372 :
3373 :
3374 :
3375 :
3376 :
3377 :
3378 :
3379 :
3380 :
3381 :
3382 :
3383 :
3384 :
3385 :
3386 :
3387 :
3388 :
3389 :
3390 :
3391 :
3392 :
3393 :
3394 :
3395 :
3396 :
3397 :
3398 :
3399 :
3400 :
3401 :
3402 :
3403 :
3404 :
3405 :
3406 :
3407 :
3408 :
3409 :
3410 :
3411 :
3412 :
3413 :
3414 :
3415 :
3416 :
3417 :
3418 :
3419 :
3420 :
3421 :
3422 :
3423 :
3424 :
3425 :
3426 :
3427 :
3428 :
3429 :
3430 :
3431 :
3432 :
3433 :
3434 :
3435 :
3436 :
3437 :
3438 :
3439 :
3440 :
3441 :
3442 :
3443 :
3444 :
3445 :
3446 :
3447 :
3448 :
3449 :
3450 :
3451 :
3452 :
3453 :
3454 :
3455 :
3456 :
3457 :
3458 :
3459 :
3460 :
3461 :
3462 :
3463 :
3464 :
3465 :
3466 :
3467 :
3468 :
3469 :
3470 :
3471 :
3472 :
3473 :
3474 :
3475 :
3476 :
3477 :
3478 :
3479 :
3480 :
3481 :
3482 :
3483 :
3484 :
3485 :
3486 :
3487 :
3488 :
3489 :
3490 :
3491 :
3492 :
3493 :
3494 :
3495 :
3496 :
3497 :
3498 :
3499 :
3500 :
3501 :
3502 :
3503 :
3504 :
3505 :
3506 :
3507 :
3508 :
3509 :
3510 :
3511 :
3512 :
3513 :
3514 :
3515 :
3516 :
3517 :
3518 :
3519 :
3520 :
3521 :
3522 :
3523 :
3524 :
3525 :
3526 :
3527 :
3528 :
3529 :
3530 :
3531 :
3532 :
3533 :
3534 :
3535 :
3536 :
3537 :
3538 :
3539 :
3540 :
3541 :
3542 :
3543 :
3544 :
3545 :
3546 :
3547 :
3548 :
3549 :
3550 :
3551 :
3552 :
3553 :
3554 :
3555 :
3556 :
3557 :
3558 :
3559 :
3560 :
3561 :
3562 :
3563 :
3564 :
3565 :
3566 :
3567 :
3568 :
3569 :
3570 :
3571 :
3572 :
3573 :
3574 :
3575 :
3576 :
3577 :
3578 :
3579 :
3580 :
3581 :
3582 :
3583 :
3584 :
3585 :
3586 :
3587 :
3588 :
3589 :
3590 :
3591 :
3592 :
3593 :
3594 :
3595 :
3596 :
3597 :
3598 :
3599 :
3600 :
3601 :
3602 :
3603 :
3604 :
3605 :
3606 :
3607 :
3608 :
3609 :
3610 :
3611 :
3612 :
3613 :
3614 :
3615 :
3616 :
3617 :
3618 :
3619 :
3620 :
3621 :
3622 :
3623 :
3624 :
3625 :
3626 :
3627 :
3628 :
3629 :
3630 :
3631 :
3632 :
3633 :
3634 :
3635 :
3636 :
3637 :
3638 :
3639 :
3640 :
3641 :
3642 :
3643 :
3644 :
3645 :
3646 :
3647 :
3648 :
3649 :
3650 :
3651 :
3652 :
3653 :
3654 :
3655 :
3656 :
3657 :
3658 :
3659 :
3660 :
3661 :
3662 :
3663 :
3664 :
3665 :
3666 :
3667 :
3668 :
3669 :
3670 :
3671 :
3672 :
3673 :
3674 :
3675 :
3676 :
3677 :
3678 :
3679 :
3680 :
3681 :
3682 :
3683 :
3684 :
3685 :
3686 :
3687 :
3688 :
3689 :
3690 :
3691 :
3692 :
3693 :
3694 :
3695 :
3696 :
3697 :
3698 :
3699 :
3700 :
3701 :
3702 :
3703 :
3704 :
3705 :
3706 :
3707 :
3708 :
3709 :
3710 :
3711 :
3712 :
3713 :
3714 :
3715 :
3716 :
3717 :
3718 :
3719 :
3720 :
3721 :
3722 :
3723 :
3724 :
3725 :
3726 :
3727 :
3728 :
3729 :
3730 :
3731 :
3732 :
3733 :
3734 :
3735 :
3736 :
3737 :
3738 :
3739 :
3740 :
3741 :
3742 :
3743 :
3744 :
3745 :
3746 :
3747 :
3748 :
3749 :
3750 :
3751 :
3752 :
3753 :
3754 :
3755 :
3756 :
3757 :
3758 :
3759 :
3760 :
3761 :
3762 :
3763 :
3764 :
3765 :
3766 :
3767 :
3768 :
3769 :
3770 :
3771 :
3772 :
3773 :
3774 :
3775 :
3776 :
3777 :
3778 :
3779 :
3780 :
3781 :
3782 :
3783 :
3784 :
3785 :
3786 :
3787 :
3788 :
3789 :
3790 :
3791 :
3792 :
3793 :
3794 :
3795 :
3796 :
3797 :
3798 :
3799 :
3800 :
3801 :
3802 :
3803 :
3804 :
3805 :
3806 :
3807 :
3808 :
3809 :
3810 :
3811 :
3812 :
3813 :
3814 :
3815 :
3816 :
3817 :
3818 :
3819 :
3820 :
3821 :
3822 :
3823 :
3824 :
3825 :
3826 :
3827 :
3828 :
3829 :
3830 :
3831 :
3832 :
3833 :
3834 :
3835 :
3836 :
3837 :
3838 :
3839 :
3840 :
3841 :
3842 :
3843 :
3844 :
3845 :
3846 :
3847 :
3848 :
3849 :
3850 :
|
' #############################################################################
' #############################################################################
'
' Deutsch:
' =========
' Dieser Quellcode ist von Folke Rinneberg
' Webseite: http://www.Rinneberg.de/programming/gfa.htm
' E-Mail: Folke_R@gmx.de
'
' Du kannst diesen Quellcode frei nutzen, Veraendern und Erweitern.
' Es waehre nett, wenn du mir mitteilen wuerdest, wenn du diesen Quellcode
' benutzt/veraenderst oder erweiterst. Verbesserungen/Erweiterung wuerde
' ich vielleicht gerne uebernehmen, Nutzung wuerde ich vielleicht gerne an
' dieser Stelle verlinken.
'
' Die Softwarequalitaet ist vermutlich nicht besonders hoch, da ich noch
' jung und unerfahren war, als ich ihn schrieb. Eine UEberarbeitung ist
' nicht geplant.
'
'
' English:
' =========
' This source code was written by Folke Rinneberg
' Web Site: http://www.Rinneberg.de/programming/gfa.htm#english
' e-mail: Folke_R@gmx.de
'
' You are free to use, modify and extend this source code.
' It would be nice, if you contact me (e.g. by e-mail) when you
' use/modify or extend this source code. Perhaps I would
' put Improvements or extensions to this web site.
' Usage of this source code may be linked here.
'
' The quality of this source code may be quite low, because I was young and
' had few experiences with programming when I wrote this source code.
' I have no plans to improve this source code by myself.
'
' #############################################################################
' #############################################################################
'
'
$u+
$i+
$p<
$s&
$e$
$b+
$s>
$n-
$%3
$*&
Graphmode 1 !Grafikmodus=Repleace
Randomize Timer !Zufallsgenerator mit Timer
Boundary 0 !Pboxen ohne Rand (Schneller)
Defwrd "a-z" !Alle Vareabeln sind anfangs Word-Voreabeln
Deflist 3 !Spezielle Listart
Deffill 1,1 !F"+Chr$(129)+"llmuster=schwarz
Pbox 0,0,639,399 !Bildschirm=schwarz
@Dims
@Prufen
Vsync
Bmove Scr1%,Scr2%,32000
Void Xbios(5,L:Scr1%,L:Scr2%,-1)
@Werte
@Werte2
@Anfangs
@Vorspann
@Level
@Anf_b_aufbau
@Main
Procedure Main
' Diese Procedure ist die hauptprocedur.Von hier aus werden die anderen
' Proceduren direkt oder indirekt angesprungen
Put 0,0,Hil$ !Anzeigebalken Putten
Bmove Scr1%,Scr2%,3200 !2.Screen auf den Anzeigescreen kopieren(Anzeigeleiste)
Get A&,Y&,A&+39,Y&+63,Back$ !Hintergrund der Frucht in back$ retten
Do !Unendlichschleifenbeginn
@Monster
If A&>400 !Wenn die Frucht zu weit rechts ist ,dann scrollen
@Hinter
Endif
If Bew&=10 !Figur bewegt sich nicht(man steht)!
Ap&=1 !letzte Richtung der Frucht ermitteln
If Ri&=4
Ap&=4
Endif
Put A&,Y&,Back$ !Hintergrund der Frucht putten
Put A&,Y&,S$(Ap&,Zu&+Skeletti&),4 !ausmaskiren
Put A&,Y&,Fig$(Ap&,Zu&+Skeletti&),6 !Frucht einsetzen
Rc_copy Scr1%,A&,Y&,40,63 To Scr2%,A&,Y& !Bildausschnitt auf den anzeigescreen kopieren
Put A&,Y&,Back$ !Hintergrund der Frucht putten
Endif
@Fall
@Stones
@Abfrage
If Inp(-2) !Wenn eine Taste gedr"+Chr$(129)+"ckt wird, dann
@Keyselect !kontroliere welchen.
Lpoke Xbios(14,1)+6,0
Endif
Loop !Ende der Unendlichschleife
Return
Procedure Vsp
' Diese Procedure ist f"+Chr$(129)+"r den Sprung (nach oben)zust"+Chr$(132)+"ndig
If Dielf&<>7 !Wenn man springen kann
If Hbew&=10 !Wenn man aus dem stand abspringt
If Dielf&=0 !Wenn man auf keinem Magneten steht
Hdauer|=16 !,dann darf man 16 Einheiten springen
Else !Wenn man auf einem magneten steht
Hdauer|=6 !,dann darf man 6 Einheiten springen
Endif
Else !Wenn man aus der Bewegung Springt
If Dielf&=0 !Wenn man auf keinem Magnetem steht
Hdauer|=21 !,dann darf man 21 Einheiten springen
Else !Wenn man auf einem Magneten steht
Hdauer|=11 !,dann darf man 11 Einheiten springen
Endif
Endif
Else !Wenn man nicht springen darf,dann goto Nojump
Goto Nojump
Endif
Dauer|=0 !bisherige Sprungdauer=0
If A& Mod 40=0 !Wenn an in der Mitte eines Steines steht
Select C|(Cx&-15+(A&-1)/40+1,Y&/40+2)
Case 13 To 14,57 !Drehsteine beim Absprung um eine Sequenz erh"+Chr$(148)+"hen
C|(Cx&-15+(A&-1)/40+1,Y&/40+2)=C|(Cx&-15+(A&-1)/40+1,Y&/40+2)+1
Put A&,Y&+63,B$(C|(Cx&-15+(A&-1)/40+1,Y&/40+2)) !Putten
Rc_copy Scr1%,A&,Y&+63,40,40 To Scr2%,A&,Y&+63 !R"+Chr$(129)+"ber kopieren
Case 59,15 !Drehsteine beim absprung von der letzten auf die erste Sequenz
C|(Cx&-15+(A&-1)/40+1,Y&/40+2)=C|(Cx&-15+(A&-1)/40+1,Y&/40+2)-3
Put A&,Y&+63,B$(C|(Cx&-15+(A&-1)/40+1,Y&/40+2)) !Putten
Rc_copy Scr1%,A&,Y&+63,40,40 To Scr2%,A&,Y&+63 !R"+Chr$(129)+"ber kopieren
Endselect
Else !Wenn man nicht in der mitte eines Steines steht
' Man steht also auf zwei Steinen
Select C|(Cx&-15+(A&+1)/40,Y&/40+2) !linker Stein selectieren
Case 13 To 14,57 !Beim Absprung die Drehsteine um eine Sequenz erh"+Chr$(148)+"hen
C|(Cx&-15+(A&+1)/40,Y&/40+2)=C|(Cx&-15+(A&+1)/40,Y&/40+2)+1
Hila&=(A&+1)/40 !zur Verk"+Chr$(129)+"rzung der n"+Chr$(132)+"chsten Zeilen
Hily&=Y&/40+2 !zur Verk"+Chr$(129)+"rzung der n"+Chr$(132)+"chsten Zeilen
Put Hila&*40,Hily&*40,B$(C|(Cx&-15+(A&+1)/40,Y&/40+2)) !putten
Rc_copy Scr1%,Hila&*40,Hily&*40,40,40 To Scr2%,Hila&*40,Hily&*40 !R"+Chr$(129)+"ber kopieren
Case 15,59 !Beim Absprung von der letzten Sequenz zur ersten Sequenz ders Drehsteines
C|(Cx&-15+(A&+1)/40,Y&/40+2)=C|(Cx&-15+(A&+1)/40,Y&/40+2)-3
Hila&=(A&+1)/40 !zur Verk"+Chr$(129)+"rzung der n"+Chr$(132)+"chsten Zeilen
Hily&=Y&/40+2 !zur Verk"+Chr$(129)+"rzung der n"+Chr$(132)+"chsten Zeilen
Put Hila&*40,Hily&*40,B$(C|(Cx&-15+(A&+1)/40,Y&/40+2)) !putten
Rc_copy Scr1%,Hila&*40,Hily&*40,40,40 To Scr2%,Hila&*40,Hily&*40 !R"+Chr$(129)+"ber kopieren
Endselect
Select C|(Cx&-15+(A&-1)/40+1,Y&/40+2) !rechter Stein selectieren
Case 13 To 14,57 !Beim Absprung die Drehsteine um eine Sequenz erh"+Chr$(148)+"hen
C|(Cx&-15+(A&-1)/40+1,Y&/40+2)=C|(Cx&-15+(A&-1)/40+1,Y&/40+2)+1
Hila&=(A&-1)/40+1 !zur Verk"+Chr$(129)+"rzung der n"+Chr$(132)+"chsten Zeilen
Hily&=Y&/40+2 !zur Verk"+Chr$(129)+"rzung der n"+Chr$(132)+"chsten Zeilen
Put Hila&*40,Hily&*40,B$(C|(Cx&-15+(A&-1)/40+1,Y&/40+2))
Rc_copy Scr1%,Hila&*40,Hily&*40,40,40 To Scr2%,Hila&*40,Hily&*40
Case 15,59 !Beim Absprung von der letzten Sequenz zur ersten Sequenz ders Drehsteines
C|(Cx&-15+(A&-1)/40+1,Y&/40+2)=C|(Cx&-15+(A&-1)/40+1,Y&/40+2)-3
Hila&=(A&-1)/40+1 !zur Verk"+Chr$(129)+"rzung der n"+Chr$(132)+"chsten Zeilen
Hily&=Y&/40+2 !zur Verk"+Chr$(129)+"rzung der n"+Chr$(132)+"chsten Zeilen
Put Hila&*40,Hily&*40,B$(C|(Cx&-15+(A&-1)/40+1,Y&/40+2)) !putten
Rc_copy Scr1%,Hila&*40,Hily&*40,40,40 To Scr2%,Hila&*40,Hily&*40 !r"+Chr$(129)+"ber kopieren
Endselect
Endif
Repeat
@Monster
Spieler2|=Stick(1) !Spieler2|=Joy-Stick-Wert
Add Dauer|,1 !Erh"+Chr$(148)+"hung der Dauer des sprunges
Select Spieler2| !Auswertung des Vom Joy_Stick gelieferten Wertes
Case 9 !Rechts-Hoch
Endf&=8 !Die X-Koordinate wird um 8 erh"+Chr$(148)+"ht werden
Ap&=1 !Zu puttende Frucht-Richtung "+Chr$(132)+"ndern
Ri&=3
Case 5 !Links-Hoch
Endf&=-8 !Die x-Koordinate wird um 8 gesenkt werden
Ap&=4 !Zu puttende Frucht-Richtung "+Chr$(132)+"ndern
Ri&=4
Case 1 !Senkrecht-Hoch
Ap&=1
If Ri&=4
Ap&=4
Endif
Endf&=0 !Die X-Koordinate wird gleich bleiben
Endselect
Ends|=8 !Die Y-koordinate wird um 8 gesenkt werden
Hhs&=0
If Y&>7 !Wenn die Frucht nicht oben aus dem Bildschirm gesprungen ist
Put A&,Y&,Back$ !,dann putte den Hinrtergrund
Get A&,Y&,A&+39,Y&+62,Back$ !Gette den Hintergrund
Put A&,Y&,S$(Ap&,Zu&+Skeletti&),4 !Aus dem Hintergrund die Frucht ausmaskiren
Put A&,Y&,Fig$(Ap&,Zu&+Skeletti&),6 !Die Frucht einsetzen
If A&>1 !Wenn die Frucht nicht am linken Blidschirmrand setht
Rc_copy Scr1%,A&-8,Y&,56,72 To Scr2%,A&-8,Y&!Kopiere sie R"+Chr$(129)+"ber
Else !Andenfalls
Rc_copy Scr1%,A&,Y&,48,72 To Scr2%,A&,Y& !Kopiere nicht ganz so viel r"+Chr$(129)+"ber
Endif
Put A&,Y&,Back$ !Hintergrund Putten
Ahvsp&=A& !X-Wert in ahvsp$ merken
Yhvsp&=Y& !Y-Wert in yhvsp$ merken
Endif
If Y&<0
Rc_copy Scr1%,Ahvsp&,Yhvsp&,40,72 To Scr2%,Ahvsp&,Yhvsp&
Endif
If Y&>7 !Wenn die Frucht den oberen Bildschirmrand nicht verlassen hat
If (Y&-14) Mod 40=<3 !Wenn die Frucht den unteren Bildschirmrand nicht verlassen hat
If A& Mod 40=0 ! *1* Wenn die Frucht sich genau senkrecht "+Chr$(129)+"ber ** einem ** Stein befindet
If C|(Cx&-15+(A&-1)/40+1,Y&/40)>0 !Wenn ein Stein auf Kopfh"+Chr$(148)+"he der Frucht ist
If C|(Cx&-15+(A&-1)/40+1,Y&/40)=60 !Wenn der Stein zertr"+Chr$(129)+"mmerbar ist
C|(Cx&-15+(A&-1)/40+1,Y&/40)=0 !,dann l"+Chr$(148)+"sche den Stein aus dem Feld
Deffill 0,0,0 !F"+Chr$(129)+"llmuster=Wei"+Chr$(158)+"
Pbox A&,Int(Y&/40)*40,A&+39,Int(Y&/40)*40+39 !Male an der Stelle des Steines eine wei"+Chr$(158)+"e pbox
Get A&,Y&,A&+39,Y&+62,Back$ !Gette den Hinterhrund der Frucht neu
Rc_copy Scr1%,A&,Int(Y&/40)*40,40,40 To Scr2%,A&,Int(Y&/40)*40 !Kopiere den wei"+Chr$(158)+"en Kasten r"+Chr$(129)+"ber
Add Punkte%,7 !Erh"+Chr$(148)+"he die Punktzahl des Spielers um 7
@Fall
@Stones
Else if C|(Cx&-15+(A&-1)/40+1,Y&/40)=8 !Wenn Der Stein "+Chr$(129)+"ber der Frucht ein Aufwind-Stein ist
For I&=0 To 14 !15 Durch l"+Chr$(132)+"ufe
If Y&>7 !Wenn die Frucht im Sichtbereich ist
Ap&=1
If Ri&=4 !Richtung f"+Chr$(129)+"r das malen der Frucht ermitteln
Ap&=4
Endif
Put A&,Y&,Back$ !Hintergrund putten
Put A&,Y&,S$(Ap&,Zu&+Skeletti&),4 !Frucht ausmaskieren
Put A&,Y&,Fig$(Ap&,Zu&+Skeletti&),6 !Frucht putten
Rc_copy Scr1%,A&,Y&,40,71 To Scr2%,A&,Y& !R"+Chr$(129)+"ber kopieren
Put A&,Y&,Back$ !Hintergrund malen
Sub Y&,8 !Y-Koordinate um 8 senken
Get A&,Y&,A&+39,Y&+63,Back$ !Hintergrund neu Getten
Endif
Next I& !Ende der 15 Durchl"+Chr$(132)+"ufe
Else if C|(Cx&-15+(A&-1)/40+1,Y&/40)<>100 !wenn es sich nicht um den Stengel einer Pflanze handelt
@Fall
@Stones
Endif
Endif
Else !Wenn "+Chr$(129)+"ber der Frucht 2 Steine sein k"+Chr$(148)+"nnten
If C|(Cx&-15+(A&+1)/40,Y&/40)+C|(Cx&-15+(A&-1)/40+1,Y&/40)>0
If C|(Cx&-15+(A&+1)/40,Y&/40)=60
C|(Cx&-15+(A&+1)/40,Y&/40)=0
Hila&=(A&+1)/40
Hily&=Y&/40
Add Punkte%,7!Das selbe Verfahren, wie oben bei *1* nur f"+Chr$(129)+"r beide m"+Chr$(148)+"glichen Steine
Deffill 0,0,0
Pbox Hila&*40,Hily&*40,Hila&*40+39,Hily&*40+39
Get A&,Y&,A&+39,Y&+62,Back$
Rc_copy Scr1%,Hila&*40,Hily&*40,40,40 To Scr2%,Hila&*40,Hily&*40
Endif
If C|(Cx&-15+(A&-1)/40+1,Y&/40)=60
C|(Cx&-15+(A&-1)/40+1,Y&/40)=0
Hila&=(A&-1)/40+1
Hily&=Y&/40
Add Punkte%,7
Deffill 0,0,0
Pbox Hila&*40,Hily&*40,Hila&*40+39,Hily&*40+39
Get A&,Y&,A&+39,Y&+62,Back$
Rc_copy Scr1%,Hila&*40,Hily&*40,40,40 To Scr2%,Hila&*40,Hily&*40
Endif
If C|(Cx&-15+(A&+1)/40,Y&/40)=8 Or C|(Cx&-15+(A&-1)/40+1,Y&/40)=8
For I&=0 To 14
If Y&>7
Ap&=1
If Ri&=4
Ap&=4
Endif
Put A&,Y&,Back$
Put A&,Y&,S$(Ap&,Zu&+Skeletti&),4
Put A&,Y&,Fig$(Ap&,Zu&+Skeletti&),6
Rc_copy Scr1%,A&,Y&,40,71 To Scr2%,A&,Y&
Put A&,Y&,Back$
Sub Y&,8
Get A&,Y&,A&+39,Y&+63,Back$
Endif
Next I&
Else if C|(Cx&-15+(A&+1)/40,Y&/40)=0 And C|(Cx&-15+(A&-1)/40+1,Y&/40)=100
Else if C|(Cx&-15+(A&+1)/40,Y&/40)=100 And C|(Cx&-15+(A&-1)/40+1,Y&/40)=0
Else if C|(Cx&-15+(A&+1)/40,Y&/40)=100 And C|(Cx&-15+(A&-1)/40+1,Y&/40)=100
' es ist ein Pflanzenstengel und Luft oder es sind zwei Pflanzenstengel
Else
@Fall
@Stones
Endif
Endif
Endif
Endif
If A& Mod 40=0 !Wenn die Frucht senkrecht "+Chr$(129)+"ber einem Stein ist, dann mu"+Chr$(158)+" abgefragt werden, ob der Frucht ein Hindernis im Weg steht
@Forn_abfrage_o
Endif
Else
If A& Mod 40=0 !Wenn die Frucht genau "+Chr$(129)+"ber einem Stein ist
If Endf&>0 !Wenn sie nach rechts oben springs
If C|(Cx&-15+(A&-1)/40+2,0)>0 !Wenn ihr ein Hindernis im weg ist
Endf&=0 !,dann springt sie senkrecht weiter
Endif
Else if Endf&<0 !Wenn sie nach links oben springt
If C|(Cx&-15+(A&-1)/40,0)>0 !Wenn ihr ein Hindernis im weg ist
Endf&=0 !,dann springt sie senkrecht weiter
Endif
Endif
Endif
Endif
A&=A&+Endf& !X-Wert wird um endf erh"+Chr$(148)+"ht (+8/-8/0)
Y&=Y&-Ends| !Y-wert wird um ends| ernidrigt (8/0)
If A&<0 !Wenn die Frucht links raus ist
A&=0 !,dann ist sie am linken Rand
Endif
If A&>400 !Wenn die Frucht zu weit rechts ist
@Hinter !,dann wird weiter gescreollt
Endif
If Y&>7 !Wenn sie im Sichtbereich ist
Get A&,Y&,A&+39,Y&+62,Back$ !Hintergrund getten
Endif
Nojump: !Hier gehts weiter falls die Frucht nicht springen durfte
Until Spieler2|<>1 And Spieler2|<>9 And Spieler2|<>5 Or Dauer|>Hdauer|!Wenn der Joy-Stick nicht mehr nach oben gerichtet ist oder die maximale Sprungdauer erreicht ist, dann ist der Sprung zu ende
Return
Procedure Vor
Put A&,Y&,Back$ !Hintergrund putten
If A& Mod 40=0 !Wenn die Frucht genau auf einem Stein steht
If C|(Cx&-15+(A&-1)/40+2,Y&/40+1)+C|(Cx&-15+(A&-1)/40+2,Y&/40)=0 !Wenn beide Stellen, an denen ein Stein St"+Chr$(148)+"ren w"+Chr$(129)+"rde keiner ist
A&=A&+8 !lasse die Frucht um 8 Pixel vorr"+Chr$(129)+"cken
Else if C|(Cx&-15+(A&-1)/40+2,Y&/40+1)=100 !Wenn der Stein vor der Frucht auch nicht der Stiel einer Kletterpflanze ist
A&=A&+8 !lasse die Frucht um 8 Pixel vorr"+Chr$(129)+"cken
Else if C|(Cx&-15+(A&-1)/40+2,Y&/40+1)=47!Wenn der Stein vor der Frucht eine Rollkiste ist
If C|(Cx&-15+(A&-1)/40+2,Y&/40)=0 !Wenn "+Chr$(129)+"ber der Kiste kein Stein ist(nur dann kann sie geschoben werden!)
If C|(Cx&-15+(A&-1)/40+3,Y&/40+1)=0 !Wenn der Kiste kein Stein im Weg ist
C|(Cx&-15+(A&-1)/40+2,Y&/40+1)=0 !lasse die Kiste rollen
C|(Cx&-15+(A&-1)/40+3,Y&/40+1)=47 !lasse die Kiste rollen
Put Int((A&-1)/40+3)*40,Int(Y&/40+1)*40,B$(47)!lasse die Kiste rollen
Pbox Int((A&-1)/40+2)*40,Int(Y&/40+1)*40,Int((A&-1)/40+2)*40+39,Int(Y&/40+1)*40+39!lasse die Kiste rollen
Rc_copy Scr1%,Int((A&-1)/40+2)*40,Int(Y&/40+1)*40,80,40 To Scr2%,Int((A&-1)/40+2)*40,Int(Y&/40+1)*40!lasse die Kiste rollen
Kh&=0 !Falltiefe=0
While C|(Cx&-15+(A&-1)/40+3,Y&/40+2+Kh&)=0 And Y&/40+Kh&<=8 !solange unter dem neuen Standpunkt der Kiste kein Stein ist
C|(Cx&-15+(A&-1)/40+3,Y&/40+1+Kh&)=0 !lasse die Kiste fallen
C|(Cx&-15+(A&-1)/40+3,Y&/40+2+Kh&)=47 !lasse die Kiste fallen
Put Int((A&-1)/40+3)*40,Int(Y&/40+2+Kh&)*40,B$(47)!lasse die Kiste fallen
Pbox Int((A&-1)/40+3)*40,Int(Y&/40+1+Kh&)*40,Int((A&-1)/40+3)*40+39,Int(Y&/40+1+Kh&)*40+39!lasse die Kiste fallen
Rc_copy Scr1%,Int((A&-1)/40+3)*40,Int(Y&/40+1+Kh&)*40,40,80 To Scr2%,Int((A&-1)/40+3)*40,Int(Y&/40+1+Kh&)*40!lasse die Kiste fallen
Inc Kh& !erh"+Chr$(148)+"he die Falltiefe
Wend
Endif
Endif
Else !wenn ein stein im Weg ist
O|=(O|+1) Mod 3 !"+Chr$(142)+"ndere die Gehsequenz
Put A&,Y&,S$(O|,Zu&+Skeletti&),4 !Maskiere sie aus dem Hintergrund aus
Put A&,Y&,Fig$(O|,Zu&+Skeletti&),6 !Male sie hin
Rc_copy Scr1%,A&,Y&,40,63 To Scr2%,A&,Y& !Kopiere sie r"+Chr$(129)+"ber (auf den anzeige screen)
Goto Hilf1
Endif
Else !Wenn die Frucht nicht genau auf einem Stein steht, dann lasse sie weiter gehen.
A&=A&+8
Endif
Get A&,Y&,A&+39,Y&+62,Back$ !Rette den hintergrund
O|=(O|+1) Mod 3 !"+Chr$(142)+"ndere die Gehsequenz
Put A&,Y&,S$(O|,Zu&+Skeletti&),4 !Maskiere sie aus
Put A&,Y&,Fig$(O|,Zu&+Skeletti&),6 !male sie hin
Rc_copy Scr1%,A&-8,Y&,48,63 To Scr2%,A&-8,Y& !kopiere sie r"+Chr$(129)+"ber
Put A&,Y&,Back$ !Restaurire den Hintergrund
Hilf1:
Return
Procedure Zur
Put A&,Y&,Back$ !Hintergrund malen
If A& Mod 40=0 !Wenn die Frucht auf nur einem Stein
If C|(Cx&-15+(A&-1)/40,Y&/40+1)+C|(Cx&-15+(A&-1)/40,Y&/40)=0!Wenn Ihr nichts im Weg ist
A&=A&-8 !lass Sie gehen
Else if C|(Cx&-15+(A&-1)/40,Y&/40+1)=100 !Wenn der Stamm einer Kletterpflanze im Weg ist
Sub A&,8 !dann lasse die Frucht weiter gehen
Else if C|(Cx&-15+(A&-1)/40,Y&/40+1)=47 !Wenn ein Rollkasten vor ihr ist
If A&>60
If C|(Cx&-15+(A&-1)/40,Y&/40)=0
If C|(Cx&-15+(A&-1)/40-1,Y&/40+1)=0
C|(Cx&-15+(A&-1)/40,Y&/40+1)=0
C|(Cx&-15+(A&-1)/40-1,Y&/40+1)=47
Put Int((A&-1)/40-1)*40,Int(Y&/40+1)*40,B$(47)
Pbox Int((A&-1)/40)*40,Int(Y&/40+1)*40,Int((A&-1)/40)*40+39,Int(Y&/40+1)*40+39
Rc_copy Scr1%,Int((A&-1)/40-1)*40,Int(Y&/40+1)*40,80,40 To Scr2%,Int((A&-1)/40-1)*40,Int(Y&/40+1)*40
Kh&=0
While C|(Cx&-15+(A&-1)/40-1,Y&/40+2+Kh&)=0 And Y&/40+Kh&<=8
C|(Cx&-15+(A&-1)/40-1,Y&/40+1+Kh&)=0
C|(Cx&-15+(A&-1)/40-1,Y&/40+2+Kh&)=47
Put Int((A&-1)/40-1)*40,Int(Y&/40+2+Kh&)*40,B$(47)
Pbox Int((A&-1)/40-1)*40,Int(Y&/40+1+Kh&)*40,Int((A&-1)/40-1)*40+39,Int(Y&/40+1+Kh&)*40+39
Rc_copy Scr1%,Int((A&-1)/40-1)*40,Int(Y&/40+1+Kh&)*40,40,80 To Scr2%,Int((A&-1)/40-1)*40,Int(Y&/40+1+Kh&)*40
Inc Kh&
Wend
Endif
Endif
Endif
Endif
Else !wenn sie auf zwei Steinen steht
A&=A&-8 !lasse Sie gehen
Endif
If A&<0 !Wenn sie links rausgehen will
A&=0 !Lasse Sie nicht raus gehen
Endif
Get A&,Y&,A&+39,Y&+62,Back$ !sichere den Hintergrund
If Bewhil&=0
O2|=(O2|+1) Mod 3
Put A&,Y&,S$(O2|+3,Zu&+Skeletti&),4
Put A&,Y&,Fig$(O2|+3,Zu&+Skeletti&),6
Else
Put A&,Y&,S$(Ri&-1,Zu&+Skeletti&),4
Put A&,Y&,Fig$(Ri&-1,Zu&+Skeletti&),6
Endif !Frucht wurde gemalt
Rc_copy Scr1%,A&,Y&,48,63 To Scr2%,A&,Y& !r"+Chr$(129)+"ber kopieren
Put A&,Y&,Back$ !Hintergrund malen
Return
Procedure Fall
If As&>0 !Frucht ist bereits ein St"+Chr$(129)+"ck gefallen
If Y&>7 !Frucht ist auf dem Bildschirm
As&=C|(Cx&-15+(A&+1)/40,(Y&-15)/40+2)+C|(Cx&-15+(A&-1)/40+1,(Y&-15)/40+2)
Else !Frucht ist nicht auf dem Bildschirm
As&=0
Endif !Wenn As&>0 ist befindet sich unter der Frucht ein oder zwei Stein(e)
Endif
If As&=0 Or (Y&+63) Mod 40>0!Wenn sich keine Steine unter ihr befinden ODER die Frucht nicht genau auf einem Stein ist
As&=7 !Frucht ist bereits ein St"+Chr$(129)+"ck gefallen
If Y&>7 !Wenn die Frucht auf dem Bildschirm ist
Put A&,Y&,Back$ !,dann male den Hintergrund
If A&>1 !Wenn die Frucht nicht am linken Rand des Bildschirms ist
Rc_copy Scr1%,A&-8,Y&,56,68 To Scr2%,A&-8,Y& !R"+Chr$(129)+"berkopieren
Else !ansonsten
Rc_copy Scr1%,A&,Y&,48,68 To Scr2%,A&,Y& !weniger R"+Chr$(129)+"berkopieren
Endif
Endif
Repeat
@Monster
Select Stick(1) !Selection des Joy-Sticks
Case 8,10 !Rechts
Endf&=8
Ap&=1
Case 4,6 !Links
Endf&=-8
Ap&=4
Default !Weder rechts noch links
Ap&=1
If Ri&=4
Ap&=4
Endif
Endf&=0
Endselect
Ends|=8 !Y-position wird voraussichtlich um 8 erh"+Chr$(148)+"ht
If A& Mod 40=0 !Wenn die Frucht sich genau "+Chr$(129)+"ber einem Stein befindet
If Y&>7 !Wenn die Frucht auf dem Bildschirm ist
@Forn_abfrage
Else !Wenn die Frucht nicht auf dem Bildschirm ist
If Endf&>0 !Wenn sie nicht senkrecht f"+Chr$(132)+"llt(rechts)
If C|(Cx&-15+(A&-1)/40+2,0)>0 !Wenn unterm Anzeigebalken ein Stein ist
Endf&=0 !,dann f"+Chr$(132)+"llt sie senkrecht
Endif
Else if Endf&<0 !Wenn sie nicht senkrecht f"+Chr$(132)+"llt(links)
If C|(Cx&-15+(A&-1)/40,0)>0 !Wenn unterm Anzeigebalken ein Stein ist
Endf&=0 !,dann f"+Chr$(132)+"llt sie senkrecht
Endif
Endif
Endif
Endif
A&=A&+Endf& !"+Chr$(142)+"nderung der x-koordinate
Y&=Y&+Ends| !"+Chr$(142)+"nderung der y-Koordinate
If Y&>300 !Wenn die Frucht nach unten raus gefallen ist
Dec Lebem|(Akt&) !Senke ihre Lebensenergie
If Lebem|(Akt&)<4 Or Lebem|(Akt&)>100 !Wenn sie jetzt tot ist
@Figur_selection
Endif
@Wscroll !Aufs n"+Chr$(132)+"chste Festland(Marke)setzen
Endif
If A&<0 !Wenn die Frucht nach links raus ist
A&=0 !,dann ist sie am linken Rand
Endif
If Y&>7 !Wenn die Frucht auf dem Bildschirm ist
Get A&,Y&,A&+39,Y&+62,Back$ !sichere dem Hintergrund
Put A&,Y&,S$(Ap&,Zu&+Skeletti&),4 !maskiere sie aus
Put A&,Y&,Fig$(Ap&,Zu&+Skeletti&),6 !male sie
If A&>8 !Wenn sie nicht am linken Rand ist
Rc_copy Scr1%,A&-8,Y&-8,56,72 To Scr2%,A&-8,Y&-8 !R"+Chr$(129)+"berkopieren
Else !andertnfalls
Rc_copy Scr1%,A&,Y&-8,48,72 To Scr2%,A&,Y&-8 !weniger r"+Chr$(129)+"berkopieren
Endif
Put A&,Y&,Back$ !male den Hintergrund
Else !Wenn die Frucht nicht auf dem Bildschirm ist
While Y&<7 !Solange die Frucht nicht auf dem Bildschirm ist
@Monster
Select Stick(1) !selectiere den Joy-Stick
Case 8 !Rechts
Endf&=8
Ap&=1
Case 4 !Links
Endf&=-8
Ap&=4
Default !weder rechts noch links
Ap&=1
If Ri&=4
Ap&=4
Endif
Endf&=0
Endselect
Ends|=8
If A& Mod 40=0
If Endf&>0
If C|(Cx&-15+(A&-1)/40+2,0)>0
Endf&=0
Endif
Else if Endf&<0
If C|(Cx&-15+(A&-1)/40,0)>0
Endf&=0
Endif
Endif
Endif
A&=A&+Endf&
Y&=Y&+Ends|
If A&<0
A&=0
Endif
Wend
Endif
If A&>400 !Wenn die Frucht zu weit rechts ist, dann scrollen
@Hinter
Endif
If Y&>7 !Wenn die Frucht auf dem Bildschirm ist
Get A&,Y&,A&+39,Y&+62,Back$ !sichere den Hintergrund
If C|(Cx&-15+(A&+1)/40,(Y&-15)/40+2)=24 !Wenn unter der Frucht ein Diamant ist
Deffill 0
Hix&=Int((A&+1)/40)*40
Hiy&=Int((Y&-15)/40+2)*40
Pbox Hix&,Hiy&,Hix&+39,Hiy&+39 !l"+Chr$(148)+"sche ihn
Rc_copy Scr1%,Hix&,Hiy&,40,40 To Scr2%,Hix&,Hiy&
C|(Cx&-15+(A&+1)/40,(Y&-15)/40+2)=0
Add Punkte%,49 !addiere zur Punktzahl 49
Endif
If C|(Cx&-15+(A&-1)/40+1,(Y&-15)/40+2)=24 !Wenn unter der Frucht(anderes bein)ein Diamant ist
Deffill 0
Hix&=Int((A&-1)/40+1)*40
Hiy&=Int((Y&-15)/40+2)*40
Pbox Hix&,Hiy&,Hix&+39,Hiy&+39 !l"+Chr$(148)+"sche ihn
Rc_copy Scr1%,Hix&,Hiy&,40,40 To Scr2%,Hix&,Hiy&
C|(Cx&-15+(A&-1)/40+1,(Y&-15)/40+2)=0
Add Punkte%,49 !addiere zur momentanen Punktezahl 49
Endif
Endif
Until C|(Cx&-15+(A&+1)/40,(Y&-15)/40+2)+C|(Cx&-15+(A&-1)/40+1,(Y&-15)/40+2)>0 And (Y&+63) Mod 40=0
' Fallen ist zu ende, wenn unter der Frucht mindestens ein Stein ist
'
' Ist die Frucht auf ein Pflanzen-Monster gefallen
If C|(Cx&-15+(A&+1)/40,(Y&-15)/40+2)+C|(Cx&-15+(A&-1)/40+1,(Y&-15)/40+2)>250
If C|(Cx&-15+(A&+1)/40,(Y&-15)/40+2)=254
' die Frucht ist mit dem linken Fu"+Chr$(158)+" auf eine Pflanze getreten!
For I&=0 To 5 !Herausfinden welche Nummer das Pflanzen-Monster hat
Exit if Abs(X&(I&)-A&)<40 And Y&(I&)=Y&+63 !Wenn der x-Abstand kleiner als 40 ist und sich Monster und Frucht auf der selben H"+Chr$(148)+"he aufhalten, dann ist es die richige Nummer!
Next I&
If R&(I&)=0!Wenn die Pflanze bisher immer auf und ab gegangen ist
If Zahlm&(I&)<3 Or Zahlm&(I&)>12! wenn die Pflanze gerade im stein ist
Put X&(I&),Y&(I&),Zerstampf$(0) !sie f"+Chr$(132)+"ngt an zerstampft zu werden!
Rc_copy Scr1%,X&(I&),Y&(I&),40,40 To Scr2%,X&(I&),Y&(I&)!r"+Chr$(129)+"ber kopieren
R&(I&)=1 !die neue bewegungsart der Pflanze ist 1
Zahlm&(I&)=-1 !Neue Bewegungsart beginnt mit der ersten Sequenz
Endif
Endif
Endif
' Der folgende abschnitt macht das selbe, wie der vorhergegangene nur f"+Chr$(129)+"r den rechten Fu"+Chr$(158)+"
If C|(Cx&-15+(A&-1)/40+1,(Y&-15)/40+2)=254
' rechter FU"+Chr$(158)+"
For I&=0 To 5
Exit if Abs(X&(I&)-A&)<40 And Y&(I&)=Y&+63
Next I&
If R&(I&)=0
If Zahlm&(I&)<3 Or Zahlm&(I&)>12
Put X&(I&),Y&(I&),Zerstampf$(0)
Rc_copy Scr1%,X&(I&),Y&(I&),40,40 To Scr2%,X&(I&),Y&(I&)
R&(I&)=1
Zahlm&(I&)=-1
Endif
Endif
Endif
Endif
Endif
Return
Procedure Hinter
Bmove Scr1%+3205,Scr1%+3200,32000-3205 !Scrollen mit M"+Chr$(129)+"ll rechts
Put 600,40,Scroll$ !Rechts wei"+Chr$(158)+"en Balken putten (40*360)
@Nach
A&=A&-40 !X-Koordinate der Frucht um 40 verringern
Return
Procedure Nach
Add Cx&,1 !Erh"+Chr$(148)+"he anzahl der bereits gescrollten Male um 1
For C&=1 To 9 !9 Steine "+Chr$(129)+"bereinander
If C|(Cx&,C&)>0 !Wenn im Feld an dieser Position etwas steht
Select C|(Cx&,C&) !Selectiere diesen Eintrag
' Muster f"+Chr$(129)+"r alle Monster cases
' R(mons) Ist eine Monster voreable,welche meist f"+Chr$(129)+"r die Richtung genutzt wird
' gz(mons)Ist eine Monster voreable,welche f"+Chr$(129)+"r alles m"+Chr$(148)+"gliche verwendet wird
' Zahlm(monsIst eine Monster voreable,welche f"+Chr$(129)+"r alles m"+Chr$(148)+"gliche verwendet wird
' Monstertyp(mons)Ist die Nummer der Art des Monsters
' x(mons) Ist meist die x-Koordinate des Monsters
' y(mons) Ist mei"+Chr$(158)+"t die y-Koordinate des Monsters
' c|(Cx,C)=0 hiermit l"+Chr$(148)+"schen die Monster sich aus dem Feld,da sie sonst,wie ein Stein ein Hindernis w"+Chr$(132)+"hren
' Inc Mons& hiermit wird der (Zeiger auf n"+Chr$(132)+"chste Monster in den Feldern geschoben
'
Case 42 !Schussstein
Put 600,C&*40,B$(C|(Cx&,C&)) !Male Schussstein
R&(Mons&)=3
X&(Mons&)=640-25
Y&(Mons&)=C&*40+15
Monstertyp&(Mons&)=95
Gz&(Mons&)=1
Zahlm&(Mons&)=0
Inc Mons&
Case 43 !Schussstein
Put 600,C&*40,B$(C|(Cx&,C&)) !male schussstein
R&(Mons&)=3
X&(Mons&)=640+15
Y&(Mons&)=C&*40-25
Monstertyp&(Mons&)=95
Gz&(Mons&)=2
Zahlm&(Mons&)=0
Inc Mons&
Case 44 !Schussstein
Put 600,C&*40,B$(C|(Cx&,C&)) !Male Schussstein
R&(Mons&)=3
X&(Mons&)=640+15
Y&(Mons&)=C&*40+15
Monstertyp&(Mons&)=95
Gz&(Mons&)=3
Zahlm&(Mons&)=0
Inc Mons&
Case 45,26,10 !Hintergr"+Chr$(129)+"nde
Put 600,C&*40,B$(C|(Cx&,C&)) !male den Hintergrund
C|(Cx&,C&)=0 !l"+Chr$(148)+"sch sie aus dem Feld
Case 1 To 60
' normale Steine
Put 600,C&*40,B$(C|(Cx&,C&)) !male den Stein
Case 61 To 90
' hintergr"+Chr$(129)+"nde
Put 600,C&*40,B$(C|(Cx&,C&))
C|(Cx&,C&)=0
Case 94
' Kreisel
X&(Mons&)=640+10
Y&(Mons&)=C&*40+10
R&(Mons&)=0
@Dunkel_oder_hell
Monstertyp&(Mons&)=94
Zahlm&(Mons&)=19
Gz&(Mons&)=0
Inc Mons&
Case 96
' Masse
X&(Mons&)=640
Y&(Mons&)=C&*40
Gz&(Mons&)=0
Zahlm&(Mons&)=0
R&(Mons&)=0
C|(Cx&,C&)=17
Monstertyp&(Mons&)=96
Inc Mons&
Case 97
' gummi
Zahlm&(Mons&)=-24
X&(Mons&)=640
Y&(Mons&)=C&*40
R&(Mons&)=0
Gz&(Mons&)=0
@Dunkel_oder_hell
Monstertyp&(Mons&)=97
Inc Mons&
Case 98
' Kr"+Chr$(148)+"te
R&(Mons&)=2
X&(Mons&)=640
Y&(Mons&)=C&*40+20
Zahlm&(Mons&)=0
Gz&(Mons&)=0
@Dunkel_oder_hell
Monstertyp&(Mons&)=98
Inc Mons&
Case 99
' Ball
R&(Mons&)=3
X&(Mons&)=640
Y&(Mons&)=C&*40
Zahlm&(Mons&)=0
Gz&(Mons&)=0
@Dunkel_oder_hell
Monstertyp&(Mons&)=99
Inc Mons&
Case 100
' schwalbe
R&(Mons&)=1
X&(Mons&)=640
Y&(Mons&)=C&*40+10
Zahlm&(Mons&)=0
Gz&(Mons&)=0
@Dunkel_oder_hell
Monstertyp&(Mons&)=100
Inc Mons&
Case 101
' Fisch
X&(Mons&)=640+5
Y&(Mons&)=C&*40
R&(Mons&)=0
Zahlm&(Mons&)=0
Gz&(Mons&)=0
Put 600,C&*40,B$(26)
Monstertyp&(Mons&)=101
C|(Cx&,C&)=0
Inc Mons&
Case 102
' Fisch
X&(Mons&)=640+5
Y&(Mons&)=C&*40
Zahlm&(Mons&)=0
Gz&(Mons&)=0
R&(Mons&)=0
Put 600,C&*40,B$(26)
Monstertyp&(Mons&)=102
C|(Cx&,C&)=0
Inc Mons&
Case 103
' qualle
R&(Mons&)=2
X&(Mons&)=640
Y&(Mons&)=C&*40+24
Zahlm&(Mons&)=0
Gz&(Mons&)=0
@Dunkel_oder_hell
Monstertyp&(Mons&)=103
Inc Mons&
Case 104
' wabbel
X&(Mons&)=640
Y&(Mons&)=C&*40+19
@Dunkel_oder_hell
Monstertyp&(Mons&)=104
R&(Mons&)=2
Zahlm&(Mons&)=0
Gz&(Mons&)=0
Inc Mons&
Case 105
' purzel
R&(Mons&)=3
X&(Mons&)=640
Y&(Mons&)=C&*40
Zahlm&(Mons&)=0
Gz&(Mons&)=0
@Dunkel_oder_hell
Monstertyp&(Mons&)=105
Inc Mons&
Case 106
' auge
R&(Mons&)=1
X&(Mons&)=650
Y&(Mons&)=C&*40
Gz&(Mons&)=0
Zahlm&(Mons&)=0
@Dunkel_oder_hell
Monstertyp&(Mons&)=106
Inc Mons&
Case 107
' stachel
X&(Mons&)=620
Y&(Mons&)=C&*40+23
R&(Mons&)=0
Zahlm&(Mons&)=0
Gz&(Mons&)=0
Monstertyp&(Mons&)=107
C|(Cx&,C&)=0
Inc Mons&
Case 108
' stachel
X&(Mons&)=640
Y&(Mons&)=C&*40+23
Zahlm&(Mons&)=0
Gz&(Mons&)=0
R&(Mons&)=0
C|(Cx&,C&)=0
Monstertyp&(Mons&)=107
Inc Mons&
Case 109
' feuer
X&(Mons&)=624
Y&(Mons&)=C&*40+14
Zahlm&(Mons&)=0
Gz&(Mons&)=0
R&(Mons&)=0
C|(Cx&,C&)=0
Monstertyp&(Mons&)=109
Inc Mons&
Case 110
' feuer
X&(Mons&)=644
Y&(Mons&)=C&*40+14
Zahlm&(Mons&)=0
Gz&(Mons&)=0
R&(Mons&)=0
C|(Cx&,C&)=0
Monstertyp&(Mons&)=109
Inc Mons&
Case 111
' Plattform
R&(Mons&)=1
Gz&(Mons&)=1
X&(Mons&)=600
Y&(Mons&)=C&*40
Zahlm&(Mons&)=0
@Dunkel_oder_hell
Monstertyp&(Mons&)=111
Inc Mons&
Case 112
' bombe
Put 600,C&*40,B$(17)
C|(Cx&,C&)=17
X&(Mons&)=655
Gz&(Mons&)=655
Y&(Mons&)=C&*40+24
R&(Mons&)=Y&(Mons&)
Monstertyp&(Mons&)=112
Zahlm&(Mons&)=0
Inc Mons&
Case 113
' pfeil
Put 600,C&*40,B$(17)
C|(Cx&,C&)=17
X&(Mons&)=640
Y&(Mons&)=C&*40+15
Gz&(Mons&)=0
R&(Mons&)=0
Monstertyp&(Mons&)=113
Zahlm&(Mons&)=0
Inc Mons&
Case 114
' Schwalbe im Sturzflug
X&(Mons&)=640
Y&(Mons&)=C&*40
@Dunkel_oder_hell
R&(Mons&)=2
Zahlm&(Mons&)=0
Gz&(Mons&)=0
Monstertyp&(Mons&)=114
Inc Mons&
Case 115
' pflanze
X&(Mons&)=640
Y&(Mons&)=C&*40
R&(Mons&)=0
Zahlm&(Mons&)=-1
Gz&(Mons&)=0
C|(Cx&,C&)=254
Monstertyp&(Mons&)=115
Inc Mons&
Case 255
@Dunkel_oder_hell
Scrollstop&=1
Scrolly&=C&
Endselect
Mons&=Mons& Mod 6 ! maximal 6 Monster
Endif
Next C&
If Cx&=999 !Wenn das Level zu ende ist
@New_level_start
Endif
For I&=0 To 5 !Subtrahiere von allen x-Koordinaten der Monster 40
Sub X&(I&),40
Next I&
Sub Schussx&,40 !Subtrahiere von der x-Koordinate des Schusses 40
Put 0,0,Hil$ !restaurire die Anzeigeleiste
Hpunkte%=Punkte%+1
Hleben|=0
Graphmode 3
Deffill 1,1,1
Pbox 224,3,223+(Lebem|(Akt&)-3)*6,17
Hleben|=Lebem|(Akt&)
Bubble$=Right$("000"+Str$(Levels&),3)
Graphmode 2
Text 380,24,Bubble$
Graphmode 1
Bubble$=Right$("0000000"+Str$(Punkte%),8)
Text 223,36,Bubble$
Hpunkte%=Punkte%
Bmove Scr1%,Scr2%,32000
Return
Procedure Dunkel_oder_hell
' Diese Procedur soll kl"+Chr$(132)+"ren ob an der Stelle, an der ein Monster aufgetaucht
' ist es Hell oder Dunkel ist!
If C|(Cx&+1,C&)=10 !Wenn es rechts von der zu pr"+Chr$(129)+"fenden Position dunkel ist
Put 600,C&*40,B$(10) !,dann ist es auch an dieser Position dunkel
Endif
C|(Cx&,C&)=0 !Eintrag aus dem Feld l"+Chr$(148)+"schen
Return
Procedure Level
' Diese Procedure soll das Level einladen
Void Xbios(5,L:Scr2%,L:Scr2%,-1)
Hgesleben&=Gesleben& !alte gesamtlebenzahl retten
Gesleben&=0
For I&=0 To 3
Gesleben&=Gesleben&+Lebem|(I&)-3
Next I&
If Punkte%-Levelpunkte%>Maxpunkte%
Maxpunkte%=Punkte%-Altpunkte% !Neue max-Punktzahl in diesem Level
Maxpunktename$=Player$ !Namen des Spielers mit dem Levelpunkterekord korregieren
Hik&=1
Endif
Altpunkte%=Punkte%
If Levels&>0
If Hgesleben&-Gesleben&<Lebenverlust& !wenn der eigene lebenverlust in diesem Level geringer ist asl der levelrekord
Lebenverlust&=Hgesleben&-Gesleben& !neuer Rekord beim Levellebenverlust
Add Hik&,2
Endif
Endif
If Hik&>0
If Levels&>0
@Neuer_levelrekord
Endif
Endif
@Figur_selection
We$="" !Hilfsvareable leeren
Inc Levels& !Levelnummer erh"+Chr$(148)+"hen
A$=Right$("000"+Str$(Levels&),3) !3-Stellig machen
If Exist("levels\level"+A$+".lev") !Wenn vorhanden
Open "i",#1,"levels\level"+A$+".lev" !Datei "+Chr$(148)+"ffnen
Code%=Cvl(Input$(4,#1))
B%=Cvl(Input$(4,#1))
For I&=0 To Lof(#1)/4-3
B%=B% Xor Cvl(Input$(4,#1))
Next I&
Close
If B%=Code%
Void Xbios(5,L:Scr2%,L:Scr2%,-1)
Cls
Open "i",#1,"levels\level"+A$+".lev" !Datei "+Chr$(148)+"ffnen
Void Cvl(Input$(4,#1))
Erbauer$=Input$(16,#1)
Maxpunkte%=Cvl(Input$(4,#1))
Maxpunktename$=Input$(16,#1)
Lebenverlust&=Asc(Input$(1,#1))-128
Print At(30,6);"Dieses Level ist von:"
Print At(32,7);Erbauer$
Print At(20,9);"Momentaner Punkterekord in diesem Level:"
Print At(36,10);Right$("0000000"+Str$(Maxpunkte%),8)
Print At(30,11);"Von:";Maxpunktename$
If Lebenverlust&=>0
Print At(9,13);"In diesem Level wurden bisher mindestens "+Str$(Lebenverlust&)+" Leben verloren!"
Else
Print At(11,13);"In diesem Level wurden bisher maximal "+Str$(Abs(Lebenverlust&))+" leben gewonnen!"
Endif
We$=Input$(10000,#1) !level einladen
Hz&=0 !Hilfsvareable =0
For I&=0 To 999
H$=Input$(1,#1) !l"+Chr$(132)+"nge der Extra Infios einladen (Schalter)
Schalt$(I&)=Input$(Asc(H$)*4,#1) !Extra Infos ins Feld einladen
Next I&
Close !Datei schlie"+Chr$(158)+"en
Lvar&=0 !Hilfsvareable =0
For I&=0 To 999
For W&=0 To 9
Inc Lvar&
C|(I&,W&)=Asc(Mid$(We$,Lvar&,1)) !Level ins Feld schreiben
Next W&
Next I&
Else
Fehler$="Daten des Levels sind nicht korrekt!"
@Fehler
Endif
Else !Wenn das Level nicht gefunden wird
@Ende
Endif
Repeat
Until Strig(1)=-1
Void Xbios(5,L:Scr1%,L:Scr2%,-1)
Return
Procedure Anf_b_aufbau
' Am Anfang eines Levels mu"+Chr$(158)+" der Bildschirm mit 16*9 Steinen gef"+Chr$(129)+"llt werden
Cls !Bildschirm l"+Chr$(148)+"schen
For I&=1 To 9 !Spalte 1 bis 9(incl.9)
Inc By&
For X&=0 To 15 !Spalte 0 bis 15(incl.15)
Inc Bx&
If C|(X&,I&)>0 !Wenn im Level an dieser Stelle etwas ist
If C|(X&,I&)>60 Or C|(X&,I&)=10 Or C|(X&,I&)=26 Or C|(X&,I&)=45 !Wenn kein Stein
If C|(X&,I&)<91 !Wenn kein Monster
Put X&*40,I&*40,B$(C|(X&,I&)) !Hinmalen und aus dem Feld l"+Chr$(148)+"schen
Endif
C|(X&,I&)=0
Else !Andernfals
Put X&*40,I&*40,B$(C|(X&,I&)) !Hinmalen
Endif
Endif
Next X&
Bx&=0
Next I&
Bmove Scr1%+3200,Scr2%+3200,28800 !Bildschirm anzeigen
Return
Procedure Aktanzeigen
' Anzeigebalken neu anzeigen
If Hleben|<>Lebem|(Akt&) Or Punkte%<>Hpunkte% !Wenn sich etwas in der Anzeigeleiste "+Chr$(132)+"ndern mu"+Chr$(158)+"
Put 0,0,Hil$ !male lehren Anzeigebalken
Hpunkte%=Punkte%
Hleben|=Lebem|(Akt&)
Deffill 1,1,1
Graphmode 3
Pbox 224,3,223+(Lebem|(Akt&)-3)*6,17
Bubble$=Right$("000"+Str$(Levels&),3)
Graphmode 2
Text 380,24,Bubble$
Graphmode 1
Bubble$=Right$("0000000"+Str$(Punkte%),8)
Text 223,36,Bubble$
Bmove Scr1%,Scr2%,3200
If Lebem|(Akt&)<4 Or Lebem|(Akt&)>100
Lebem|(Akt&)=3
@Figur_selection
Endif
Endif
Return
Procedure Abfrage
' Selektierung der Bewegung der Frucht!
Hhhhbew&=Hhhbew&
Hhhbew&=Hhbew&
Hhbew&=Hbew&
Hbew&=Bew&
Bew&=0
If Y&>7
Select Stick(1)
Case 8
Vor
Bew&=8
Ri&=3
Case 4
Zur
Bew&=4
Ri&=4
Case 9,1,5
Vsp !Der Sprung
Default
Bew&=10
Endselect
Else
@Fall
Endif
Return
Procedure Forn_abfrage_o
' Abfrage, ob die Frucht mit dem Kopf gegen einen Stein springt!
If Endf&>0
If C|(Cx&-15+(A&-1)/40+2,(Y&+20)/40)+C|(Cx&-15+(A&-1)/40+2,(Y&+60)/40)>0
Endf&=0
Endif
Else if Endf&<0
If C|(Cx&-15+(A&-1)/40,(Y&+20)/40)+C|(Cx&-15+(A&-1)/40,(Y&+60)/40)>0
Endf&=0
Endif
Endif
Return
Procedure Forn_abfrage
' Abfrage rechts bzw links von der Frucht beim Springen/Fallen
If Endf&>0
If C|(Cx&-15+(A&-1)/40+2,(Y&+63)/40-1)+C|(Cx&-15+(A&-1)/40+2,(Y&+63)/40)>0
Endf&=0
Endif
Else if Endf&<0
If C|(Cx&-15+(A&-1)/40,(Y&+63)/40-1)+C|(Cx&-15+(A&-1)/40,(Y&+63)/40)>0
Endf&=0
Endif
Endif
Return
Procedure Dims
' Alle Dimensieonierungen, die f"+Chr$(129)+"rs Spiel gebraucht wurden
Dim Demofigur$(3)
Dim Score%(99)
Dim Pname$(9)
Dim C|(999,9)
Dim Schalt$(999)
Dim S$(5,7) !Masken (Fr"+Chr$(129)+"chte (Sequenzen))
Dim Fig$(5,7) !Put-Strings (Fr"+Chr$(129)+"chte (Sequenzen))
Dim B$(100) !Put-Strings (Steine\Hintergrund)
Dim Lebem|(3) !Lebensenergie der Fr"+Chr$(129)+"chte 0 bis 3
Dim Ha&(2) !aufl"+Chr$(148)+"sen
Dim Hy&(2) !aufl"+Chr$(148)+"sen
Dim M&(2) !aufl"+Chr$(148)+"sen
Dim Zeit&(2) !aufl"+Chr$(148)+"sen
Dim Zwi%(8064) !Zweiter Screen
Dim Monstertyp&(5) !Monster Typ(sorte des Monsters)
Dim X&(5),Y&(5) !Monster Koordinaten
Dim R&(5) !Monster Richtung
Dim Ball$(3) !Ball Put-Strings
Dim Krote$(1,1) !Kr"+Chr$(148)+"te Put-Strings
Dim Krotem$(1,1) !Kr"+Chr$(148)+"te Put-Back-Strings
Dim Gummi$(3) !Gummi Put-Strings
Dim Masse$(3) !Masse Put-Strings
Dim Kreisel$(3) !Kreisel Put-Strings
Dim Fisch$(1,3) !Fisch Put-Strings
Dim Fischm$(1) !Fisch Put-Back-Strings
Dim Schwalbe$(1) !Schwalbe Put-Strings
Dim Schwalbem$(1) !Schwalbe Put-Back-Strings
Dim Wabbel$(3) !Wabbel Put-Strings
Dim Wabbelm$(3) !Wabbel Put-Back-Strings
Dim Purzel$(3) !Purzel Put-Strings
Dim Purzelm$(3) !Purzel Put-Back-Strings
Dim Auge$(1,3) !Auge Put-Strings
Dim Augem$(3) !Auge Put-Back-Strings
Dim Stachel$(13) !Stachel Put-Strings
Dim Feuer$(3) !Feuer Put-Strings
Dim Qualle$(4) !Qualle Put-Strings
Dim Quallem$(4) !Qualle Put-Back-Strings
Dim Pfeil$(1) !Pfeil Put-Strings
Dim Pfeilm$(1) !Pfeil Put-Back-Strings
Dim Bombe$(1) !Bombe Put-Strings
Dim Bombem$(1) !Bombe Put-Back-Strings
Dim Schwalbes$(1) !Schwalbe Sturzflug-Put-Strings
Dim Schwalbesm$(1) !Schwalbe Sturzflug-Put-Back-Strings
Dim Zahlm&(5) !Hilfs-Z"+Chr$(132)+"hl-Variable f"+Chr$(129)+"r Monster
Dim Gz&(5) !Hilfs-Z"+Chr$(132)+"hl-Variable f"+Chr$(129)+"r Monster
Dim Kreiselx&(19),Kreisely&(19) !Kreibahn des Kreisels
'
' ==============================
' Put-Strings f"+Chr$(129)+"r die Pflanze:
' ==============================
'
Dim Auftauch$(13) !Pflanzen-Put-Strings(Auf und Ab)
Dim Zerstampf$(4) !Pflanzen-Stein-zer-und endquetsch-Put-Strings
Dim Wachs1$(1) !Pflanzen-kletter-Put-Strings(Teil 1)
Dim Wachs2$(7) !Pflanzen-kletter-Put-Strings(Teil 2)
Dim Bluete$(8) !Pflanzen-Bl"+Chr$(129)+"te-Put-Strings
'
Scr2%=Int(V:Zwi%(0)/256+1)*256 !Ablegen der Startadresse des zweiten Bildschirms in scr2%
Scr1%=Xbios(3) !Ablegen der Startadresse des normalen Bildschirms in scr1% (in diesem Moment ist xbios(2) noch gleich xbios(3)
Hidem !Maus nicht mehr anzeigen!
Return
Procedure Werte3
' Hier werden wichtige Anfangswerte gesetzt!
A&=8
Y&=9
Cx&=15
For I&=0 To 2
Ha&(I&)=-49
Next I&
G|=19
For I&=0 To 5
Monstertyp&(I&)=0
Next I&
Return
Procedure Werte2
' Hier werden wichtige Anfangswerte gesetzt!
Skeletti&=0
For I&=0 To 3
Lebem|(I&)=10
Next I&
Levels&=0
Punkte%=0
Werte3
Return
Procedure Werte
' Hier werden wichtige Anfangswerte gesetzt!
For I&=9 Downto 0
Read Pname$(I&)
Next I&
' Bewegungsschema des Kreisel-Monsters
Kreiselx&(0)=-24
Kreisely&(0)=8
Kreiselx&(1)=-24
Kreisely&(1)=8
Kreiselx&(2)=-16
Kreisely&(2)=16
Kreiselx&(3)=-8
Kreisely&(3)=24
Kreiselx&(4)=-8
Kreisely&(4)=24
Kreiselx&(5)=8
Kreisely&(5)=24
Kreiselx&(6)=8
Kreisely&(6)=24
Kreiselx&(7)=16
Kreisely&(7)=16
Kreiselx&(8)=24
Kreisely&(8)=8
Kreiselx&(9)=24
Kreisely&(9)=8
Kreiselx&(10)=24
Kreisely&(10)=-8
Kreiselx&(11)=24
Kreisely&(11)=-8
Kreiselx&(12)=16
Kreisely&(12)=-16
Kreiselx&(13)=8
Kreisely&(13)=-24
Kreiselx&(14)=8
Kreisely&(14)=-24
Kreiselx&(15)=-8
Kreisely&(15)=-24
Kreiselx&(16)=-8
Kreisely&(16)=-24
Kreiselx&(17)=-16
Kreisely&(17)=-16
Kreiselx&(18)=-24
Kreisely&(18)=-8
Kreiselx&(19)=-24
Kreisely&(19)=-8
@Highscor_einlesen
Return
Procedure Stones
' Der Spieler steht auf einem Stein!!
' Welcher Stein wird vom Spieler gerade betreten, was f"+Chr$(129)+"r Auswirkungen hat das?
Deffill 0,0,0
' Print At(5,1);C|(hcx+(A&+1)/40,Y&/40+2)'
' Print At(11,1);C|(hcx+(A&-1)/40+1,Y&/40+2)'
Dielf&=0
Zahlen&=(Zahlen&+1) Mod 128
For I&=0 To 2
If (Zeit&(I&)+5) Mod 128<Zahlen&
Gosub Auflosen_27
Endif
Next I&
Hilfe10&=0
If Int((A&+1)/40)=Int((A&-1)/40)
' Die Figur steht auf zwei Steinen
@2_stones
Else
' Die Figur steht auf einem Steinen
Select C|(Cx&-15+(A&-1)/40+1,Y&/40+2)
Case 31
C|(Cx&-15+(A&-1)/40+1,Y&/40+2)=17
Wscroll
Case 16
Add Punkte%,749
C|(Cx&-15+(A&-1)/40+1,Y&/40+2)=17
Case 11
Inc Lebem|(Akt&)
C|(Cx&-15+(A&-1)/40+1,Y&/40+2)=17
Case 1
If Cx&-15+(A&-1)/40+1<>Ha&(Auflosen&) Or Y&/40+2<>Hy&(Auflosen&)
Auflosen&=Auflosen&+1
If Auflosen&=3
Auflosen&=0
Endif
Zeit&(Auflosen&)=Zahlen&
Ha&(Auflosen&)=Cx&-15+(A&-1)/40+1
Hy&(Auflosen&)=Y&/40+2
Endif
Case 2,3,4
If Zahlen&/2=Int(Zahlen&/2)
If A&>8
Bewhil&=1
@Zur
Bewhil&=0
Endif
Endif
Case 18
Add Punkte%,10
C|(Cx&-15+(A&-1)/40+1,Y&/40+2)=17
Put A&,Y&+63,B$(17)
Rc_copy Scr1%,A&,Y&+63,40,40 To Scr2%,A&,Y&+63
Case 19
Add Punkte%,20
C|(Cx&-15+(A&-1)/40+1,Y&/40+2)=17
Put A&,Y&+63,B$(17)
Rc_copy Scr1%,A&,Y&+63,40,40 To Scr2%,A&,Y&+63
Case 20
Add Punkte%,30
C|(Cx&-15+(A&-1)/40+1,Y&/40+2)=17
Put A&,Y&+63,B$(17)
Rc_copy Scr1%,A&,Y&+63,40,40 To Scr2%,A&,Y&+63
Case 48
Sub Punkte%,10
C|(Cx&-15+(A&-1)/40+1,Y&/40+2)=17
Put A&,Y&+63,B$(17)
Rc_copy Scr1%,A&,Y&+63,40,40 To Scr2%,A&,Y&+63
Case 49
Sub Punkte%,20
C|(Cx&-15+(A&-1)/40+1,Y&/40+2)=17
Put A&,Y&+63,B$(17)
Rc_copy Scr1%,A&,Y&+63,40,40 To Scr2%,A&,Y&+63
Case 50
Sub Punkte%,30
C|(Cx&-15+(A&-1)/40+1,Y&/40+2)=17
Put A&,Y&+63,B$(17)
Rc_copy Scr1%,A&,Y&+63,40,40 To Scr2%,A&,Y&+63
Case 58
Dec Lebem|(Akt&)
C|(Cx&-15+(A&-1)/40+1,Y&/40+2)=59
Put A&,Y&+63,B$(59)
Rc_copy Scr1%,A&,Y&+63,40,40 To Scr2%,A&,Y&+63
If Lebem|(Akt&)<4 Or Lebem|(Akt&)>100
@Figur_selection
Endif
Case 21
If Y&/40>1
If Stick(1)=2
Put A&,Y&,Back$
For I&=0 To 9
Y&=Y&-4
Ap&=1
If Ri&=4
Ap&=4
Endif
Get A&,Y&,A&+39,Y&+62,Back$
Put A&,Y&,S$(Ap&,Zu&+Skeletti&),4
Put A&,Y&,Fig$(Ap&,Zu&+Skeletti&),6
Put A&,Y&+63,B$(21)
Rc_copy Scr1%,A&,Y&,40,79 To Scr2%,A&,Y&
Put A&,Y&,Back$
@Monster
Next I&
C|(Cx&-15+(A&-1)/40+1,Y&/40+2)=21
Endif
Endif
Case 22,57
Dielf&=1
Case 23
@Schalter
Case 27
Dec Lebem|(Akt&)
C|(Cx&-15+(A&-1)/40+1,Y&/40+2)=17
Put A&,Y&+63,B$(17)
Rc_copy Scr1%,A&,Y&+63,40,40 To Scr2%,A&,Y&+63
If Lebem|(Akt&)<4 Or Lebem|(Akt&)>100
@Figur_selection
Endif
Case 32,12
If C|(Cx&-15+(A&-1)/40+1,Y&/40+3)=0 And Int(Y&/40+3)<=9
C|(Cx&-15+(A&-1)/40+1,Y&/40+3)=C|(Cx&-15+(A&-1)/40+1,Y&/40+2)
Pbox A&,Y&+63,A&+39,Y&+63+39
Put A&,Y&+63+40,B$(C|(Cx&-15+(A&-1)/40+1,Y&/40+3))
C|(Cx&-15+(A&-1)/40+1,Y&/40+2)=0
Rc_copy Scr1%,A&,Y&+63,40,80 To Scr2%,A&,Y&+63
Else if Int(Y&/40+3)=10
C|(Cx&-15+(A&-1)/40+1,9)=0
Pbox A&,Y&+63,A&+39,Y&+63+39
Rc_copy Scr1%,A&,Y&+63,40,40 To Scr2%,A&,Y&+63
Endif
Case 34,14
If C|(Cx&-15+(A&-1)/40+1,Y&/40+3)=0 And Int(Y&/40+3)<=9
C|(Cx&-15+(A&-1)/40+1,Y&/40+3)=C|(Cx&-15+(A&-1)/40+1,Y&/40+2)
Pbox A&,Y&+63,A&+39,Y&+63+39
Put A&,Y&+63+40,B$(C|(Cx&-15+(A&-1)/40+1,Y&/40+3))
C|(Cx&-15+(A&-1)/40+1,Y&/40+2)=0
Rc_copy Scr1%,A&,Y&+63,40,80 To Scr2%,A&,Y&+63
Else if Int(Y&/40+3)=10
C|(Cx&-15+(A&-1)/40+1,9)=0
Pbox A&,Y&+63,A&+39,Y&+63+39
Rc_copy Scr1%,A&,Y&+63,40,40 To Scr2%,A&,Y&+63
Endif
Case 37,56,8
Dielf&=7
Case 46
C|(Cx&-15+(A&-1)/40+1,Y&/40+2)=17
Get A&,Y&+63-110,A&+39,Y&+63-110+39,Bacm$
Put A&,Y&+63-110,Bacm$
For Wait&=0 To 70
Pause 1
@Monster
@Tod_oder_nicht
Hz&=(Hz&+1) Mod 8
Get A&,Y&+63-110,A&+39,Y&+63-110+39,Bacm$
Put A&,Y&+63-110,B$(55),4
Put A&,Y&+63-110,B$(51+(Hz&/2)),7
Rc_copy Scr1%,A&,Y&+63-110,40,40 To Scr2%,A&,Y&+63-110
Put A&,Y&+63-110,Bacm$
Next Wait&
Rc_copy Scr1%,A&,Y&+63-110,40,40 To Scr2%,A&,Y&+63-110
Put A&,Y&+63,B$(17)
Rc_copy Scr1%,A&,Y&+63,40,40 To Scr2%,A&,Y&+63
Case 9
Skeletti&=(Skeletti&+1) Mod 2
C|(Cx&-15+(A&-1)/40+1,Y&/40+2)=17
Case 100
If Stick(1)=2
Put A&,Y&,Back$ !Restaurire den Hintergrund
Add Y&,8 !Lasse die Frucht ein St"+Chr$(129)+"ck fallen
Get A&,Y&,A&+39,Y&+62,Back$ !Rette den hintergrund
Put A&,Y&,S$(O|,Zu&+Skeletti&),4 !Maskiere sie aus
Put A&,Y&,Fig$(O|,Zu&+Skeletti&),6 !male die Frucht hin
Rc_copy Scr1%,A&,Y&-8,40,71 To Scr2%,A&,Y&-8 !kopiere die Frucht r"+Chr$(129)+"ber
Put A&,Y&,Back$ !Restaurire den Hintergrund
Endif
Endselect
Endif
Return
Procedure 2_stones
' Der Spieler steht auf zwei Steinen!!
' Welche Steine werden vom Spieler gerade betreten, was f"+Chr$(129)+"r Auswirkungen hat das?
Dummy&=0
Deffill 0,0,0
Select C|(Cx&-15+(A&+1)/40,Y&/40+2)
Case 9
Skeletti&=(Skeletti&+1) Mod 2
C|(Cx&-15+(A&+1)/40,Y&/40+2)=17
Case 58
Dec Lebem|(Akt&)
C|(Cx&-15+(A&+1)/40,Y&/40+2)=59
Hila&=(A&+1)/40
Hily&=Y&/40+2
Put Hila&*40,Hily&*40,B$(59)
Rc_copy Scr1%,Hila&*40,Hily&*40,40,40 To Scr2%,Hila&*40,Hily&*40
If Lebem|(Akt&)<4 Or Lebem|(Akt&)>100
@Figur_selection
Endif
Case 2,3,4
If Zahlen&/2=Int(Zahlen&/2)
If A&>8
Bewhil&=1
@Zur
Bewhil&=0
Endif
Endif
Hilfe10&=1
Case 22,57
Dielf&=1
Case 25,59
@Rutsch_stein
Case 27
Dec Lebem|(Akt&)
C|(Cx&-15+(A&+1)/40,Y&/40+2)=17
Hila&=(A&+1)/40
Hily&=Y&/40+2
Put Hila&*40,Hily&*40,B$(17)
Rc_copy Scr1%,Hila&*40,Hily&*40,40,40 To Scr2%,Hila&*40,Hily&*40
If Lebem|(Akt&)<4 Or Lebem|(Akt&)>100
@Figur_selection
Endif
Case 32,12
If C|(Cx&-15+(A&+1)/40,Y&/40+3)=0 And Int(Y&/40+3)<=9
C|(Cx&-15+(A&+1)/40,Y&/40+3)=C|(Cx&-15+(A&+1)/40,Y&/40+2)
C|(Cx&-15+(A&+1)/40,Y&/40+2)=0
Hila&=(A&+1)/40
Hily&=Y&/40+2
Pbox Hila&*40,Hily&*40,Hila&*40+39,Hily&*40+39
Put Hila&*40,Hily&*40+40,B$(C|(Cx&-15+(A&+1)/40,Y&/40+3))
Rc_copy Scr1%,Hila&*40,Hily&*40,40,80 To Scr2%,Hila&*40,Hily&*40
Else if Int(Y&/40+3)=10
C|(Cx&-15+(A&+1)/40,9)=0
Hila&=(A&+1)/40
Pbox Hila&*40,9*40,Hila&*40+39,9*40+39
Rc_copy Scr1%,Hila&*40,9*40,40,40 To Scr2%,Hila&*40,9*40
Endif
Case 33,15
If Ri&=4
If C|(Cx&-15+(A&+1)/40+1,Y&/40+2)=0
C|(Cx&-15+(A&+1)/40+1,Y&/40+2)=C|(Cx&-15+(A&+1)/40,Y&/40+2)
C|(Cx&-15+(A&+1)/40,Y&/40+2)=0
Hila&=(A&+1)/40
Hily&=Y&/40+2
Put Hila&*40+40,Hily&*40,B$(C|(Cx&-15+(A&+1)/40+1,Y&/40+2))
Pbox Hila&*40,Hily&*40,Hila&*40+39,Hily&*40+39
Rc_copy Scr1%,Hila&*40,Hily&*40,80,40 To Scr2%,Hila&*40,Hily&*40
Endif
Endif
Case 36,13
If Ri&=4
If C|(Cx&-15+(A&+1)/40+1,Y&/40+3)=0 And Y&/40+3<=9
C|(Cx&-15+(A&+1)/40+1,Y&/40+3)=C|(Cx&-15+(A&+1)/40,Y&/40+2)
C|(Cx&-15+(A&+1)/40,Y&/40+2)=0
Hila&=(A&+1)/40
Hily&=Y&/40+2
Put Hila&*40+40,Hily&*40+40,B$(C|(Cx&-15+(A&+1)/40+1,Y&/40+3))
Pbox Hila&*40,Hily&*40,Hila&*40+39,Hily&*40+39
Rc_copy Scr1%,Hila&*40,Hily&*40,40,40 To Scr2%,Hila&*40,Hily&*40
Rc_copy Scr1%,Hila&*40+40,Hily&*40+40,40,40 To Scr2%,Hila&*40+40,Hily&*40+40
Endif
Endif
Case 37,56
Dielf&=7
Case 8
Dummy&=1
Endselect
Select C|(Cx&-15+(A&-1)/40+1,Y&/40+2)
Case 9
C|(Cx&-15+(A&-1)/40+1,Y&/40+2)=17
Skeletti&=(Skeletti&+1) Mod 2
Case 2,3,4
If Hilfe10&=0
If Zahlen&/2=Int(Zahlen&/2)
If A&>8
Bewhil&=1
@Zur
Bewhil&=0
Endif
Endif
Endif
Case 22,57
Dielf&=1
Case 25,59
@Rutsch_stein
Case 58
Dec Lebem|(Akt&)
C|(Cx&-15+(A&-1)/40+1,Y&/40+2)=59
Hila&=(A&-1)/40+1
Hily&=Y&/40+2
Put Hila&*40,Hily&*40,B$(59)
Rc_copy Scr1%,Hila&*40,Hily&*40,40,40 To Scr2%,Hila&*40,Hily&*40
If Lebem|(Akt&)<4 Or Lebem|(Akt&)>100
@Figur_selection
Endif
Case 27
Dec Lebem|(Akt&)
C|(Cx&-15+(A&-1)/40+1,Y&/40+2)=17
Hila&=(A&-1)/40+1
Hily&=Y&/40+2
Put Hila&*40,Hily&*40,B$(17)
Rc_copy Scr1%,Hila&*40,Hily&*40,40,40 To Scr2%,Hila&*40,Hily&*40
If Lebem|(Akt&)<4 Or Lebem|(Akt&)>100
@Figur_selection
Endif
Case 32,12
If C|(Cx&-15+(A&-1)/40+1,Y&/40+3)=0 And Int(Y&/40+3)<=9
C|(Cx&-15+(A&-1)/40+1,Y&/40+3)=C|(Cx&-15+(A&-1)/40+1,Y&/40+2)
C|(Cx&-15+(A&-1)/40+1,Y&/40+2)=0
Hila&=(A&-1)/40+1
Hily&=Y&/40+2
Pbox Hila&*40,Hily&*40,Hila&*40+39,Hily&*40+39
Put Hila&*40,Hily&*40+40,B$(C|(Cx&-15+(A&-1)/40+1,Y&/40+3))
Rc_copy Scr1%,Hila&*40,Hily&*40,40,80 To Scr2%,Hila&*40,Hily&*40
Else if Int(Y&/40+3)=10
C|(Cx&-15+(A&-1)/40+1,Y&/40+2)=0
Hila&=(A&-1)/40+1
Pbox Hila&*40,9*40,Hila&*40+39,9*40+39
Rc_copy Scr1%,Hila&*40,9*40,40,40 To Scr2%,Hila&*40,9*40
Endif
Case 33,15
If Ri&=3
If C|(Cx&-15+(A&-1)/40,Y&/40+2)=0
C|(Cx&-15+(A&-1)/40,Y&/40+2)=C|(Cx&-15+(A&-1)/40+1,Y&/40+2)
C|(Cx&-15+(A&-1)/40+1,Y&/40+2)=0
Hila&=(A&-1)/40
Hily&=Y&/40+2
Pbox Hila&*40+40,Hily&*40,Hila&*40+79,Hily&*40+39
Put Hila&*40,Hily&*40,B$(C|(Cx&-15+(A&-1)/40,Y&/40+2))
Rc_copy Scr1%,Hila&*40,Hily&*40,80,40 To Scr2%,Hila&*40,Hily&*40
Endif
Endif
Case 36,13
If Ri&=3
If C|(Cx&-15+(A&-1)/40,Y&/40+3)=0 And Y&/40+3<=9
C|(Cx&-15+(A&-1)/40,Y&/40+3)=C|(Cx&-15+(A&-1)/40+1,Y&/40+2)
C|(Cx&-15+(A&-1)/40+1,Y&/40+2)=0
Hila&=(A&-1)/40
Hily&=Y&/40+2
Pbox Hila&*40+40,Hily&*40,Hila&*40+79,Hily&*40+39
Put Hila&*40,Hily&*40+40,B$(C|(Cx&-15+(A&-1)/40,Y&/40+3))
Rc_copy Scr1%,Hila&*40+40,Hily&*40,40,40 To Scr2%,Hila&*40+40,Hily&*40
Rc_copy Scr1%,Hila&*40,Hily&*40+40,40,40 To Scr2%,Hila&*40,Hily&*40+40
Endif
Endif
Case 37,56
Dielf&=7
Case 8
If Dummy&=1
Dielf&=7
Endif
Endselect
Return
Procedure Auflosen_27
' In dieser Procedure werden die Platformsteine aufgel"+Chr$(148)+"st!
If Ha&(I&)>-1
Deffill 0
Put (Ha&(I&)+15-Cx&)*40,Hy&(I&)*40,Auflos$
C|(Ha&(I&),Hy&(I&))=0
Add Punkte%,2
Rc_copy Scr1%,(Ha&(I&)+15-Cx&)*40,Hy&(I&)*40,40,40 To Scr2%,(Ha&(I&)+15-Cx&)*40,Hy&(I&)*40
Ha&(I&)=-49
Endif
Return
Procedure Monster
' In dieser Procedure wird entschieden welche monster sich in diesem Durchlauf
' bewegen(immer maximal 3 von maximal 6 Monstern(aus geschwindigkeitsgr"+Chr$(129)+"nden!))!
@Aktanzeigen
@Abfrage_2
@Tod_oder_nicht
Add Monshil&,1
If Monshil&=2
Monshil&=0
Endif
If Monshil&=1
For P&=0 To 2
@Monster_select
Next P&
Else
For P&=3 To 5
@Monster_select
Next P&
Endif
While Timer<Ts%+8
Wend
Ts%=Timer
Return
Procedure Monster_select
' In dieser Procedure werden den Nummern der momentan aktiven Monster
' Ihre Steuerungs-Proceduren zugeteilt!
Select Monstertyp&(P&)
Case 115
@Pflanze
Case 114
@Schwalbe_mit_sturzflug
Case 113
@Pfeil
Case 112
@Bombe
Case 111
@Platform
Case 109
@Feuer
Case 107
@Stacheln
Case 106
@Auge
Case 105
@Purzel
Case 104
@Wabbel
Case 103
@Qualle
Case 102
Hohesprung&=6
@Fisch
Case 101
Hohesprung&=4
@Fisch
Case 100
@Schwalbe
Case 99
@Main_ball
Case 98
@Main_krote
Case 97
@Gummi
Case 96
@Masse
Case 95
@Schussstein
Case 94
@Kreisel
Endselect
Return
Procedure Pflanze
' Steuerung dieses Monsters!
If X&(P&)>0
Select R&(P&)
Case 0
' AUF UND AB
Zahlm&(P&)=(Zahlm&(P&)+1) Mod 14
If Zahlm&(P&)>3 And Zahlm&(P&)<12
If Zahlm&(P&)<8
Add Gz&(P&),8
Else if Zahlm&(P&)>7
Sub Gz&(P&),8
Endif
Else
Gz&(P&)=0
Endif
Get X&(P&),Y&(P&)-Gz&(P&)-8,X&(P&)+39,Y&(P&),Backm$
Put X&(P&),Y&(P&)-Gz&(P&),Auftauch$(Zahlm&(P&))
Rc_copy Scr1%,X&(P&),Y&(P&)-Gz&(P&)-8,40,48 To Scr2%,X&(P&),Y&(P&)-Gz&(P&)-8
Put X&(P&),Y&(P&)-Gz&(P&)-8,Backm$
Case 1
' Ein- und ENTFALTEN
Zahlm&(P&)=(Zahlm&(P&)+1) Mod 11
If Zahlm&(P&)=10
Put X&(P&),Y&(P&),B$(17)
Rc_copy Scr1%,X&(P&),Y&(P&),40,40 To Scr2%,X&(P&),Y&(P&)
R&(P&)=2
Zahlm&(P&)=-1
Else
Put X&(P&),Y&(P&),Zerstampf$(Zahlm&(P&)/2)
Rc_copy Scr1%,X&(P&),Y&(P&),40,40 To Scr2%,X&(P&),Y&(P&)
Endif
Case 2
' KLETTERPFLANZE TEIL 1
Zahlm&(P&)=Zahlm&(P&)+1
If Zahlm&(P&)>3
If Zahlm&(P&)<8
Add Gz&(P&),8
Else if Zahlm&(P&)<10
C|(Cx&-15+(X&(P&)-1)/40+1,(Y&(P&)-Gz&(P&))/40)=100
Add Gz&(P&),7
Endif
Endif
If Y&>0
Put A&,Y&,Back$
Endif
If Zahlm&(P&)<8
Put X&(P&),Y&(P&)-Gz&(P&),Auftauch$(Zahlm&(P&))
Rc_copy Scr1%,X&(P&),Y&(P&)-Gz&(P&),40,40 To Scr2%,X&(P&),Y&(P&)-Gz&(P&)
Else if Zahlm&(P&)<10
Put X&(P&),Y&(P&)-Gz&(P&),Wachs1$(Zahlm&(P&)-8)
Rc_copy Scr1%,X&(P&),Y&(P&)-Gz&(P&),40,40 To Scr2%,X&(P&),Y&(P&)-Gz&(P&)
Endif
If Y&>0
Get A&,Y&,A&+39,Y&+63,Back$
Endif
If Zahlm&(P&)=10
C|(Cx&-15+(X&(P&)-1)/40+1,(Y&(P&)-Gz&(P&))/40)=100
Add Gz&(P&),8
R&(P&)=3
Zahlm&(P&)=0
Endif
Case 3
Add Gz&(P&),10
If Y&>0
Put A&,Y&,Back$
Endif
Put X&(P&),Y&(P&)-Gz&(P&),Wachs2$(Zahlm&(P&))
If Y&>0
Get A&,Y&,A&+39,Y&+63,Back$
Endif
Rc_copy Scr1%,X&(P&),Y&(P&)-Gz&(P&),40,80 To Scr2%,X&(P&),Y&(P&)-Gz&(P&)
Zahlm&(P&)=(Zahlm&(P&)+1) Mod 8
C|(Cx&-15+(X&(P&)-1)/40+1,(Y&(P&)-Gz&(P&))/40)=100
If Y&(P&)-Gz&(P&)<=52
Add Gz&(P&),3
R&(P&)=4
Zahlm&(P&)=0
Endif
Case 4
' Erscheinen der Bl"+Chr$(129)+"te
If Y&>0
Put A&,Y&,Back$
Endif
Put X&(P&),Y&(P&)-Gz&(P&),Bluete$(Zahlm&(P&)/2)
If Y&>0
Get A&,Y&,A&+39,Y&+63,Back$
Endif
Rc_copy Scr1%,X&(P&),Y&(P&)-Gz&(P&),40,20 To Scr2%,X&(P&),Y&(P&)-Gz&(P&)
Inc Zahlm&(P&)
If Zahlm&(P&)=17
Monstertyp&(P&)=0
Endif
Endselect
Else
Monstertyp&(P&)=0
Endif
Return
Procedure Main_ball
' Steuerung dieses Monsters!
If X&(P&)<9
Monstertyp&(P&)=0
If X&(P&)>-1 And Y&<361
Rc_copy Scr1%,X&(P&),Y&(P&),40,40 To Scr2%,X&(P&),Y&(P&)
Endif
Goto Weiter1
Endif
Select R&(P&)
' 3 * 1
' 2
Case 1
If X&(P&) Mod (40)=0
If C|(Cx&-15+X&(P&)/40,Y&(P&)/40+1)=0
R&(P&)=2
Goto Weiter3
Endif
If C|(Cx&-15+X&(P&)/40+1,Y&(P&)/40)>0
R&(P&)=3
Goto Weiter3
Endif
Else if X&(P&)=592
R&(P&)=3
Goto Weiter3
Endif
X&(P&)=X&(P&)+8
Weiter3:
Gz&(P&)=(Gz&(P&)+3) Mod 4
Get X&(P&),Y&(P&),X&(P&)+39,Y&(P&)+39,Bachm$
Put X&(P&),Y&(P&),Ballm$,4
Put X&(P&),Y&(P&),Ball$(Gz&(P&)),7
Rc_copy Scr1%,X&(P&)-8,Y&(P&),48,40 To Scr2%,X&(P&)-8,Y&(P&)
Case 2
Y&(P&)=Y&(P&)+8
If Y&(P&)=360
Monstertyp&(P&)=0
Rc_copy Scr1%,X&(P&),Y&(P&)-8,40,40 To Scr2%,X&(P&),Y&(P&)-8
Goto Weiter1
Endif
If Y&(P&) Mod (40)=0
If C|(Cx&-15+X&(P&)/40,Y&(P&)/40+1)>0
R&(P&)=3
Endif
Endif
Gz&(P&)=(Gz&(P&)+3) Mod 4
Get X&(P&),Y&(P&),X&(P&)+39,Y&(P&)+39,Bachm$
Put X&(P&),Y&(P&),Ballm$,4
Put X&(P&),Y&(P&),Ball$(Gz&(P&)),7
Rc_copy Scr1%,X&(P&),Y&(P&)-8,40,48 To Scr2%,X&(P&),Y&(P&)-8
Case 3
If X&(P&) Mod (40)=0
If C|(Cx&-15+X&(P&)/40,Y&(P&)/40+1)=0
R&(P&)=2
Goto Weiter2
Endif
If C|(Cx&-15+(X&(P&))/40-1,Y&(P&)/40)>0
R&(P&)=1
Goto Weiter2
Endif
Endif
X&(P&)=X&(P&)-8
Weiter2:
Gz&(P&)=(Gz&(P&)+1) Mod 4
Get X&(P&),Y&(P&),X&(P&)+39,Y&(P&)+39,Bachm$
Put X&(P&),Y&(P&),Ballm$,4
Put X&(P&),Y&(P&),Ball$(Gz&(P&)),7
Rc_copy Scr1%,X&(P&),Y&(P&),48,40 To Scr2%,X&(P&),Y&(P&)
Default
Goto Weiter1
Endselect
Put X&(P&),Y&(P&),Bachm$
Weiter1:
Return
Procedure Main_krote
' Steuerung dieses Monsters!
If X&(P&)<5
Monstertyp&(P&)=0
If X&(P&)>-1
Rc_copy Scr1%,X&(P&),Y&(P&),40,20 To Scr2%,X&(P&),Y&(P&)
Endif
Goto Weiterk1
Endif
Select R&(P&)
Case 1
If X&(P&) Mod (40)=0
If C|(Cx&-15+X&(P&)/40+1,Y&(P&)/40+1)=0 Or C|(Cx&-15+X&(P&)/40+1,Y&(P&)/40)>7
R&(P&)=2
Goto Weiterk3
Endif
Else if X&(P&)=596
R&(P&)=2
Goto Weiterk3
Endif
X&(P&)=X&(P&)+4
Weiterk3:
Gz&(P&)=(Gz&(P&)+1) Mod 16
Get X&(P&),Y&(P&),X&(P&)+39,Y&(P&)+19,Bachm$
Put X&(P&),Y&(P&),Krotem$(1,Gz&(P&)/8),4
Put X&(P&),Y&(P&),Krote$(1,Gz&(P&)/8),7
Rc_copy Scr1%,X&(P&)-4,Y&(P&),44,20 To Scr2%,X&(P&)-4,Y&(P&)
Case 2
If X&(P&) Mod (40)=0
If C|(Cx&-15+X&(P&)/40-1,Y&(P&)/40+1)=0 Or C|(Cx&-15+(X&(P&))/40-1,Y&(P&)/40)>7
R&(P&)=1
Goto Weiterk2
Endif
Endif
X&(P&)=X&(P&)-4
Weiterk2:
Gz&(P&)=(Gz&(P&)+1) Mod 16
Get X&(P&),Y&(P&),X&(P&)+39,Y&(P&)+19,Bachm$
Put X&(P&),Y&(P&),Krotem$(0,Gz&(P&)/8),4
Put X&(P&),Y&(P&),Krote$(0,Gz&(P&)/8),7
Rc_copy Scr1%,X&(P&),Y&(P&),44,20 To Scr2%,X&(P&),Y&(P&)
Default
Goto Weiterk1
Endselect
Put X&(P&),Y&(P&),Bachm$
Weiterk1:
Return
Procedure Wabbel
' Steuerung dieses Monsters!
If X&(P&)<6
Monstertyp&(P&)=0
If X&(P&)>-1
Rc_copy Scr1%,X&(P&),Y&(P&),40,25 To Scr2%,X&(P&),Y&(P&)
Endif
Goto Weiterka1
Endif
Select R&(P&)
Case 1
If X&(P&) Mod (40)=0
If C|(Cx&-15+X&(P&)/40+1,Y&(P&)/40+1)=0 Or C|(Cx&-15+X&(P&)/40+1,Y&(P&)/40)>7
R&(P&)=2
Goto Weiterka3
Endif
Else if X&(P&)=595
R&(P&)=2
Goto Weiterka3
Endif
X&(P&)=X&(P&)+5
Weiterka3:
Gz&(P&)=(Gz&(P&)+1) Mod 4
Get X&(P&),Y&(P&),X&(P&)+39,Y&(P&)+20,Bacm$
Put X&(P&),Y&(P&),Wabbelm$(Gz&(P&)),4
Put X&(P&),Y&(P&),Wabbel$(Gz&(P&)),7
Rc_copy Scr1%,X&(P&)-5,Y&(P&),45,21 To Scr2%,X&(P&)-5,Y&(P&)
Case 2
If X&(P&) Mod (40)=0
If C|(Cx&-15+X&(P&)/40-1,Y&(P&)/40+1)=0 Or C|(Cx&-15+(X&(P&))/40-1,Y&(P&)/40)>7
R&(P&)=1
Goto Weiterka2
Endif
Endif
X&(P&)=X&(P&)-5
Weiterka2:
Gz&(P&)=(Gz&(P&)+1) Mod 4
Get X&(P&),Y&(P&),X&(P&)+39,Y&(P&)+20,Bacm$
Put X&(P&),Y&(P&),Wabbelm$(Gz&(P&)),4
Put X&(P&),Y&(P&),Wabbel$(Gz&(P&)),7
Rc_copy Scr1%,X&(P&),Y&(P&),45,21 To Scr2%,X&(P&),Y&(P&)
Default
Goto Weiterka1
Endselect
Put X&(P&),Y&(P&),Bacm$
Weiterka1:
Return
Procedure Masse
' Steuerung dieses Monsters!
' 1 2 3
' 4 * 5
' 6 7 8
Gz&(P&)=(Gz&(P&)+1) Mod 36
If Gz&(P&)=0
R&(P&)=Random(8)+1
For Imasse&=0 To 6
Select R&(P&)
Case 1
If C|(Cx&-15+X&(P&)/40-1,Y&(P&)/40-1)>0
R&(P&)=2
Else
Exit if 0=0
Endif
Case 2
If C|(Cx&-15+X&(P&)/40,Y&(P&)/40-1)>0
R&(P&)=3
Else
Exit if 0=0
Endif
Case 3
If C|(Cx&-15+X&(P&)/40+1,Y&(P&)/40-1)>0 Or X&(P&)=600
R&(P&)=4
Else
Exit if 0=0
Endif
Case 4
If C|(Cx&-15+X&(P&)/40-1,Y&(P&)/40)>0
R&(P&)=5
Else
Exit if 0=0
Endif
Case 5
If C|(Cx&-15+X&(P&)/40+1,Y&(P&)/40)>0 Or X&(P&)=600
R&(P&)=6
Else
Exit if 0=0
Endif
Case 6
If C|(Cx&-15+X&(P&)/40-1,Y&(P&)/40+1)>0
R&(P&)=7
Else
Exit if 0=0
Endif
Case 7
If C|(Cx&-15+X&(P&)/40,Y&(P&)/40+1)>0
R&(P&)=8
Else
Exit if 0=0
Endif
Case 8
If C|(Cx&-15+X&(P&)/40+1,Y&(P&)/40+1)>0 Or X&(P&)=600
R&(P&)=1
Else
Exit if 0=0
Endif
Endselect
Next Imasse&
Select R&(P&)
Case 1
Sub X&(P&),40
Sub Y&(P&),40
Case 2
Sub Y&(P&),40
Case 3
Add X&(P&),40
Sub Y&(P&),40
Case 4
Sub X&(P&),40
Case 5
Add X&(P&),40
Case 6
Sub X&(P&),40
Add Y&(P&),40
Case 7
Add Y&(P&),40
Case 8
Add X&(P&),40
Add Y&(P&),40
Endselect
Endif
If X&(P&)>=0 And X&(P&)<=600 And Y&(P&)>=40 And Y&(P&)<=360
Put X&(P&),Y&(P&),Masse$(Gz&(P&) Mod 4)
C|(Cx&-15+X&(P&)/40,Y&(P&)/40)=17
Rc_copy Scr1%,X&(P&),Y&(P&),40,40 To Scr2%,X&(P&),Y&(P&)
Else
Monstertyp&(P&)=0
Endif
Return
Procedure Auge
' Steuerung dieses Monsters!
' 1 2
' *
' 3 5 4
Gz&(P&)=(Gz&(P&)+1) Mod 4
If Gz&=0
If X&(P&)=610
Select R&(P&)
Case 2
R&(P&)=1
Case 4
R&(P&)=3
Endselect
Endif
Endif
If X&(P&)>=20 And Y&(P&)<360
Select R&(P&)
Case 5
Add Y&(P&),10
Get X&(P&),Y&(P&),X&(P&)+19,Y&(P&)+39,Bachm$
Put X&(P&),Y&(P&),Augem$(0),4
Put X&(P&),Y&(P&),Auge$(0,Gz&(P&)),7
Rc_copy Scr1%,X&(P&),Y&(P&)-10,20,50 To Scr2%,X&(P&),Y&(P&)-10
Put X&(P&),Y&(P&),Bachm$
If Y&(P&) Mod 40=0 And Y&(P&)<360
If C|(Cx&-15+X&(P&)/40,Y&(P&)/40+1)>0
R&(P&)=2
Endif
Endif
Case 4
Add Y&(P&),10
Add X&(P&),10
Get X&(P&),Y&(P&),X&(P&)+19,Y&(P&)+39,Bachm$
Put X&(P&),Y&(P&),Augem$(Gz&(P&)),4
Put X&(P&),Y&(P&),Auge$(1,Gz&(P&)),7
Rc_copy Scr1%,X&(P&)-10,Y&(P&)-10,30,50 To Scr2%,X&(P&)-10,Y&(P&)-10
Put X&(P&),Y&(P&),Bachm$
If Y&(P&) Mod 40=0 And Y&(P&)<360
If C|(Cx&-15+X&(P&)/40,Y&(P&)/40+1)=0
R&(P&)=5
Else if C|(Cx&-15+X&(P&)/40+1,Y&(P&)/40-1)>0
R&(P&)=1
Else
R&(P&)=2
Endif
Endif
Case 3
Add Y&(P&),10
Sub X&(P&),10
Get X&(P&),Y&(P&),X&(P&)+19,Y&(P&)+39,Bachm$
Put X&(P&),Y&(P&),Augem$(Gz&(P&)),4
Put X&(P&),Y&(P&),Auge$(1,Gz&(P&)),7
Rc_copy Scr1%,X&(P&),Y&(P&)-10,30,50 To Scr2%,X&(P&),Y&(P&)-10
Put X&(P&),Y&(P&),Bachm$
If Y&(P&) Mod 40=0 And Y&(P&)<360
If C|(Cx&-15+X&(P&)/40,Y&(P&)/40+1)=0
R&(P&)=5
Else if C|(Cx&-15+X&(P&)/40-1,Y&(P&)/40-1)>0
R&(P&)=2
Else
R&(P&)=1
Endif
Endif
Case 2
Sub Y&(P&),10
Add X&(P&),10
Get X&(P&),Y&(P&),X&(P&)+19,Y&(P&)+39,Bachm$
Put X&(P&),Y&(P&),Augem$(Gz&(P&)),4
Put X&(P&),Y&(P&),Auge$(1,Gz&(P&)),7
Rc_copy Scr1%,X&(P&)-10,Y&(P&),30,50 To Scr2%,X&(P&)-10,Y&(P&)
Put X&(P&),Y&(P&),Bachm$
If Y&(P&) Mod 40=0 And Y&(P&)<360
If C|(Cx&-15+X&(P&)/40,Y&(P&)/40+1)=0
R&(P&)=4
If C|(Cx&-15+X&(P&)/40+1,Y&(P&)/40)>0
R&(P&)=3
Endif
Else if C|(Cx&-15+X&(P&)/40+1,Y&(P&)/40-1)>0
R&(P&)=1
Endif
Endif
Case 1
Sub Y&(P&),10
Sub X&(P&),10
Get X&(P&),Y&(P&),X&(P&)+19,Y&(P&)+39,Bachm$
Put X&(P&),Y&(P&),Augem$(Gz&(P&)),4
Put X&(P&),Y&(P&),Auge$(1,Gz&(P&)),7
Rc_copy Scr1%,X&(P&),Y&(P&),30,50 To Scr2%,X&(P&),Y&(P&)
Put X&(P&),Y&(P&),Bachm$
If Y&(P&) Mod 40=0 And Y&(P&)<360
If C|(Cx&-15+X&(P&)/40,Y&(P&)/40+1)=0
R&(P&)=3
If C|(Cx&-15+X&(P&)/40-1,Y&(P&)/40)>0
R&(P&)=4
Endif
Else if C|(Cx&-15+X&(P&)/40-1,Y&(P&)/40-1)>0
R&(P&)=2
Endif
Endif
Endselect
Else
Monstertyp&(P&)=0
If X&(P&)>0 And Y&(P&)<361
Rc_copy Scr1%,X&(P&),Y&(P&),20,40 To Scr2%,X&(P&),Y&(P&)
Endif
Endif
Return
Procedure Purzel
' Steuerung dieses Monsters!
If X&(P&)<9 Or Y&(P&)>351
Monstertyp&(P&)=0
If X&(P&)>-1 And Y&(P&)<361
Rc_copy Scr1%,X&(P&),Y&(P&),40,40 To Scr2%,X&(P&),Y&(P&)
Endif
Goto Weiter1
Endif
Select R&(P&)
' 3 * 1
' 2
Case 1
If X&(P&) Mod (40)=0
If C|(Cx&-15+X&(P&)/40,Y&(P&)/40+1)=0
R&(P&)=2
Goto Weit3
Endif
If C|(Cx&-15+X&(P&)/40+1,Y&(P&)/40)>0
R&(P&)=3
Goto Weit3
Endif
Else if X&(P&)=592
R&(P&)=3
Goto Weit3
Endif
X&(P&)=X&(P&)+8
Weit3:
Gz&(P&)=(Gz&(P&)+3) Mod 4
Get X&(P&),Y&(P&),X&(P&)+39,Y&(P&)+39,Bachm$
Put X&(P&),Y&(P&),Purzelm$(Gz&(P&)),4
Put X&(P&),Y&(P&),Purzel$(Gz&(P&)),7
Rc_copy Scr1%,X&(P&)-8,Y&(P&),48,40 To Scr2%,X&(P&)-8,Y&(P&)
Case 2
Y&(P&)=Y&(P&)+8
If Y&(P&) Mod (40)=0
If C|(Cx&-15+X&(P&)/40,Y&(P&)/40+1)>0
R&(P&)=3
Endif
Endif
Gz&(P&)=(Gz&(P&)+1) Mod 4
Get X&(P&),Y&(P&),X&(P&)+39,Y&(P&)+39,Bachm$
Put X&(P&),Y&(P&),Purzelm$(Gz&(P&)),4
Put X&(P&),Y&(P&),Purzel$(Gz&(P&)),7
Rc_copy Scr1%,X&(P&),Y&(P&)-8,40,48 To Scr2%,X&(P&),Y&(P&)-8
Case 3
If X&(P&) Mod (40)=0
If C|(Cx&-15+X&(P&)/40,Y&(P&)/40+1)=0
R&(P&)=2
Goto Weit2
Endif
If C|(Cx&-15+(X&(P&))/40-1,Y&(P&)/40)>0
R&(P&)=1
Goto Weit2
Endif
Endif
X&(P&)=X&(P&)-8
Weit2:
Gz&(P&)=(Gz&(P&)+1) Mod 4
Get X&(P&),Y&(P&),X&(P&)+39,Y&(P&)+39,Bachm$
Put X&(P&),Y&(P&),Purzelm$(Gz&(P&)),4
Put X&(P&),Y&(P&),Purzel$(Gz&(P&)),7
Rc_copy Scr1%,X&(P&),Y&(P&),48,40 To Scr2%,X&(P&),Y&(P&)
Default
Goto Weit1
Endselect
Put X&(P&),Y&(P&),Bachm$
Weit1:
Return
Procedure Kreisel
' Steuerung dieses Monsters!
If X&(P&)<1
Monstertyp&(P&)=0
If X&(P&)>-1 And Y&(P&)<361
Rc_copy Scr1%,X&(P&),Y&(P&),20,20 To Scr2%,X&(P&),Y&(P&)
Endif
Else
Gz&(P&)=(Gz&(P&)+1) Mod 32
Zahlm&(P&)=(Zahlm&(P&)+1) Mod 20
X&(P&)=X&(P&)+Kreiselx&(Zahlm&(P&))
Y&(P&)=Y&(P&)+Kreisely&(Zahlm&(P&))
If X&(P&)<1
Monstertyp&(P&)=0
If X&(P&)>-1 And Y&(P&)<361
Rc_copy Scr1%,X&(P&),Y&(P&),20,20 To Scr2%,X&(P&),Y&(P&)
Endif
Else if X&(P&)<621
Get X&(P&),Y&(P&),X&(P&)+19,Y&(P&)+19,Bachm$
Put X&(P&),Y&(P&),Kreiselm$,4
Put X&(P&),Y&(P&),Kreisel$(Gz&(P&) Mod 4),7
Rc_copy Scr1%,X&(P&)-Kreiselx&(Zahlm&(P&)),Y&(P&)-Kreisely&(Zahlm&(P&)),20,20 To Scr2%,X&(P&)-Kreiselx&(Zahlm&(P&)),Y&(P&)-Kreisely&(Zahlm&(P&))
Rc_copy Scr1%,X&(P&),Y&(P&),20,20 To Scr2%,X&(P&),Y&(P&)
Put X&(P&),Y&(P&),Bachm$
Endif
Endif
Return
Procedure Schussstein
' Steuerung dieses Monsters!
' 2
' 1 * 4
' 3
Zahlm&(P&)=(Zahlm&(P&)+1) Mod 2
Select Gz&(P&)
Case 1
Sub X&(P&),20
Case 2
Sub Y&(P&),20
Case 3
Add Y&(P&),20
Case 4
Add X&(P&),20
Endselect
If X&(P&)<20 Or Y&(P&)<20 Or Y&(P&)>389
Monstertyp&(P&)=0
If X&(P&)>5 And Y&(P&)<381 And Y&(P&)>0
Rc_copy Scr1%,X&(P&),Y&(P&),10,10 To Scr2%,X&(P&),Y&(P&)
Endif
Else if X&(P&)<630
R&(P&)=Gz&(P&)
Select R&(P&)
Case 1
Rc_copy Scr1%,X&(P&)+20,Y&(P&),10,10 To Scr2%,X&(P&)+20,Y&(P&)
Case 2
Rc_copy Scr1%,X&(P&),Y&(P&)+20,10,10 To Scr2%,X&(P&),Y&(P&)+20
Case 3
Rc_copy Scr1%,X&(P&),Y&(P&)-20,10,10 To Scr2%,X&(P&),Y&(P&)-20
Case 4
Rc_copy Scr1%,X&(P&)-20,Y&(P&),10,10 To Scr2%,X&(P&)-20,Y&(P&)
Endselect
Get X&(P&),Y&(P&),X&(P&)+9,Y&(P&)+9,Bacm$
Put X&(P&),Y&(P&),Schuss2m$,4
Put X&(P&),Y&(P&),Schuss2$,7
Rc_copy Scr1%,X&(P&),Y&(P&),10,10 To Scr2%,X&(P&),Y&(P&)
Put X&(P&),Y&(P&),Bacm$
Endif
If Zahlm&(P&)=0
Select Gz&(P&)! Reflex?
Case 1
If C|(Cx&-15+X&(P&)/40,Y&(P&)/40)>0
If C|(Cx&-15+X&(P&)/40,Y&(P&)/40)=39
Gz&(P&)=3
Else if C|(Cx&-15+X&(P&)/40,Y&(P&)/40)=40
Gz&(P&)=2
Else
Gz&(P&)=4
Endif
Endif
Case 2
If C|(Cx&-15+X&(P&)/40,Y&(P&)/40)>0
If C|(Cx&-15+X&(P&)/40,Y&(P&)/40)=38
Gz&(P&)=1
Else if C|(Cx&-15+X&(P&)/40,Y&(P&)/40)=39
Gz&(P&)=4
Else
Gz&(P&)=3
Endif
Endif
Case 3
If C|(Cx&-15+X&(P&)/40,Y&(P&)/40)>0
If C|(Cx&-15+X&(P&)/40,Y&(P&)/40)=40
Gz&(P&)=4
Else if C|(Cx&-15+X&(P&)/40,Y&(P&)/40)=41
Gz&(P&)=1
Else
Gz&(P&)=2
Endif
Endif
Case 4
If C|(Cx&-15+X&(P&)/40,Y&(P&)/40)>0
If C|(Cx&-15+X&(P&)/40,Y&(P&)/40)=38
Gz&(P&)=3
Else if C|(Cx&-15+X&(P&)/40,Y&(P&)/40)=41
Gz&(P&)=2
Else
Gz&(P&)=1
Endif
Endif
Endselect
Endif
Return
Procedure Gummi
' Steuerung dieses Monsters!
If X&(P&)<0
Monstertyp&(P&)=0
If X&(P&)>-1 And Y&(P&)<361
Rc_copy Scr1%,X&(P&),Y&(P&),40,40 To Scr2%,X&(P&),Y&(P&)
Endif
Else
Zahlm&(P&)=Zahlm&(P&)+2
If Zahlm&(P&)=24
Zahlm&(P&)=-22
Endif
Gz&(P&)=(Gz&(P&)+1) Mod 4
Y&(P&)=Y&(P&)+Zahlm&(P&)
If Y&(P&)>21
Get X&(P&),Y&(P&),X&(P&)+39,Y&(P&)+39,Bachm$
Put X&(P&),Y&(P&),Ballm$,4
Put X&(P&),Y&(P&),Gummi$(Gz&(P&)),7
Rc_copy Scr1%,X&(P&),Y&(P&)-22,40,84 To Scr2%,X&(P&),Y&(P&)-22
Put X&(P&),Y&(P&),Bachm$
Endif
Endif
Return
Procedure Schwalbe
' Steuerung dieses Monsters!
If X&(P&)<20
Monstertyp&(P&)=0
If X&(P&)>-1 And Y&(P&)<361
Rc_copy Scr1%,X&(P&),Y&(P&),40,20 To Scr2%,X&(P&),Y&(P&)
Endif
Goto Schwalbeend
Endif
Select R&(P&)
Case 0
If X&(P&) Mod (40)=0
If C|(Cx&-15+X&(P&)/40+1,Y&(P&)/40)>0 Or X&(P&)=600
R&(P&)=1
Else
X&(P&)=X&(P&)+20
Endif
Else
X&(P&)=X&(P&)+20
Endif
Get X&(P&),Y&(P&),X&(P&)+39,Y&(P&)+19,Bachm$
Put X&(P&),Y&(P&),Schwalbem$(1),4
Put X&(P&),Y&(P&),Schwalbe$(1),7
Rc_copy Scr1%,X&(P&)-20,Y&(P&),60,20 To Scr2%,X&(P&)-20,Y&(P&)
Case 1
If X&(P&) Mod (40)=0
If C|(Cx&-15+(X&(P&))/40-1,Y&(P&)/40)>0
R&(P&)=0
Else
X&(P&)=X&(P&)-20
Endif
Else
X&(P&)=X&(P&)-20
Endif
Get X&(P&),Y&(P&),X&(P&)+39,Y&(P&)+19,Bachm$
Put X&(P&),Y&(P&),Schwalbem$(0),4
Put X&(P&),Y&(P&),Schwalbe$(0),7
Rc_copy Scr1%,X&(P&),Y&(P&),60,20 To Scr2%,X&(P&),Y&(P&)
Default
Goto Schwalbeend
Endselect
Put X&(P&),Y&(P&),Bachm$
Schwalbeend:
Return
Procedure Fisch
' Steuerung dieses Monsters!
If X&(P&)<0
Monstertyp&(P&)=0
If X&(P&)>-1 And Y&(P&)<361
Rc_copy Scr1%,X&(P&),Y&(P&),30,40 To Scr2%,X&(P&),Y&(P&)
Endif
Else
Zahlm&(P&)=Zahlm&(P&)+1
If Zahlm&(P&)>Hohesprung&*2
Zahlm&(P&)=-Hohesprung&*2+1
Endif
If Zahlm&(P&)>0
Sub Y&(P&),16
Frh&=0
Else
Add Y&(P&),16
Frh&=1
Endif
Gz&(P&)=(Gz&(P&)+1) Mod 4
Get X&(P&),Y&(P&),X&(P&)+29,Y&(P&)+39,Bachm$
Put X&(P&),Y&(P&),Fischm$(Frh&),4
Put X&(P&),Y&(P&),Fisch$(Frh&,Gz&(P&)),7
If Zahlm&(P&)>0
Rc_copy Scr1%,X&(P&),Y&(P&),30,56 To Scr2%,X&(P&),Y&(P&)
Else
Rc_copy Scr1%,X&(P&),Y&(P&)-16,30,56 To Scr2%,X&(P&),Y&(P&)-16
Endif
Put X&(P&),Y&(P&),Bachm$
Endif
Return
Procedure Stacheln
' Steuerung dieses Monsters!
If X&(P&)<0
Monstertyp&(P&)=0
Else
Gz&(P&)=(Gz&(P&)+1) Mod 14
Put X&(P&),Y&(P&),Stachel$(Gz&(P&))
Rc_copy Scr1%,X&(P&),Y&(P&),40,17 To Scr2%,X&(P&),Y&(P&)
Endif
Return
Procedure Feuer
' Steuerung dieses Monsters!
If X&(P&)<0
Monstertyp&(P&)=0
Else
Gz&(P&)=(Gz&(P&)+1) Mod 4
Put X&(P&),Y&(P&),Feuer$(Gz&(P&))
Rc_copy Scr1%,X&(P&),Y&(P&),32,26 To Scr2%,X&(P&),Y&(P&)
Endif
Return
Procedure Pfeil
' Steuerung dieses Monsters!
If X&(P&)+Gz&(P&)<10
R&(P&)=0
Endif
If X&(P&)<10
Monstertyp&(P&)=0
If X&(P&)>-1 And Y&(P&)<361
Rc_copy Scr1%,X&(P&),Y&(P&),20,5 To Scr2%,X&(P&),Y&(P&)
Endif
Else
Select R&(P&)
Case 0
' warteposituion
If Y&+63>Y&(P&) And Y&<Y&(P&)+8
If A&<X&(P&)
R&(P&)=1
Endif
Endif
Case 1
' Fliegt
If C|(Cx&-15+(X&(P&)+Gz&(P&))/40-1,Y&(P&)/40)=0
Sub Gz&(P&),10
Get X&(P&)+Gz&(P&),Y&(P&),X&(P&)+Gz&(P&)+15,Y&(P&)+8,Bachm$
Put X&(P&)+Gz&(P&),Y&(P&),Pfeilm$((X&(P&)+Gz&(P&)/40) Mod 2),4
Put X&(P&)+Gz&(P&),Y&(P&),Pfeil$((X&(P&)+Gz&(P&)/40) Mod 2),7
Rc_copy Scr1%,X&(P&)+Gz&(P&),Y&(P&),26,9 To Scr2%,X&(P&)+Gz&(P&),Y&(P&)
Put X&(P&)+Gz&(P&),Y&(P&),Bachm$
Else
R&(P&)=0
Rc_copy Scr1%,X&(P&)+Gz&(P&),Y&(P&),16,9 To Scr2%,X&(P&)+Gz&(P&),Y&(P&)
Gz&(P&)=0
Endif
Endselect
Endif
Return
Procedure Bombe
' Steuerung dieses Monsters!
If Gz&>X&(P&)
Sub Gz&(P&),40
Endif
If X&(P&)<0
Monstertyp&(P&)=0
If X&(P&)>-1 And Y&(P&)<361
Rc_copy Scr1%,X&(P&),Y&(P&),5,20 To Scr2%,X&(P&),Y&(P&)
Endif
Else
Select Zahlm&(P&)
Case 0
' warteposituion
If A&+60>X&(P&)
If A&<X&(P&)+28
Zahlm&(P&)=1
Endif
Endif
Case 1
' f"+Chr$(132)+"llt
If C|(Cx&-15+(X&(P&)+1)/40,Y&(P&)/40+1)=0
Add Y&(P&),10
Get X&(P&),Y&(P&),X&(P&)+8,Y&(P&)+15,Bachm$
Put X&(P&),Y&(P&),Bombem$((Y&(P&)/40) Mod 2),4
Put X&(P&),Y&(P&),Bombe$((Y&(P&)/40) Mod 2),7
Rc_copy Scr1%,X&(P&),Y&(P&)-10,9,26 To Scr2%,X&(P&),Y&(P&)-10
Put X&(P&),Y&(P&),Bachm$
Else
Zahlm&(P&)=0
Rc_copy Scr1%,X&(P&),Y&(P&),9,16 To Scr2%,X&(P&),Y&(P&)
Y&(P&)=R&(P&)
Endif
Endselect
Endif
Return
Procedure Qualle
' Steuerung dieses Monsters!
If X&(P&)<8
Monstertyp&(P&)=0
If X&(P&)>-1 And Y&(P&)<361
Rc_copy Scr1%,X&(P&),Y&(P&),40,20 To Scr2%,X&(P&),Y&(P&)
Endif
Goto Weiterq1
Endif
Select R&(P&)
Case 1
If X&(P&) Mod (40)=0
If C|(Cx&-15+X&(P&)/40+1,Y&(P&)/40+1)=0 Or C|(Cx&-15+X&(P&)/40+1,Y&(P&)/40)>7
R&(P&)=2
Goto Weiterq3
Endif
Else if X&(P&)>591
R&(P&)=2
Goto Weiterq3
Endif
X&(P&)=X&(P&)+8
Weiterq3:
Gz&(P&)=(Gz&(P&)+1) Mod 5
Get X&(P&),Y&(P&),X&(P&)+39,Y&(P&)+15,Bachm$
Put X&(P&),Y&(P&),Quallem$(Gz&(P&)),4
Put X&(P&),Y&(P&),Qualle$(Gz&(P&)),7
Rc_copy Scr1%,X&(P&)-8,Y&(P&),48,16 To Scr2%,X&(P&)-8,Y&(P&)
Case 2
If X&(P&) Mod (40)=0
If C|(Cx&-15+X&(P&)/40-1,Y&(P&)/40+1)=0 Or C|(Cx&-15+(X&(P&))/40-1,Y&(P&)/40)>7
R&(P&)=1
Goto Weiterq2
Endif
Endif
X&(P&)=X&(P&)-8
Weiterq2:
Gz&(P&)=(Gz&(P&)+1) Mod 5
Get X&(P&),Y&(P&),X&(P&)+39,Y&(P&)+15,Bachm$
Put X&(P&),Y&(P&),Quallem$(Gz&(P&)),4
Put X&(P&),Y&(P&),Qualle$(Gz&(P&)),7
Rc_copy Scr1%,X&(P&),Y&(P&),48,16 To Scr2%,X&(P&),Y&(P&)
Default
Goto Weiterq1
Endselect
Put X&(P&),Y&(P&),Bachm$
Weiterq1:
Return
Procedure Schwalbe_mit_sturzflug
' Steuerung dieses Monsters!
' 1 * 4
' 2 3
If X&(P&)<20
Monstertyp&(P&)=0
If X&(P&)>-1 And Y&(P&)<361
Rc_copy Scr1%,X&(P&),Y&(P&),40,40 To Scr2%,X&(P&),Y&(P&)
Endif
Else
Select R&(P&)
Case 1
If C|(Cx&-15+X&(P&)/40-1,Y&(P&)/40)>0
R&(P&)=4
Else
Sub X&(P&),15
Endif
If Y&(P&)<Y&
If X&(P&)<A&
R&(P&)=3
Else if X&(P&)>A&
R&(P&)=2
Endif
Endif
Get X&(P&),Y&(P&),X&(P&)+39,Y&(P&)+19,Backm$
Put X&(P&),Y&(P&),Schwalbem$(0),4
Put X&(P&),Y&(P&),Schwalbe$(0),7
Rc_copy Scr1%,X&(P&),Y&(P&),55,40 To Scr2%,X&(P&),Y&(P&)
Put X&(P&),Y&(P&),Backm$
Case 2
If C|(Cx&-15+(X&(P&))/40-1,Y&(P&)/40)>0
R&(P&)=4
Else
Add Y&(P&),15
Sub X&(P&),15
Endif
If Y&(P&)<Y&
If X&(P&)<A&
R&(P&)=3
Else if X&(P&)>A&
R&(P&)=2
Endif
Else
R&(P&)=1
Endif
Get X&(P&),Y&(P&),X&(P&)+39,Y&(P&)+39,Backm$
Put X&(P&),Y&(P&),Schwalbesm$(0),4
Put X&(P&),Y&(P&),Schwalbes$(0),7
Rc_copy Scr1%,X&(P&),Y&(P&)-15,55,55 To Scr2%,X&(P&),Y&(P&)-15
Put X&(P&),Y&(P&),Backm$
Case 3
If C|(Cx&-15+(X&(P&))/40+1,Y&(P&)/40)>0
R&(P&)=1
Else
Add Y&(P&),15
Add X&(P&),15
Endif
If Y&(P&)<Y&
If X&(P&)<A&
R&(P&)=3
Else if X&(P&)>A&
R&(P&)=2
Endif
Else
R&(P&)=4
Endif
Get X&(P&),Y&(P&),X&(P&)+39,Y&(P&)+39,Backm$
Put X&(P&),Y&(P&),Schwalbesm$(1),4
Put X&(P&),Y&(P&),Schwalbes$(1),7
Rc_copy Scr1%,X&(P&),Y&(P&),55,55 To Scr2%,X&(P&),Y&(P&)
Put X&(P&),Y&(P&),Backm$
Case 4
If C|(Cx&-15+(X&(P&))/40+1,Y&(P&)/40)>0
R&(P&)=1
Else if X&(P&)>560
R&(P&)=1
Else
Add X&(P&),15
Endif
If Y&(P&)<Y&
If X&(P&)<A&
R&(P&)=3
Else if X&(P&)>A&
R&(P&)=2
Endif
Endif
Get X&(P&),Y&(P&),X&(P&)+39,Y&(P&)+19,Backm$
Put X&(P&),Y&(P&),Schwalbem$(1),4
Put X&(P&),Y&(P&),Schwalbe$(1),7
Rc_copy Scr1%,X&(P&)-15,Y&(P&),55,40 To Scr2%,X&(P&)-15,Y&(P&)
Put X&(P&),Y&(P&),Backm$
Endselect
Endif
Return
Procedure Platform
' Steuerung dieses Monsters!
Zahlm&(P&)=(Zahlm&(P&)+1) Mod 7
C|(Cx&-15+X&(P&)/40,Y&(P&)/40)=8 !Vorderer Teil begehbar machen
C|(Cx&-15+X&(P&)/40+1,Y&(P&)/40)=8 !Hinterer Teil begehbar machen
Select R&(P&)
Case 1 !Die Plattform bewegt sich nach lings!
'
If X&(P&)>-1 And X&(P&)<561 !Ist die Plattform im Sichtbereich?
' !Wenn Ja
Get X&(P&),Y&(P&),X&(P&)+79,Y&(P&)+19,Backm$ !Dann Hintergrund retten
Put X&(P&),Y&(P&),Blatform$ !Dann Plattform zeichnen
Rc_copy Scr1%,X&(P&),Y&(P&),120,20 To Scr2%,X&(P&),Y&(P&)
Put X&(P&),Y&(P&),Backm$ !Dann Hintergrund Zeichnen
Endif !**********************************
If Zahlm&(P&)=0
If Gz&(P&)=0 !Hat die Plattform gerade gewendet?
C|(Cx&-15+X&(P&)/40+2,Y&(P&)/40)=0 !Wenn Nein,dann rechts weg
Else
C|(Cx&-15+X&(P&)/40-1,Y&(P&)/40)=0 !Wenn Ja,dann lings weg
Gz&(P&)=0 !Es wird gerade nicht gewendet!
Endif !**********************************
If C|(Cx&-15+X&(P&)/40-1,Y&(P&)/40)>0 !St"+Chr$(148)+""+Chr$(158)+"t sie gegen etwas?
Gz&(P&)=1 !Es wird gewendet werden
R&(P&)=2 !Wenn Ja,dann wenden
Else
Sub X&(P&),40 !Wenn Nein,Dann weiter nach lings
Endif !**********************************
Endif
Case 2 !Die Platform bewegt sich nach rechts!
'
If X&(P&)>39 And X&(P&)<600 !Ist die Platform im Sichtbereich?
' !Wenn Ja
Get X&(P&),Y&(P&),X&(P&)+79,Y&(P&)+19,Backm$ !Dann Hintergrund retten
Put X&(P&),Y&(P&),Blatform$ !Dann Platform zeichnen
Rc_copy Scr1%,X&(P&)-40,Y&(P&),120,20 To Scr2%,X&(P&)-40,Y&(P&)
Put X&(P&),Y&(P&),Backm$ !Dann Hintergrund Zeichnen
Endif !**********************************
If Zahlm&(P&)=0
If Gz&(P&)=0 !Hat die Platform gerade gewendet?
C|(Cx&-15+X&(P&)/40-1,Y&(P&)/40)=0 !Wenn Nein,dann lings weg
Else
C|(Cx&-15+X&(P&)/40+2,Y&(P&)/40)=0 !Wenn Ja,dann rechts weg
Gz&(P&)=0 !Es wird gerade nicht gewendet!
Endif !**********************************
If C|(Cx&-15+X&(P&)/40+2,Y&(P&)/40)>0 Or X&(P&)>540!St"+Chr$(148)+""+Chr$(158)+"t sie gegen etwas?
Gz&(P&)=2 !Es wird gewendet werden
R&(P&)=1 !Wenn Ja,dann wenden
Else
Add X&(P&),40 !Wenn Nein,dann weiter nach rechts
Endif !**********************************
Endif
Endselect
Return
Procedure Tod_oder_nicht
' In dieser Procedure wird gepr"+Chr$(129)+"ft, ob ein Monster dich ber"+Chr$(129)+"hrt und damit t"+Chr$(148)+"tet
For Tod&=0 To 5
If Monstertyp&(Tod&)>0
Select Monstertyp&(Tod&)
Case 111,96
Mb&=0
Case 112
Mb&=15
Mh&=8
Case 113
Mb&=0
If Y&+63>Y&(Tod&)
If Y&<Y&(Tod&)+Mh&
If A&=>X&(Tod&)+Gz&(Tod&) And A&<X&(Tod&)+Gz&(Tod&)+Mb& Or A&=<X&(Tod&)+Gz&(Tod&)+Mb& And A&+40>X&(Tod&)+Gz&(Tod&)
@Monsterauflosen
Monstertyp&(Tod&)=0
Dec Lebem|(Akt&)
If Lebem|(Akt&)<4 Or Lebem|(Akt&)>100
@Figur_selection
Endif
Endif
Endif
Endif
Case 94
Mb&=19
Mh&=19
Case 95
Mb&=9
Mh&=9
Case 100,104,98
Mb&=39
Mh&=19
Case 96 To 99,105
Mb&=39
Mh&=39
Case 101,102
Mb&=29
Mh&=39
Case 103
Mb&=39
Mh&=15
Case 106
Mb&=19
Mh&=39
Case 107
Mb&=39
Mh&=17
Case 109
Mb&=31
Mh&=25
Case 114
Mb&=30
Mh&=20
Case 115
Mb&=0
If R&(Tod&)=0
If Gz&(Tod&)>0
If Y&+63>Y&(Tod&)-Gz&(Tod&)
If Y&<Y&(Tod&)
If A&=>X&(Tod&)+8 And A&<X&(Tod&)+32 Or A&=<X&(Tod&)+32 And A&+40>X&(Tod&)+8
Monstertyp&(Tod&)=0
Dec Lebem|(Akt&)
If Lebem|(Akt&)<4 Or Lebem|(Akt&)>100
@Figur_selection
Endif
Endif
Endif
Endif
Endif
Endif
Endselect
If Mb&>0
If Y&+63>Y&(Tod&)
If Y&<Y&(Tod&)+Mh&
If A&=>X&(Tod&) And A&<X&(Tod&)+Mb& Or A&=<X&(Tod&)+Mb& And A&+40>X&(Tod&)
@Monsterauflosen
Monstertyp&(Tod&)=0
Dec Lebem|(Akt&)
If Lebem|(Akt&)<4 Or Lebem|(Akt&)>100
@Figur_selection
Endif
Endif
Endif
Endif
Endif
Endif
Next Tod&
Return
Procedure Abfrage_2
' In dieser Procedure wird gepr"+Chr$(129)+"ft, ob ein Monster erschossen wurde!
If Strig(1)=-1 And Schussr&=0 And Y&>7
Schussx&=Int(A&/8)*8+40
If Ri&=4
Schussx&=Int(A&/8)*8-8
Endif
Schussh&=1
Schussy&=Int(Y&/8)*8+40
Schussr&=Ri&
Endif
If Schussx&<2
Schuss_weg
Endif
If Schussr&>0
For Tod&=0 To 5
Select Monstertyp&(Tod&)
Case 98
Mb&=40
Mh&=40
Mp&=49
Case 99
Mb&=40
Mh&=40
Mp&=98
Case 94
Mb&=20
Mh&=20
Mp&=49*7
Case 100
Mb&=40
Mh&=20
Mp&=28
Default
Mh&=0
Endselect
If Mh&>0
If Schussy&+1>Y&(Tod&) And Schussy&+1<Y&(Tod&)+Mh&
If Schussx&+1>X&(Tod&) And Schussx&+1<X&(Tod&)+Mb&
@Monsterauflosen
Monstertyp&(Tod&)=0
Schuss_weg
Add Punkte%,Mp&
Aktanzeigen
Endif
Endif
Endif
Next Tod&
Endif
@Schussreflect
Return
Procedure Schussreflect
' In dieser Procedure werden die Reflektionen des Schusses an den Steinen
' gesteuert
If Schussr&>0
If Schussy&>=384 Or Schussx&>=624 Or Schussx&<=8 Or Schussy&<=8
@Schuss_weg
Endif
Endif
Select Schussr&
' 1 2
' z
' 4 3
Case 1
If C|(Cx&-15+(Schussx&)/40,Schussy&/40-0.2)>0
Schussr&=4
If C|(Cx&-15+(Schussx&)/40,Schussy&/40-0.2)=35
@Schuss_weg
Endif
Else if C|(Cx&-15+(Schussx&)/40-0.2,Schussy&/40)>0
Schussr&=2
If C|(Cx&-15+(Schussx&)/40-0.2,Schussy&/40)=35
@Schuss_weg
Endif
Else
Sub Schussx&,8
Sub Schussy&,8
Get Schussx&,Schussy&,Schussx&+7,Schussy&+7,Schussb$
Endif
Put Schussx&,Schussy&,Schuss$
Rc_copy Scr1%,Schussx&,Schussy&,16,16 To Scr2%,Schussx&,Schussy&
Put Schussx&,Schussy&,Schussb$
Case 2
If C|(Cx&-15+Schussx&/40,Schussy&/40-0.2)>0
Schussr&=3
If C|(Cx&-15+Schussx&/40,Schussy&/40-0.2)=35
@Schuss_weg
Endif
Else if C|(Cx&-15+Schussx&/40+0.3,Schussy&/40-0.2)>0
Schussr&=1
If C|(Cx&-15+Schussx&/40+0.3,Schussy&/40-0.2)=35
Schuss_weg
Endif
Else
Add Schussx&,8
Sub Schussy&,8
Get Schussx&,Schussy&,Schussx&+7,Schussy&+7,Schussb$
Endif
Put Schussx&,Schussy&,Schuss$
Rc_copy Scr1%,Schussx&-8,Schussy&,16,16 To Scr2%,Schussx&-8,Schussy&
Put Schussx&,Schussy&,Schussb$
Case 3
If C|(Cx&-15+Schussx&/40,Schussy&/40+0.3)>0
Schussr&=2
If C|(Cx&-15+Schussx&/40,Schussy&/40+0.3)=35
@Schuss_weg
Endif
Else if C|(Cx&-15+Schussx&/40+0.3,Schussy&/40)>0
Schussr&=4
If C|(Cx&-15+Schussx&/40+0.3,Schussy&/40)=35
@Schuss_weg
Endif
Else
Add Schussx&,8
Add Schussy&,8
Get Schussx&,Schussy&,Schussx&+7,Schussy&+7,Schussb$
Endif
Put Schussx&,Schussy&,Schuss$
Rc_copy Scr1%,Schussx&-8,Schussy&-8,16,16 To Scr2%,Schussx&-8,Schussy&-8
Put Schussx&,Schussy&,Schussb$
Case 4
If C|(Cx&-15+Schussx&/40,Schussy&/40+0.3)>0
Schussr&=1
If C|(Cx&-15+Schussx&/40,Schussy&/40+0.3)=35
@Schuss_weg
Endif
Else if C|(Cx&-15+Schussx&/40-0.2,Schussy&/40)>0
Schussr&=3
If C|(Cx&-15+Schussx&/40-0.2,Schussy&/40)=35
@Schuss_weg
Endif
Else
Sub Schussx&,8
Add Schussy&,8
Get Schussx&,Schussy&,Schussx&+7,Schussy&+7,Schussb$
Endif
Put Schussx&,Schussy&,Schuss$
Rc_copy Scr1%,Schussx&,Schussy&-8,16,16 To Scr2%,Schussx&,Schussy&-8
Put Schussx&,Schussy&,Schussb$
Endselect
Return
Procedure Rutsch_stein
' hier werden die Daten f"+Chr$(129)+"r das Rutschen bearbeitet!
If Hbew&=4
@Rutsch_zur
Else if Hbew&=8
@Rutsch_vor
Else if Hbew&=10
If Hhbew&=4
@Rutsch_zur
Else if Hhbew&=8
@Rutsch_vor
Else if Hhbew&=10
If Hhhbew&=4
@Rutsch_zur
Else if Hhhbew&=8
@Rutsch_vor
Else if Hhhbew&=10
If Hhhhbew&=4
@Rutsch_zur
Else if Hhhhbew&=8
@Rutsch_vor
Endif
Endif
Endif
Endif
Return
Procedure Rutsch_vor
' Diese Procedure l"+Chr$(132)+""+Chr$(158)+"t dich nach rechts schliddern (Eis)
Put A&,Y&,Back$
If A& Mod 40=0
If C|(Cx&-15+(A&-1)/40+2,Y&/40+1)+C|(Cx&-15+(A&-1)/40+2,Y&/40)=0 Or C|(Cx&-15+(A&-1)/40+2,Y&/40)=85
A&=A&+8
Endif
Else
A&=A&+8
Endif
Get A&,Y&,A&+39,Y&+62,Back$
Put A&,Y&,S$(1,Zu&+Skeletti&),4
Put A&,Y&,Fig$(1,Zu&+Skeletti&),7
Rc_copy Scr1%,A&-8,Y&,48,63 To Scr2%,A&-8,Y&
Put A&,Y&,Back$
Return
Procedure Rutsch_zur
' Diese Procedure l"+Chr$(132)+""+Chr$(158)+"t dich nach links schliddern (Eis)
Put A&,Y&,Back$
If A& Mod 40=0
If C|(Cx&-15+(A&-1)/40,Y&/40+1)+C|(Cx&-15+(A&-1)/40,Y&/40)=0
A&=A&-8
Endif
Else
A&=A&-8
Endif
If A&<0
A&=0
Endif
Get A&,Y&,A&+39,Y&+62,Back$
Put A&,Y&,S$(3,Zu&+Skeletti&),4
Put A&,Y&,Fig$(3,Zu&+Skeletti&),7
Rc_copy Scr1%,A&,Y&,48,63 To Scr2%,A&,Y&
Put A&,Y&,Back$
Return
Procedure Schalter
' Der Schalterstein hat auswirkungen, wenn dieser benutzt wird. Diese werden Hier
' ausgewertet.
' Die Informationen dazu kommen aus einem Feld Schalter$() dem die
' x-Koordinate/40 "+Chr$(129)+"bergeben wird.
' Die "+Chr$(142)+"nderung von einem Stein ben"+Chr$(148)+"tigt 4Bytes
' 2Bytes f"+Chr$(129)+"r die X-Koordinate im Feld
' 1Byte f"+Chr$(129)+"r die Y-Koordinate im Feld
' 1Byte f"+Chr$(129)+"r die Nummer des neuen Steins
For I&=0 To Len(Schalt$(Cx&-14+A&/40))/4
H$=Mid$(Schalt$(Cx&-14+A&/40),I&*4+1,4)
Xschalt&=Cvi(H$)
Yschalt&=Asc(Mid$(H$,3))
Steinart&=Asc(Mid$(H$,4))
C|(Xschalt&,Yschalt&)=Steinart&
If Xschalt&<Cx&+1 And Xschalt&>Cx&-16
Put (Xschalt&-Cx&+15)*40,Yschalt&*40,B$(Steinart&)
Rc_copy Scr1%,(Xschalt&-Cx&+15)*40,Yschalt&*40,40,40 To Scr2%,(Xschalt&-Cx&+15)*40,Yschalt&*40
Endif
Next I&
Return
Procedure New_level_start
' Wenn ein weiteres Level gespielt werden soll, werden von hier die n"+Chr$(148)+"tigen
' Vorbereitungen erledigt!
@Werte3
@Level
@Anf_b_aufbau
Get A&,Y&,A&+39,Y&+63,Back$
@Main
Return
Procedure New_start
' wenn Sie sich f"+Chr$(129)+"r ein weiteres Spiel entschieden haben sollten, dann kommt
' diese Procedure zum Einsatz!
@Werte2
Void Xbios(5,L:Scr1%,L:Scr2%,-1)
Deffill 1,1,1
Pbox 0,0,639,399
Put 244,152,Inp$
Put 230,220,Ianthr$
Put 154,39,Brisk$
@Name_input
@Level
@Anf_b_aufbau
@Main
Return
Procedure Wscroll
' In dieser Procedure wird tzusammen mit der Procedure Hinter der Hintergrund
' um 40 Pixel(5 Bytes) nach links geschoben!
Repeat
Until Inkey$=""
Scrollstop&=0
Repeat
@Hinter
Y&=Scrolly&*40-63
A&=400
Until Scrollstop&=1
Get A&,Y&,A&+39,Y&+63,Back$
Return
Procedure Keyselect
' In dieser Procedure wird ein eventueller Tasdtendruck w"+Chr$(132)+"hrend des Siels
' selektiert!
Select Inp(2)
Case 226 !HELP
@Hilfe
Case 196 !F 10 : SELBSTMORD
Dec Lebem|(Akt&)
@Wscroll
If Lebem|(Akt&)<4 Or Lebem|(Akt&)>100
@Figur_selection
Endif
Case 27
For I&=0 To 3
Lebem|(I&)=3
Next I&
@Ende
End
Endselect
Return
PROCEDURE Prufen
' In dieser Procedure werden die zum Programm geh"+Chr$(148)+"renden Dateien auf Fehler
' untersucht!
If Exist("brisk.dat")
Open "i",#1,"brisk.dat"
If Lof(#1)=107046
B%=Cvl(Input$(4,#1))
For I&=0 To 26759 !Geheim: (107046/4)-2=26759
B%=Xor(B%,Cvl(Input$(4,#1)))
Next I&
If B%=-490501012
Pr&=1
Else
Fehler$="Daten in Brisk.dat sind nicht korrekt!"
@Fehler
Endif
Else
Fehler$="Brisk.dat hat die faltsche L"+Chr$(132)+"nge!"
@Fehler
Endif
Close
Else
Fehler$="Brisk.dat ist nicht auf der Diskette!"
@Fehler
Endif
If Exist("B__DRUCK.PRG")
Open "i",#1,"B__DRUCK.PRG"
If Lof(#1)<>15935
Fehler$="B__Druck.prg hat die faltsche l"+Chr$(132)+"nge!"
@Fehler
Endif
Close
Else
Fehler$="B__Druck.prg ist nicht auf dieser Diskette!"
@Fehler
Endif
If Exist("Liesmich.prg")
Open "i",#1,"liesmich.prg"
If Lof(#1)<>13223
Fehler$="LiesMich.prg hat die faltsche l"+Chr$(132)+"nge!"
@Fehler
Endif
Close
Else
Fehler$="LiesMich.prg ist nicht auf dieser Diskette!"
@Fehler
Endif
If Exist("b_Dekomp.prg")
Open "i",#1,"b_Dekomp.prg"
If Lof(#1)<>11110
Fehler$="B_Dekomp.prg hat die faltsche l"+Chr$(132)+"nge!"
@Fehler
Endif
Close
Else
Fehler$="B_Dekomp.prg ist nicht auf dieser Diskette!"
@Fehler
Endif
For I&=1 To 4
If Exist("levels\level00"+Str$(I&)+".lev")
Else
Fehler$="Level00"+Str$(I&)+".lev ist nicht auf dieser Diskette!"
@Fehler
Endif
Next I&
For I&=1 To 38
Void$="b___info\info__"+Right$("0"+Str$(I&),2)+".pic"
If Exist(Void$)
Read Infolang&
Open "i",#1,Void$
If Lof(#1)<>Infolang&
Fehler$=Right$(Void$,12)+" hat die faltsche L"+Chr$(132)+"ange!"
@Fehler
Endif
Close
Else
Fehler$=Right$(Void$,12)+" ist nicht auf der Diskette!"
@Fehler
Endif
Next I&
If Exist("brisk1_1.prg")
Open "i",#1,"brisk1_1.prg"
If Lof(#1)<>129067
Fehler$="Brisk1_1.prg hat die faltsche L"+Chr$(132)+"nge!"
@Fehler
Endif
Close
Endif
Return
Procedure Anfangs
' In dieser Procedure werden alle Graphicelemente(Bilder) eingeladen!
Open "i",#1,"brisk.dat"
Fa&=0
F&=0
For I3&=0 To 7
Fa&=0
For I4&=0 To 5
Fig$(Fa&,F&)=Input$(384,#1)
S$(Fa&,F&)=Input$(384,#1)
Inc Fa&
Next I4&
Inc F&
Next I3&
Scroll$=Input$(2310,#1)
Auflos$=Input$(132,#1)
Hil$=Input$(3206,#1)
Schuss$=Input$(22,#1)
D&=3
F&=1
For I&=0 To 59
B$(F&)=Input$(246,#1)
Inc F&
Next I&
For I&=0 To 14
B$(90-I&)=Input$(486,#1)
Next I&
For I&=0 To 14
B$(75-I&)=Input$(486,#1)
Next I&
F&=0
For I&=0 To 3
Ball$(I&)=Input$(246,#1)
Next I&
Ballm$=Input$(246,#1)
For I&=0 To 3
Gummi$(I&)=Input$(246,#1)
Next I&
For I&=0 To 3
Kreisel$(I&)=Input$(86,#1)
Next I&
Kreiselm$=Input$(86,#1)
For I&=0 To 3
Fisch$(0,I&)=Input$(166,#1)
Next I&
For I&=0 To 3
Fisch$(1,I&)=Input$(166,#1)
Next I&
Fischm$(0)=Input$(166,#1)
Fischm$(1)=Input$(166,#1)
Schwalbe$(0)=Input$(126,#1)
Schwalbe$(1)=Input$(126,#1)
Schwalbem$(0)=Input$(126,#1)
Schwalbem$(1)=Input$(126,#1)
Schuss2$=Input$(26,#1)
Schuss2m$=Input$(26,#1)
For I&=0 To 3
Feuer$(I&)=Input$(110,#1)
Next I&
For I&=0 To 13
Stachel$(I&)=Input$(108,#1)
Next I&
For I&=0 To 3
Auge$(0,I&)=Input$(166,#1)
Auge$(1,I&)=Input$(166,#1)
Augem$(I&)=Input$(166,#1)
Next I&
For I&=0 To 3
Masse$(I&)=Input$(246,#1)
Next I&
For I&=0 To 1
Krote$(0,I&)=Input$(126,#1)
Next I&
For I&=2 To 3
Krote$(1,I&-2)=Input$(126,#1)
Next I&
For I&=0 To 3
Wabbel$(I&)=Input$(132,#1)
Wabbelm$(I&)=Input$(132,#1)
Next I&
For I&=0 To 3
Purzel$(I&)=Input$(246,#1)
Purzelm$(I&)=Input$(246,#1)
Next I&
For I&=0 To 1
Krotem$(0,I&)=Input$(126,#1)
Next I&
For I&=2 To 3
Krotem$(1,I&-2)=Input$(126,#1)
Next I&
For I&=0 To 4
Qualle$(I&)=Input$(102,#1)
Quallem$(I&)=Input$(102,#1)
Next I&
For I&=0 To 1
Bombe$(I&)=Input$(38,#1)
Bombem$(I&)=Input$(38,#1)
Next I&
For I&=0 To 1
Pfeil$(I&)=Input$(24,#1)
Pfeilm$(I&)=Input$(24,#1)
Next I&
For I&=0 To 1
Schwalbes$(I&)=Input$(246,#1)
Schwalbesm$(I&)=Input$(246,#1)
Next I&
Brisk$=Input$(2646,#1)
Briskb$=Input$(2646,#1)
Inp$=Input$(798,#1)
Ianthr$=Input$(732,#1)
Blatform$=Input$(206,#1)
For I&=0 To 3
Demofigur$(I&)=Input$(396,#1)
Next I&
Auswahlpfeil$=Input$(74,#1)
Ende$=Input$(510,#1)
For I&=0 To 13
Auftauch$(I&)=Input$(246,#1)
Next I&
For I&=0 To 4
Zerstampf$(I&)=Input$(246,#1)
Next I&
For I&=O& To 1
Wachs1$(I&)=Input$(246,#1)
Next I&
Wachs2$(0)=Input$(246,#1)
Wachs2$(1)=Input$(306,#1)
Wachs2$(2)=Input$(366,#1)
Wachs2$(3)=Input$(426,#1)
Wachs2$(4)=Input$(246,#1)
Wachs2$(5)=Input$(306,#1)
Wachs2$(6)=Input$(366,#1)
Wachs2$(7)=Input$(426,#1)
For I&=0 To 8
Bluete$(I&)=Input$(144,#1)
Next I&
Titel$=Input$(678,#1)
Pfeilr$=Input$(38,#1)
Pfeill$=Input$(38,#1)
Close
Return
PROCEDURE Figur_selection
' In dieser Procedure k"+Chr$(148)+"nnen Sie zwischen den verschiedenen Fr"+Chr$(129)+"chten w"+Chr$(132)+"hlen!
Void Xbios(5,L:Scr2%,L:Scr2%,-1)
Deffill 1,1,1
Pbox 0,0,639,399
Put 244,152,Inp$
Put 230,220,Ianthr$
Put 203,265,Ende$
Put 154,39,Brisk$
Print At(32,12);Player$
Figna&=0
Figsez&=0
For I&=3 To 0 Step -1
Put 30,I&*13*8,Demofigur$(I&)
Deffill 0,0,0
Pbox 80,I&*104+63,90,I&*104+63-(Lebem|(I&)-3)*5
If Lebem|(I&)>3
Figna&=Fign&
Fign&=I&
Put 113,Figna&*8*13+20,Auswahlpfeil$,15
Put 113,Fign&*8*13+20,Auswahlpfeil$
Endif
Next I&
If Lebem|(0)<4 And Lebem|(1)<4 And Lebem|(2)<4 And Lebem|(3)<4 Or Lebem|(0)>100 Or Lebem|(1)>100 Or Lebem|(2)>100 Or Lebem|(3)>100
@Ende
End
Endif
If Figsez&<3
Repeat
If Levels&=0
A$=Inkey$
If Val(A$)>0
Levels&=Val(A$)-1
Kein_highscore&=1
Endif
Endif
Select Stick(1)
Case 1
Figsez&=0
Repeat
Figna&=Fign&
Fign&=(Fign&+3) Mod 4
Put 113,Figna&*8*13+20,Auswahlpfeil$,15
Put 113,Fign&*8*13+20,Auswahlpfeil$
Inc Figsez&
Until Lebem|(Fign&)>3 Or Figsez&=4
Pause 15
Case 2
Figsez&=0
Repeat
Figna&=Fign&
Fign&=(Fign&+1) Mod 4
Put 113,Figna&*8*13+20,Auswahlpfeil$,15
Put 113,Fign&*8*13+20,Auswahlpfeil$
Inc Figsez&
Until Lebem|(Fign&)>3 Or Figsez&=4
Pause 15
Endselect
If Strig(1)=True
Ret&=1
Endif
Until Ret&=1 Or Figsez&=4
Endif
Ret&=0
Bmove Scr1%,Scr2%,32000
Void Xbios(5,L:Scr1%,L:Scr2%,-1)
Akt&=Fign&
Zu&=Akt&*2
Return
Procedure Name_input
' in dieser Procedure geben Sie ihren Namen ein!
Repeat
Until Inkey$=""
Graphmode 3
Deffill 1,1
Player$=String$(16,"_")
Print At(32,12);Player$
Pbox (Xposition&+31)*8,11*16,(Xposition&+32)*8-1,12*16-1
Bmove Scr1%,Scr2%,32000
Do
If Inp(-2)
Taste&=Inp(2)
Select Taste&
Case 226
@Hilfe_name_input
Case 212 To 221
Pname$(221-Taste&)=Player$
Case 187 To 196
Player$=Pname$(196-Taste&)
Case 8
If Xposition&>0
Player$=Left$(Player$,Xposition&-1)+Right$(Player$,16-Xposition&)+"_"
Dec Xposition&
Endif
Case 127
If Xposition&<17
Player$=Left$(Player$,Xposition&)+Right$(Player$,15-Xposition&)+"_"
Endif
Case 199
Player$=String$(16,"_")
Xposition&=0
Case 203
If Xposition&>0
Dec Xposition&
Endif
Case 205
If Xposition&<15
Inc Xposition&
Endif
Case 210
Player$=Left$(Player$,Xposition&)+"_"+Mid$(Player$,Xposition&+1)
Player$=Left$(Player$,16)
Case 13
Exit if True
Default
Mid$(Player$,Xposition&+1,1)=Chr$(Taste&)
If Xposition&<15
Inc Xposition&
Endif
Endselect
Print At(32,12);Player$
Pbox (Xposition&+31)*8,11*16,(Xposition&+32)*8-1,12*16-1
Endif
Bmove Scr1%,Scr2%,32000
Loop
While Instr(Player$,"_")>0
Mid$(Player$,Instr(Player$,"_"))=" "
Wend
If Player$=" "
Player$="Mister X"
Endif
Player$=Trim$(Player$)
Player$=Left$(Space$((16-Len(Player$))/2)+Player$+" ",16)
W&=112
Put 203,265,Ende$
Pbox 202+W&,264,202+107+W&,265+18
Bmove Scr1%,Scr2%,32000
Hilfsel&=1
Repeat
Select Stick(1)
Case 4 !links
If Hilfsel&=1
Hilfsel&=0
Pbox 202+W&,264,202+W&+107,265+18
Pbox 202,264,202+107,265+18
Endif
Case 8 !rechts
If Hilfsel&=0
Hilfsel&=1
Pbox 202+W&,264,202+W&+107,265+18
Pbox 202,264,202+107,265+18
Endif
Endselect
Bmove Scr1%+264*80,Scr2%+264*80,1600
Until Strig(1)<>0
Repeat
Until Strig(1)=0
Pause 10
If Hilfsel&=0
@Highscor_schreiben
Showm
Stick 0
Void Xbios(5,L:Scr1%,L:Scr1%,-1)
End
Endif
Graphmode 1
Return
Procedure Hilfe_name_input
' Diese Schrift k"+Chr$(148)+"nnen Sie bewundern, fals Sie w"+Chr$(132)+"hrend der Eingabe Ihres
' Namens Help dr"+Chr$(129)+"cken!
Void Xbios(5,L:Scr2%,L:Scr2%,-1)
Cls
Print
Print " Hilfe zur Tastenbelegung :"
Print
Print " - Insert : Durch den Druck dieser Taste wird an der Position des Kursors"
Print " ein Leerzeichen (_) einger"+Chr$(129)+"ckt !"
Print
Print " - Clr Home: Durch den Druck dieser Taste wird der momentane Name gel"+Chr$(148)+"scht !"
Print
Print " - Pfeile : (rechts\links)Durch diese beiden Tasten kann auf die Position "
Print " des Kursors einflu"+Chr$(158)+" genommen werden !"
Print
Print " - Delete : Diese Taste bewirkt , da"+Chr$(158)+" das Zeichen , welches sich unter dem"
Print " Kursor befindet gel"+Chr$(148)+"scht und der Rest des Namens aufger"+Chr$(129)+"ckt"
Print " wird !"
Print
Print " - Backspace: Diese Taste erm"+Chr$(148)+"glicht es dem User das Zeichen links vom Kursor"
Print " zu l"+Chr$(148)+"schen und gleichzeitig den Rest der Zeichenkette aufr"+Chr$(129)+"cken"
Print " zu lassen !"
Print
Print " - F1 - F10: Mit diesen Tasten kann man einen gespeicherten Namen aufrufen !"
Print
Print " - Schift und F1 - F10 : Diese Tastenkombination speichert den momentanen "
Print " Namen auf der entsprechenden F-Taste !(Geeignet bei nehreren Spielern)"
Print " (Am anfang befinden sich "+Chr$(129)+"brigens auch schon Namen im Speicher!)"
Void Inp(2)
Bmove Scr1%,Scr2%,32000
Void Xbios(5,L:Scr1%,L:Scr2%,-1)
Return
Procedure Hilfe
' Diese Schrift k"+Chr$(148)+"nnen Sie bewundern, fals Sie w"+Chr$(132)+"hrend des Spiels Help dr"+Chr$(129)+"cken!
Void Xbios(5,L:Scr2%,L:Scr2%,-1)
Cls
Print
Print " Hilfe:"
Print
Print " - Die Funktionsweisen der Steine zu erkl"+Chr$(132)+"ren w"+Chr$(132)+"re zu komplex.Deshalb m"+Chr$(129)+"ssen"
Print " Sie sich selber durchprobieren.(Oder in die Anleitung gucken!)"
Print
Print " - Wenn sie nicht in der Lage sind das momentane Hindernis zu "+Chr$(129)+"berwinden,"
Print " dann k"+Chr$(148)+"nnen sie sich durch den Druck auf die F-10 Taste weiter scrollen"
Print " lassen.Diese L"+Chr$(148)+"sung kostet sie allerdings einen Lebenspunkt."
Print
Print " - Ist nach ihrer Meinung ein Fehler aufgetaucht,dann schreiben sie mir bitte."
Print " Beschreiben sie,welche beweglichen Dinge auf dem Spielfeld sind oder es"
Print " geradeeben noch waren."
Print
Print " - Auch f"+Chr$(129)+"r Vorschl"+Chr$(132)+"ge zur Erweiterung/Verbesserung habe ich immer ein offenes"
Print " Ohr."
Print
Print " Schreiben sie an:"
Print " Folke Rinneberg"
Print " Uhlandstra"+Chr$(158)+"e 78"
Print " 2105 Seevetal 1"
Print
Print " Dieses Programm ist Public Domain(Frei weiterkopierbar)"
Void Inp(2)
Bmove Scr1%,Scr2%,32000
Void Xbios(5,L:Scr1%,L:Scr2%,-1)
Return
Procedure Ende
' Wenn das Spiel zu ende ist(entweder Sie haben alle Level geschaft oder
' Sie haben keine Leben mehr)bekommen Sie f"+Chr$(129)+"r jedes Verblibene Leben 350
' Punkte.
For I&=0 To 3 ! 1 Figuren 0 bis 3 durchlaufen lassen
While Lebem|(I&)>3 ! 2 Solange die momentane Figur noch Leben besitzt
Add Punkte%,350 ! Restleben werden zu Punkten(1Leben=350 Punkte)
Dec Lebem|(I&) ! Leben um 1 ernidrigen
Wend ! 2 Ende
Next I& ! 1 Ende
@Besten_liste
Levels&=0
Void Xbios(5,L:Scr1%,L:Scr2%,-1)
@New_start
Return
Procedure Vorspann
' Diese Procedure steuert die bescheidene Demo, welche Sie am Anfang
' bewundern d"+Chr$(129)+"rfen
Put 244,152,Inp$
Put 230,220,Ianthr$
Put 203,265,Ende$
For I&=1 To 200
Put 154,39,Briskb$
Put I&,39,Brisk$,7
Vsync
Bmove Scr1%,Scr2%,8800
Next I&
For I&=200 To 154 Step -1
Put 154,39,Briskb$
Put I&,39,Brisk$,7
Vsync
Bmove Scr1%,Scr2%,8800
Next I&
@Name_input
Return
Procedure Besten_liste
' In diese Procedure wird dein Name in die Bestenliste einsortiert und
' die Bestenliste angezeigt!
Void Xbios(5,L:Scr2%,L:Scr2%,-1)
Deffill 1,1,1
Wplatz&=0
Pbox 0,0,639,399
Put 174,30,Titel$
Lpoke Xbios(14,1)+6,0
Platz&=100
If Kein_highscore&=0
For J&=99 Downto 0
If Punkte%>Score%(J&)
Platz&=J&
Endif
Next J&
If Platz&<100
Anz&=0
For I&=0 To 99
If Mid$(Score$,I&*16+1,16)=Player$
Inc Anz&
Void2&=I&
Endif
Next I&
If Anz&=3 And Platz&=<Void2&
Score$=Left$(Score$,Void2&*16)+Mid$(Score$,Void2&*16+17)
Delete Score%(Void2&)
Insert Score%(Platz&)=Punkte%
Score$=Left$(Score$,Platz&*16)+Player$+Mid$(Score$,Platz&*16+1,(99-Platz&)*16)
Wplatz&=Platz&
Else
If Anz&<3
Insert Score%(Platz&)=Punkte%
Score$=Left$(Score$,Platz&*16)+Player$+Mid$(Score$,Platz&*16+1,(99-Platz&)*16)
Wplatz&=Platz&
Endif
Endif
Endif
Endif
Kein_highscore&=0
Print ""+Chr$(27)+"p";
Repeat
If Platz&>6 And Platz&<93
J2&=Platz&-6
Else if Platz&>92
J2&=87
Else
J2&=0
Platz&=6
Endif
For J&=J2& To J2&+12
Inc Hi&
H2$=Mid$(Score$,J&*16+1,16)
Print At(20,Hi&+5);Using "###",J&+1
Print At(24,Hi&+5);H2$
Print At(41,Hi&+5);Using "##########",Score%(J&)
If Wplatz&>0
Void&=Wplatz&-J2&
Deffill 1,1,1
If Void&<13 And Void&>-1
Pbox 120,80,160,288
Pbox 402,80,442,288
Put 128,80+Void&*16,Pfeill$
Put 402,80+Void&*16,Pfeilr$
Else if Void&<14 And Void&>-2
Pbox 120,80,160,288
Pbox 402,80,442,288
Endif
Endif
Next J&
Hi&=0
Lpoke Xbios(14,1)+6,0
A&=Inp(2)
If A&=200
Platz&=(Platz&+1)
If Platz&>93
Platz&=93
Endif
Else if A&=208
Dec Platz&
Endif
Until A&=13
Print ""+Chr$(27)+"q";
Bmove Scr1%,Scr2%,32000
Void Xbios(5,L:Scr1%,L:Scr2%,-1)
Return
Procedure Score_bak
' Wenn die Datei B__SCORE.DAT nicht in ordnung ist und man sich daf"+Chr$(129)+"r entschieden
' hat das Backuk einzuladen, dann kommt man in diese Procedure, welche
' B_SCORE.BAK einlie"+Chr$(158)+"t!
Close
If Exist("run_jump\b__score.bak")
Open "i",#1,"run_jump\b__score.bak"
If Lof(#1)=2004
Scorec%=Cvl(Input$(4,#1))
Score$=Input$(1600,#1)
B%=Cvl(Mid$(Score$,0,4))
For I&=0 To 398
B%=B% Xor Cvl(Mid$(Score$,4+I&*4,4))
Next I&
For I&=0 To 99
Score%(I&)=Cvl(Input$(4,#1))
B%=B% Xor Score%(I&)
Next I&
If B%<>Scorec%
Fehler$="Die Daten in B__Score.bak sind nicht korrekt!"
@Fehler
Endif
Else
Fehler$="B__Score.bak hat die faltsche L"+Chr$(132)+"nge!"
@Fehler
Endif
Close
Else
Fehler$="B__Score.bak ist nicht auf dieser Diskette!"
@Fehler
Endif
Return
Procedure Highscor_einlesen
' Hier wird der Highscore am Anfang des Sieles eingeladen!
If Exist("run_jump\b__score.dat")
Open "i",#1,"run_jump\b__score.dat"
If Lof(#1)=2004
Scorec%=Cvl(Input$(4,#1))
Score$=Input$(1600,#1)
B%=Cvl(Mid$(Score$,0,4))
For I&=0 To 398
B%=B% Xor Cvl(Mid$(Score$,4+I&*4,4))
Next I&
For I&=0 To 99
Score%(I&)=Cvl(Input$(4,#1))
B%=B% Xor Score%(I&)
Next I&
If B%<>Scorec%
Fehler$="Die Daten in B__Score.dat sind nicht korrekt!"
@Fehler
Score_bak
Endif
Else
Fehler$="B__Score.dat hat die faltsche L"+Chr$(132)+"nge!"
@Fehler
Score_bak
Endif
Close
Else
Fehler$="B__Score.dat ist nicht auf dieser Diskette!"
@Fehler
Score_bak
Endif
Return
Procedure Highscor_schreiben
' in dieser Procedure wird der momentan auf der Diskette existierende Highscore
' mit der Extension ".BAK" vesehen und der neue mit der Extention ".DAT"
' gespeichert!
B%=Cvl(Left$(Score$,4))
For I&=0 To 398
B%=Xor(B%,Cvl(Mid$(Score$,I&*4+4,4)))
Next I&
For I&=0 To 99
B%=B% Xor Score%(I&)
Next I&
If Exist("run_jump\b__score.dat")
Open "i",#1,"run_jump\b__score.dat"
I&=Lof(#1)
Close
If I&=2004
If Exist("run_jump\b__score.bak")
Kill "run_jump\b__score.bak"
Endif
Rename "run_jump\b__score.dat" As "run_jump\b__score.bak"
Endif
Endif
Open "o",#1,"run_jump\b__score.dat"
Print #1,Mkl$(B%);
Print #1,Score$;
For I&=0 To 99
Print #1,Mkl$(Score%(I&));
Next I&
Close
Return
Procedure Neuer_levelrekord
' wenn deine Punkte in dem momentanen Level h"+Chr$(148)+"her waren, als der Levelrekord,
' dann speichert diese Procedure den neuen Levelrekord!
Hik&=0
' ersten 41 Bytes aktualisieren (auch xor-Code neu bestimmen)
A$=Right$("000"+Str$(Levels&),3) !3-Stellig machen
Open "i",#1,"levels\level"+A$+".lev" !
Void Cvl(Input$(4,#1))
For I&=0 To 9
Code%=Code% Xor Cvl(Input$(4,#1))
Next I&
Close
Open "u",#1,"levels\level"+A$+".lev" !Datei "+Chr$(148)+"ffnen
Print #1,Mkl$(0);
Print #1,Erbauer$;
Print #1,Mkl$(Maxpunkte%);
Print #1,Maxpunktename$;
Print #1,Chr$(Lebenverlust&+128);
Close
Open "i",#1,"levels\level"+A$+".lev" !Datei "+Chr$(148)+"ffnen
Void Cvl(Input$(4,#1))
For I&=0 To 9
Code%=Code% Xor Cvl(Input$(4,#1))
Next I&
Close
Open "u",#1,"levels\level"+A$+".lev" !Datei "+Chr$(148)+"ffnen
Print #1,Mkl$(Code%);
Close
Return
Procedure Fehler
' wenn ein Fehler in einer der Dateien dieses Programms entdeckt wird,
' dann wird in dieser Procedure eine Ausgabe auf dem Bildschirm gemacht!
Void Xbios(5,L:Scr2%,L:Scr2%,-1)
Cls
Print At(1+(80-Len(Fehler$))/2,5);Fehler$ ! Ausgabe von fehler$ auf dem Bildschirm
Print Space$((78-Len(Fehler$))/2)+String$(Len(Fehler$)+2,"*")
Print Space$((76-Len(Fehler$))/2)+String$(Len(Fehler$)+6,"*")
Print
Print
Print
Print " Wenn Sie nicht verstehen,wie dieser Fehler auftauchen konnte"
Print " und/oder sie ihn nicht beseitigen k"+Chr$(148)+"nnen,dann schicken Sie"
Print " mir ihre Diskette mit adressierten und frankiertem R"+Chr$(129)+"ckumschlag."
Print " Ich werde dann die defekte Datei durch die Orginaldatei ersetzen!"
Print
Print " Folke Rinneberg"
Print " Uhlandstra"+Chr$(158)+"e 78"
Print " 2105 Seevetal 1"
Print " Geb.am29.6.1973"
Print
Print
Print " Sie haben doch nicht etwa versucht die Datei zu ver"+Chr$(132)+"ndern?"
Print
Print " ( Taste dr"+Chr$(129)+"cken! )"
Void Inp(2)
If Instr(Fehler$,"B__Score.dat",1)>0
Cls
Stick 0
Lpoke Xbios(14,1)+6,0
Alert 0,"Soll das Backub|eingeladen werden? ",1," Ja | Nein ",Alert&
Stick 1
If Alert&=2
End
Else
Bmove Scr1%,Scr2%,32000
Void Xbios(5,L:Scr1%,L:Scr2%,-1)
Endif
Else
End
Endif
Return
Procedure Monsterauflosen
' Wenn ein Monter dich ber"+Chr$(129)+"hrt oder du ein Monster abschie"+Chr$(158)+"t, dann mu"+Chr$(158)+" es
' vom Bildschirm gel"+Chr$(148)+"scht werden (Hintergrund restaurieren)
' mb :Die Breite des Monsters (wenn mb=0 wird der Hintergrund nicht restauriert)
' mh :Die H"+Chr$(148)+"he des Monsters
Select Monstertyp&(Tod&)
Case 111,96
Mb&=0
Case 112
Mb&=15
Mh&=8
Case 94
Mb&=19
Mh&=19
Case 95
Mb&=9
Mh&=9
Case 100,98
Mb&=39
Mh&=19
Case 104
Mb&=39
Mh&=20
Case 96 To 99,105,114
Mb&=39
Mh&=39
Case 101,102
Mb&=29
Mh&=39
Case 103
Mb&=39
Mh&=15
Case 106
Mb&=19
Mh&=39
Case 107
Mb&=39
Mh&=17
Case 109
Mb&=31
Mh&=25
Case 115
Mb&=0
Endselect
If X&(Tod&)>=0
If X&(Tod&)+Mb&+1<=640
If Y&(Tod&)>=0
If Y&(Tod&)+Mh&+1<=400
' Monster befindet sich vollst"+Chr$(132)+"ndig auf dem Bildschirm
Rc_copy Scr1%,X&(Tod&),Y&(Tod&),Mb&+1,Mh&+1 To Scr2%,X&(Tod&),Y&(Tod&)!Leeren Hintergrund r"+Chr$(129)+"ber kopieren
Endif
Endif
Endif
Endif
Return
Procedure Schuss_weg
' Wenn dein Schuss den Sichtbereich verl"+Chr$(132)+""+Chr$(158)+"t ist er nicht mehr aktiv (Es kann wieder geschossen werden!)
If Schussr&>0
If Schussx&>-1
If Schussx&<640
If Schussy&>-1
If Schussy&<400
Rc_copy Scr1%,Schussx&,Schussy&,8,8 To Scr2%,Schussx&,Schussy&
Endif
Endif
Endif
Endif
Schussr&=0
Endif
Return
Data 11073,14730,11980,12414,12172,7257,7572,5127,5732,5810,5902,6204,4007,6608
Data 5202,7387,8530,5095,5045,4539,4155,4372,4999,6623,5023,7209,8016,5661,5968
Data 3994,3171,2858,10772,10164,8124,7421,8177,8759
Data " Der Looser "," Jemand anderes "," Wer bin ich ?? "
Data "Ich bleib Anonym"," Namen sind egal"," Uninteressant "
Data " Niemand "," Nobody "," Gunnar Zarncke "
Data " * Thin Rinni * "
|