r+hobbit_sss.tap
r+hobbit_sss.z80
Zeichensatz UTF-8+Z1013()+CTRL()-ohne Umlaute(äöüß)

    0!RVB BASIC-MIX2
    1 A1$="KLEINCOMPUTER robotron KC85/1 & KC87"
    2 A2$="SPIEL":A9=2
    4 A3$="R+HOBBIT"
    6 A4$="HASE UND WOELFE"
    8 A5$="EIN STRATEGIE-WETTSTREIT"
   10! AUTOR:SCHROETER
   16! INITIALWERTE 
   18 BORDER A9:INK 8:PAPER 1:WINDOW:CLS:K$="YXCASDQWE"
   90 GOSUB 100:GOTO 1000
   96! UNTERPROGRAMME ===============UP
   98! TITELBILD --------------------UP
  100 PRINT AT(2,2);A1$:PRINT AT(4,2);"",STRING$(34,""),""
  102 PRINT AT(5,2);"":PRINT AT(5,37);""
  104 PRINT AT(6,2);"",STRING$(34,""),""
  106 PRINT AT(5,3);A2$:PRINT INK 3;AT(5,29);A3$
  108 INK A9:PRINT AT(8,2);STRING$(36,"")
  110 FOR I=9 TO 13:PRINT AT(I,2);"":PRINT AT(I,37);"":NEXT I
  112 PRINT AT(14,2);STRING$(36,"")
  114 INK 8:PRINT AT(10,36-LEN(A4$));A4$:PRINT AT(12,36-LEN(A5$));A5$
  116 INK 3:PRINT AT(18,2);"VEB ROBOTRON-MESSELEKTRONIK"
  118 PRINT AT(20,2);">OTTO SCHOEN< DRESDEN":INK 8:PRINT AT(0,0);" "
  119! >ENTER< ---------------------UP
  120 PRINT INK 4;AT(22+EV,31+EV);">ENTER<":T$=INKEY$ 
  122 IF INKEY$=CHR$(13)THEN RETURN:ELSE 122
  999! HAUPTPROGRAMM ---------------HP
 1000 WINDOW:BORDER 1:PAPER 1:CLS:INK 4:DIM W(10,2),Z(20):VB=1:VW=1:EV=1
 1005 PRINT INK 2;TAB(8);"VARIANTENAUSWAHL":PRINT:PRINT
 1010 INPUT "SPIELERANZAHL (1...6):";SP
 1015 IF SP<>INT(SP)OR SP<1 OR SP>6 THEN PRINT CHR$(11);:GOTO 1010
 1020 PRINT:INPUT "RUNDENZAHL (1...10):";R
 1025 IF R<>INT(R)OR R<1 OR R>10 THEN PRINT CHR$(11):GOTO 1020
 1030 IF SP=1 THEN 1080
 1035 PRINT:PRINT "WERTUNGSVARIANTE":PRINT:PRINT " (1) SICHERHEITSSPIEL"
 1040 PRINT " (2) RISIKOSPIEL":PRINT
 1045 INPUT "VARIANTE (1/2):";VW:IF VW<>1 AND VW<>2 THEN PRINT CHR$(11);:GOTO 1045
 1050 PRINT:PRINT "SPIELVARIANTE":PRINT:PRINT " (1) ZUFAELLIGE ANFANGSBILDER"
 1055 PRINT " (2) JEDER SPIELER 1.-3.BILD GLEICH"
 1060 PRINT " (3) ALLE BILDER GLEICH":PRINT
 1065 INPUT "VARIANTE (1...3):";VB
 1070 IF VB<>1 AND VB<>2 AND VB<>3 THEN PRINT CHR$(11);:GOTO 1065
 1075 WINDOW:PRINT AT(0,0);" "
 1080 GOSUB 120:CLS:PRINT INK 2;TAB(4);"EINGABE DER SPIELERNAMEN":PRINT:PRINT
 1085 DIM P(R,SP),N$(SP):FOR I=1 TO SP:PRINT
 1090 PRINT INK 4;"NAME SPIELER";I;:INPUT ":";N$:N$(I)=LEFT$(N$,4):NEXT I
 1095 WINDOW:PRINT AT(0,0);" ":GOSUB 120
 1100 FOR RU=1 TO R:IF VB=1 THEN Z=1:ELSE FOR I=0 TO 20:Z(I)=-RND(1):NEXT I
 1105 FOR SS=1 TO SP:IF VB<>1 THEN Z=Z(0)
 1110 IF VB=3 THEN Z=Z(G)
 1115 WINDOW:PAPER 1:CLS:I=RND(Z)
 1120 INK 4:PRINT AT(0,0);"",STRING$(34,""),"":FOR I=1 TO 20:PRINT AT(I,0);""
 1125 PRINT AT(I,35);"":NEXT I:PRINT AT(21,0);"",STRING$(34,""),""
 1130 FOR I=1 TO 50-5*G:PRINT INK 3;AT(INT(20*RND(1)+1),INT(34*RND(1)+1));"":NEXT I
 1135 FOR I=0 TO 10
 1140 W(I,1)=INT(20*RND(1)+1):W(I,2)=INT(34*RND(1)+1)
 1145 IF I=0 THEN 1165
 1150 F=0:FOR J=0 TO I-1:IF W(I,1)=W(J,1)AND W(I,2)=W(J,2)THEN F=1:J=I
 1155 NEXT J:IF F=1 THEN 1140
 1160 PRINT INK 2;AT(W(I,1),W(I,2));"$"
 1165 NEXT I:N=0:B=0
 1170 PRINT INK 8;AT(W(0,1),W(0,2));"*"
 1175 INK 8:PRINT AT(14,37);"QWE":PRINT AT(15,37);"A*D":PRINT AT(16,37);"YXC"
 1180 PRINT AT(18,37);"":PRINT AT(19,37);"*":PRINT AT(20,37);"":INK 4
 1185 PRINT INK 5;AT(1,36);"RU":PRINT INK 2;AT(1,39);MID$(STR$(RU),2,1)
 1190 PRINT INK 2;AT(3,36);N$(SS):PRINT INK 5;AT(5,36);"BI"
 1195 PRINT INK 2;AT(5,38);RIGHT$(" "+MID$(STR$(G+1),2),2)
 1200 PRINT INK 4;AT(9,36);RIGHT$("   "+MID$(STR$(P),2),4)
 1205 IF N=3 THEN 1270
 1210 PRINT AT(23,30);"RICHTUNG ?":FOR I=1 TO 50:PRINT INK 2;AT(23,27);""
 1215 PAUSE 1:A$=CHR$(PEEK(36)):A=INSTR(A$,K$):IF A<>0 THEN I=100
 1220 PRINT INK 2;AT(23,27);"":PAUSE 1:NEXT I
 1225 PRINT AT(23,27);STRING$(13," "):IF A=0 OR A=5 THEN 1400
 1230 N=0:X=W(0,1)+(A>6)-(A<4)
 1235 Y=W(0,2)+(A=1 OR A=4 OR A=7)-(A=3 OR A=6 OR A=9)
 1240 PRINT AT(W(0,1),W(0,2));" ":A=PEEK(-5120+X*40+Y):IF A=36 THEN 1430
 1245 IF A=204 THEN 1420
 1250 IF A<>32 THEN 1425
 1255 B=B+1
 1260 IF X<>W(0,1)AND Y<>W(0,2)THEN B=0
 1265 W(0,1)=X:W(0,2)=Y:PRINT INK 8;AT(X,Y);"*"
 1270 W=0:H=1:C=0:FOR I=1 TO 10:X=W(I,1):Y=W(I,2):IF X=0 THEN 1370
 1275 IF H=0 THEN W=1:GOTO 1370
 1280 PRINT AT(X,Y);" ":L=W(0,1):S=W(0,2):W=W+1:IF RND(1)<.25 THEN 1325
 1285 IF RND(1)<.5 THEN 1305
 1290 X=X+(L<X)-(L>X)
 1295 Y=Y+(S<Y)-(S>Y)
 1300 GOTO 1335
 1305 IF G=0 THEN 1290
 1310 IF ABS(L-X)=ABS(S-Y)THEN 1290
 1315 IF ABS(L-X)>ABS(S-Y)THEN X=X+SGN(L-X):ELSE Y=Y+SGN(S-Y)
 1320 GOTO 1335
 1325 IF G<2 THEN 1285
 1330 X=X+SGN(2*RND(1)-1):Y=Y+SGN(2*RND(1)-1)
 1335 A=PEEK(-5120+X*40+Y):IF A=204 THEN 1495
 1340 IF A=36 THEN 1505
 1345 IF A=42 THEN H=0:BEEP
 1350 IF A<>32 AND A<>42 THEN 1500
 1355 IF ABS(L-X)+ABS(S-Y)=1 THEN C=C+1
 1360 PRINT INK 2;AT(X,Y);"$"
 1365 W(I,1)=X:W(I,2)=Y
 1370 NEXT I
 1375 IF H=0 THEN 1435
 1380 IF W=0 THEN 1525
 1385 IF C=0 THEN B=0
 1390 IF B+SGN(C)>4 THEN 1440
 1395 GOTO 1205
 1400 N=N+1:IF N=2 THEN PRINT AT(23,0);"NICHT EINSCHLAFEN!":BEEP:PAUSE 20
 1405 IF N=2 THEN PRINT AT(23,0);STRING$(26," ")
 1410 IF N=3 THEN PRINT INK 2;AT(23,27);"EINGESCHLAFEN":BEEP
 1415 GOTO 1270
 1420 A$="HASE GEGEN BAUM GEPRALLT !":GOTO 1445
 1425 A$="HASE GEGEN MAUER GELAUFEN !":GOTO 1445
 1430 A$="UAAAAAAH  GENAU IN DEN RACHEN !":GOTO 1445
 1435 A$="HASE LEIDER GEFRESSEN !":GOTO 1445
 1440 A$="GERADEAUS SIND WIR SCHNELLER !"
 1445 PRINT AT(23,0);STRING$(40," "):PRINT INK 2;AT(23,0);A$:BEEP
 1450 PAUSE 30:WINDOW 1,20,1,34:CLS:PRINT INK 4;AT(0,0);"":INK 3
 1455 IF VW=2 THEN 1465
 1460 P(RU,SS)=P(RU,SS)+P
 1465 IF G=0 THEN PRINT AT(8,4);"IM ERSTEN BILD VERLOREN !":GOTO 1570
 1470 IF VW=1 THEN PRINT AT(8,4);"SIE ERREICHTEN",P(RU,SS),"PUNKTE":GOTO 1570
 1475 PRINT AT(6,6);"SCHADE SIE HABEN ZU VIEL"
 1480 PRINT AT(8,12);"RISKIERT !!!"
 1485 PRINT AT(12,3);"SIE HAETTEN",P(RU,SS),"PUNKTE GEHABT"
 1490 P(RU,SS)=0:GOTO 1570
 1495 PRINT INK 2;AT(23,0);"WOLF GEGEN BAUM!":GOTO 1510
 1500 PRINT INK 2;AT(23,0);"WOLF AN DIE MAUER!":GOTO 1510
 1505 PRINT INK 2;AT(23,0);"WOLF FRISST WOLF!"
 1510 W(I,1)=0:P=P+INT(10+(3*RND(1)*(G+1))):W=W-1
 1515 PRINT INK 4;AT(9,36);RIGHT$("   "+MID$(STR$(P),2),4):BEEP:PAUSE 10
 1520 PRINT AT(23,0);STRING$(26," "):GOTO 1370
 1525 WINDOW 1,20,1,34:CLS:PRINT INK 2;AT(5,7);"H U R R A A A A A A !"
 1530 PRINT INK 4;AT(0,0);"":P(RU,SS)=P(RU,SS)+P:P=0
 1535 PRINT INK 2;AT(8,6);"EIN GANZES RUDEL WOELFE":PRINT INK 2;AT(10,13);"BESIEGT"
 1540 PRINT AT(23,0);STRING$(40," ")
 1545 PRINT AT(1,1);" ":G=G+1:IF VW=1 THEN PAUSE 50:WINDOW:CLS:GOTO 1110
 1550 PAUSE 20:PRINT INK 3;AT(14,3);"VERSUCHEN SIE NOCH EIN BILD ?"
 1555 PRINT INK 4;AT(23,34);"J/(N)":A$=INKEY$
 1560 A$=INKEY$:IF A$<>"J"AND A$<>"N"THEN 1560
 1565 IF A$="J"THEN WINDOW:CLS:GOTO 1110
 1570 PRINT AT(1,1);" ":GOSUB 120
 1575 G=0:P=0:NEXT SS
 1580 WINDOW 0,23,36,39:CLS:PRINT AT(23,0);STRING$(36," "):WINDOW 1,20,1,34
 1585 CLS:PRINT AT(1,1);" ":PRINT INK 2;AT(3,6);"RUNDENWERTUNG",RU
 1590 FOR I=1 TO SP:PRINT INK 5;AT(4+I*2,4);N$(I)
 1595 PRINT INK 4;AT(4+I*2,9);P(RU,I):PRINT INK 5;AT(4+I*2,14);"PUNKTE":NEXT I
 1600 GOSUB 120
 1605 NEXT RU
 1610 WINDOW:CLS:OUT 136,4:PRINT INK 2;AT(0,0);"ENDAUSWERTUNG"
 1615 PRINT INK 2;AT(1,0);STRING$(13,""):PRINT INK 6;AT(3,0);"RUNDE"
 1620 FOR I=1 TO SP:Z(I)=0:PRINT INK 3;AT(3,5*I+2);N$(I):NEXT I
 1625 FOR I=1 TO R:PRINT INK 6;AT(I+4,1);I:FOR J=1 TO SP:Z(J)=Z(J)+P(I,J)
 1630 PRINT INK 4;AT(I+4,5*J+2);P(I,J):NEXT J:NEXT I:I=I+5
 1635 PRINT INK 6;AT(I,0);"SUMME":FOR J=1 TO SP:PRINT INK 2;AT(I,5*J+2);Z(J):NEXT J
 1640 PRINT INK 4;AT(19,31);">ENTER<"
 1645 GOSUB 120:BORDER 1:CLS:INK 3:PRINT AT(6,6);"AUF WIEDERSEHEN!":PAUSE 50:CLS:END
 9000!ENDE HOBBIT