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

   10! Programm: R+NIM  VERSION 1
   20 CLEAR 100
   30 A1$="HEIMCOMPUTER robotron Z9001"
   40 A2$="SPIEL":A9=2:A3$="R+NIM"
   50 A4$="NIM-SPIEL"
   60 A5$="EINE EINFACHE VARIANTE"
   70 WINDOW:BORDER A9:INK 8:PAPER 1:CLS
   80 PRINT INK 1;AT(0,0);" "
   90 PRINT AT(2,2);A1$:PRINT AT(4,2);"",STRING$(34,""),""
  100 PRINT AT(5,2);"":PRINT AT(5,37);""
  110 PRINT AT(6,2);"",STRING$(34,""),""
  120 PRINT AT(5,3);A2$:PRINT INK 3;AT(5,29);A3$
  130 INK A9:PRINT AT(8,2);STRING$(36,"")
  140 FOR I=9 TO 13:PRINT AT(I,2);"":PRINT AT(I,37);"":NEXT I
  150 PRINT AT(14,2);STRING$(36,"")
  160 INK 8:PRINT AT(10,36-LEN(A4$));A4$:PRINT AT(12,36-LEN(A5$));A5$
  170 PRINT INK 3;AT(18,2);"VEB ROBOTRON-MESSELEKTRONIK"
  180 PRINT INK 3;AT(19,8);">OTTO SCHOEN< DRESDEN":GOSUB 230
  190 INK 3:PRINT AT(19,2);"ERLAEUTERUNGEN:   (J)/N    "
  200 PRINT AT(18,2);STRING$(27," ")
  210 PRINT INK 4;AT(22,31);">ENTER<":WINDOW 19,19,30,36:JN$="J":INPUT "";JN$
  220 GOTO 260
  230 PRINT INK 4;AT(22,31);">ENTER<"
  240 T$=INKEY$:IF T$=""THEN:GOTO 240
  250 RETURN
  260 PAPER 5:BORDER 5:INK 8:WINDOW:CLS
  270 IF JN$="N"THEN GOTO 410
  280 PRINT TAB(5);"DIES IST EIN NIM-SPIEL"
  290 PRINT TAB(5);STRING$(22,CHR$(226))
  300 PRINT:PRINT "GEGEBEN IST EINE MENGE VON N GEGEN-":PRINT
  310 PRINT "STAENDEN (Z.B. STREICHHOELZER). DER":PRINT
  320 PRINT "SPIELER UND DER RECHNER NEHMEN AB-":PRINT
  330 PRINT "WECHSELND MINDESTENS 1, HOECHSTENS":PRINT
  340 PRINT "K HOELZER WEG. ES VERLIERT DERJENIGE,":PRINT
  350 PRINT "DER DAS LETZTE HOLZ NEHMEN MUSS.":PRINT
  360 PRINT:PRINT "VIEL SPASS - UND LASSEN SIE SICH":PRINT
  370 PRINT "DURCH EVENTUELLE NIEDERLAGEN NICHT":PRINT
  380 PRINT "GLEICH ENTMUTIGEN.":PRINT
  390 INK 6:INPUT "BEGINN DES SPIELS MIT ENTER";B:INK 8
  400 CLS
  410 PRINT AT(0,1);"AUSGANGSANZAHL  IST "
  420 GOTO 530
  430 WINDOW 23,23,0,39
  440 INK 4:PAPER 1:INPUT "4<N<=120 !!! - ENTER";B:INK 8:PAPER 5:CLS:GOTO 530
  450 WINDOW 23,23,0,39
  460 INK 4:PAPER 1:INPUT "DAS IST UNFAIR - K>1 WAEHLEN!! - ENTER";B:INK 8:PAPER 5
  470 CLS:GOTO 620
  480 WINDOW 23,23,0,39
  490 INK 4:PAPER 1:INPUT "K<=N/2 !!! - ENTER";B:INK 8:PAPER 5:CLS:GOTO 620
  500 WINDOW 23,23,0,39
  510 INK 4:PAPER 1:INPUT "WIR KENNEN NUR GANZE HOELZER! - ENTER";B:INK 8:PAPER 5
  520 CLS
  530 WINDOW 21,21,0,39:INK 6:INPUT "ZAHL DER HOELZER (4<N<=120) ?";N:INK 8
  540 IF N-INT(N)<>0 THEN 510
  550 IF N>120 OR N<5 THEN 430
  560 PRINT AT(0,20);"   "
  570 ZK$=STR$(N):L=LEN(ZK$)
  580 PRINT AT(0,20);"    "
  590 PRINT PAPER 1;AT(0,21+4-L);RIGHT$(ZK$,L-1)
  600 PRINT AT(0,25);"HOELZER"
  610 AU=N
  620 WINDOW 21,21,34,39:INK 6
  630 K$=STR$(INT(N/2)):K$=RIGHT$(K$,LEN(K$)-1)
  640 PRINT AT(21,0);"AUF EINMAL WEGNEHMBAR (1<K<=",K$,") ?"
  650 INPUT "";K :WINDOW 21,21,0,39:CLS
  660 INK 8:IF K>N/2 THEN 480
  670 IF K<2 THEN GOTO 450
  680 IF K-INT(K)<>0 THEN GOTO 500
  690 PRINT AT(1,0);"MAN DARF HOECHSTENS"
  700 PRINT AT(1,21);"  "
  710 ZK$=STR$(K):L=LEN(ZK$)
  720 PRINT PAPER 1;AT(1,21+4-L);RIGHT$(ZK$,L-1)
  730 PRINT AT(1,25);"HOELZER NEHMEN"
  740 PRINT AT(2,0);STRING$(40,CHR$(160))
  750 K5=1:J=1:M=0:Z=8:S=8
  760 FOR I=1 TO N
  770 PRINT AT(Z,S+I+M-20*(K5-1));CHR$(244)
  780 INK 2:PRINT AT(Z-1,S+I+M-20*(K5-1));CHR$(223):INK 8
  790 IF I<>N THEN 810
  800 LZ=Z:LS=S+I+M-20*(K5-1)
  810 IF I=5*J THEN 830
  820 GOTO 850
  830 J=J+1:M=M+1
  840 PRINT AT(Z,S+I+M-20*(K5-1));" "
  850 IF I=20*K5 THEN 870
  860 GOTO 900
  870 K5=K5+1
  880 Z=Z+2
  890 M=0
  900 NEXT I
  910 GOTO 940
  920 WINDOW 23,23,0,39
  930 INK 4:PAPER 1:INPUT "FALSCHE EINGABE - ENTER";B:INK 8:PAPER 5:CLS
  940 WE=0
  950 WINDOW 21,21,0,39:INK 6:INPUT "WER BEGINNT: (0)-RECHNER; 1-SPIELER";WE:INK 8
  960 WO$="XXXXXXX"
  970 T6$="DER "+WO$+" NIMMT"
  980 PRINT AT(4,0);T6$
  990 PRINT AT(4,22);"HOELZER (HOLZ)"
 1000 PRINT AT(5,0);"ES  SIND NUN NOCH"
 1010 PRINT AT(5,22);"HOELZER (HOLZ) DA"
 1020 PRINT AT(6,0);STRING$(40,CHR$(251))
 1030 IF WE=1 THEN 1460
 1040 IF WE<>0 THEN 930
 1050 GOTO 1070
 1060 WINDOW 21,21,0,39:INK 6:INPUT "ZUG DES RECHNERS NACH ENTER";B:INK 8
 1070 R=N-(INT((N-1)/(K+1))*(K+1)+1)
 1080 IF R<>0 THEN 1130
 1090 R=INT(RND(K)*K)
 1100 IF R=0 THEN 1090
 1110 IF R<=N THEN 1130
 1120 R=1
 1130 N=N-R
 1140 IF N>0 THEN 1220
 1150 PRINT AT(7,9);" "
 1160 WINDOW 8,20,0,39:INK 2:PAPER 1:CLS
 1170 WINDOW 8,20,7,39:PRINT:PRINT:PRINT "Ich fuerchte, Sie haben":PRINT
 1180 PRINT "das System erkannt.":PRINT:PRINT
 1190 PRINT:INK 4:PRINT "Ich gebe mich geschlagen!":INK 2
 1200 WINDOW 22,22,0,39:INK 6:PAPER 5:INPUT "ENTER";B:INK 8
 1210 GOTO 1730
 1220 PRINT AT(4,4);"RECHNER"
 1230 PRINT AT(4,18);"   "
 1240 ZK$=STR$(R):L=LEN(ZK$)
 1250 PRINT PAPER 2;AT(4,18+4-L);RIGHT$(ZK$,L-1)
 1260 PRINT AT(5,18);"   "
 1270 ZK$=STR$(N):L=LEN(ZK$)
 1280 PRINT PAPER 2;AT(5,18+4-L);RIGHT$(ZK$,L-1)
 1290 FOR I=1 TO R
 1300 PRINT AT(LZ,LS);" "
 1310 PRINT AT(LZ-1,LS);" "
 1320 LS=LS-1
 1330 IF LS=14 OR LS=20 OR LS=26 THEN LS=LS-1
 1340 IF LS>8 THEN 1360
 1350 LS=31:LZ=LZ-2
 1360 NEXT I
 1370 GOTO 1460
 1380 WINDOW 23,23,0,39
 1390 INK 4:PAPER 1:INPUT "SOVIELE SIND NICHT ZUGELASSEN! - ENTER";B:INK 8:PAPER 5
 1400 CLS:GOTO 1460
 1410 WINDOW 23,23,0,39
 1420 INK 4:PAPER 1:INPUT "SOVIELE HABEN WIR GAR NICHT!! - ENTER";B:INK 8:PAPER 5
 1430 CLS:GOTO 1460
 1440 WINDOW 23,23,0,39
 1450 INK 4:PAPER 1:INPUT "NICHT MOGELN!! - ENTER";B:INK 8:PAPER 5:CLS
 1460 WINDOW 21,21,0,39:INK 6:INPUT "WIEVIELE HOELZER NIMMT DER SPIELER?";R:INK 8
 1470 IF R>K THEN 1380
 1480 IF R>N THEN 1410
 1490 IF R<=0 THEN 1440
 1500 N=N-R
 1510 PRINT AT(4,4);"SPIELER"
 1520 PRINT AT(4,18);"   "
 1530 ZK$=STR$(R):L=LEN(ZK$)
 1540 PRINT PAPER 2;AT(4,18+4-L);RIGHT$(ZK$,L-1)
 1550 PRINT AT(5,18);"   "
 1560 ZK$=STR$(N):L=LEN(ZK$)
 1570 PRINT PAPER 2;AT(5,18+4-L);RIGHT$(ZK$,L-1)
 1580 FOR I=1 TO R
 1590 PRINT AT(LZ,LS);" "
 1600 PRINT AT(LZ-1,LS);" "
 1610 LS=LS-1
 1620 IF LS=14 OR LS=20 OR LS=26 THEN LS=LS-1
 1630 IF LS>8 THEN 1650
 1640 LS=31:LZ=LZ-2
 1650 NEXT I
 1660 IF N>0 THEN 1060
 1670 WINDOW 8,20,0,39:INK 2:PAPER 1:CLS
 1680 WINDOW 8,20,1,39:PRINT:PRINT:PRINT "Ich muss Ihnen die traurige Mitteilung"
 1690 PRINT:PRINT "machen, dass Sie verloren haben.":PRINT:PRINT
 1700 INK 4:PRINT "Sicher klappt es beim naechsten Mal":PRINT
 1710 PRINT "schon besser!":INK 2
 1720 WINDOW 22,22,0,39:INK 6:PAPER 5:INPUT "ENTER";B:INK 8       
 1730 INK 6:JN$="J":INPUT "NEUES SPIEL: (J)/N";JN$
 1740 IF JN$="N"THEN GOTO 1770
 1750 WINDOW 0,23,0,39:INK 8
 1760 GOTO 400
 1770 WINDOW:CLS:INK 8:PRINT TAB(14);"D A N K E"
 1780 END