home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er
/
64ER_CD.iso
/
sh1x
/
sh17a.d64
/
knobel
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
1995-03-30
|
5KB
|
233 lines
1000 GOSUB1940
1005 IFA=0THENA=1:LOAD"KNOBEL MC",8,1
1009 S$=""
1010 N$="ABCDEFGHIJ"
1020 S(0)=17:S(1)=55:S(2)=60:S(3)=65
1030 S(4)=97:S(5)=177
1040 DIM ZI$(8),OP$(5),GL$(5)
1050 GOTO 2310: HAUPTROUTINE
1060 '
1070 ' ZI$(8) DIE EINGEGEBENEN 4 STEL-
1080 ' LIGEN ZAHLEN
1090 ' OP$(5) DIE EINGEGEBENEN
1100 ' OPERATOREN
1110 ' GL$(5) UMGEFORMTE GLEICHUNGEN
1120 ' ZU + UND * GLEICHUNGEN
1130 ' FORMTEN GLEICHUNG
1140 **********************************
1150 '
1160 ' DIE ZAHLEN- UND OPERATIONS-
1170 ' VARIABLE LOESCHEN
1180 '
1190 FORT=0TO5:OP$(T)=" ":NEXT
1200 FORT=0TO8:ZI$(T)=" ":NEXT
1210 RETURN
1220 '
1230 ' EINGABEROUTINE FUER EINE ZAHL
1240 '
1250 N=0:L=0
1260 H=13+INT(N/3)*65+N*5
1270 PRINTS$TAB(H+L)""MID$(ZI$(N),L+1,1)"[146]"RIGHT$(ZI$(N),3-L)
1280 GETA$:IFA$=""THEN1280
1290 IF(A$>="A" AND A$<="J")ORA$=" "THEN1320
1295 IFA$="[157]"ANDL>0THENL=L-1:GOTO1260
1296 IFA$="[157]"ANDL=0ANDN>0THENN=N-1:L=3:PRINTS$TAB(H)ZI$(N+1)
1297 IFA$=""THEN1330
1300 GOTO1260
1320 ZI$(N)=LEFT$(ZI$(N),L)+A$+RIGHT$(ZI$(N),3-L)
1330 PRINTS$TAB(H)ZI$(N)
1340 L=L+1:IFL=4THENN=N+1:L=0:IFN>8THENRETURN
1350 GOTO1260
1360 '
1370 ' EINGABEROUTINE FUER 9 ZAHLEN
1380 '
1390 N=0
1400 H$(0)=MID$(ZI$(N),1,1)
1410 H$(1)=MID$(ZI$(N),2,1)
1420 H$(2)=MID$(ZI$(N),3,1)
1430 H$(3)=MID$(ZI$(N),4,1)
1440 GOSUB1250
1450 PRINT" OK (J,N) ?"
1460 GETA$:IFA$=""THEN1460
1470 PRINT"[145] [145][145][145]"
1480 IFA$="N"THEN1390
1490 IFA$<>"J"THEN1450
1500 RETURN
1510 '
1520 ' EINGABEROUTINE FUER OPERATOREN
1530 '
1540 FORN=0TO5
1550 PRINTS$TAB(S(N))""OP$(N)"[146]"
1560 OP$(N)=""
1570 GETA$:IFA$=""THEN1570
1580 IFA$<>"+"ANDA$<>"-"ANDA$<>"*"ANDA$<>"/"THEN1570
1590 OP$(N)=A$:PRINTS$TAB(S(N))A$:NEXT
1600 PRINT" OK (J,N) ?"
1610 GETA$:IFA$=""THEN1610
1620 PRINT"[145] [145][145][145]"
1630 IFA$="N"THEN1540
1640 IFA$<>"J"THEN1600
1650 RETURN
1660 '
1670 ' GLEICHUNG ZU + ODER * GLEICHUNG
1680 ' UMFORMEN
1690 '
1700 A$=ZI$(0):B$=ZI$(1):C$=ZI$(2)
1710 O$=OP$(0):GOSUB1860:GL$(0)=D$
1720 A$=ZI$(3):B$=ZI$(4):C$=ZI$(5)
1730 O$=OP$(4):GOSUB1860:GL$(1)=D$
1740 A$=ZI$(6):B$=ZI$(7):C$=ZI$(8)
1750 O$=OP$(5):GOSUB1860:GL$(2)=D$
1760 A$=ZI$(0):B$=ZI$(3):C$=ZI$(6)
1770 O$=OP$(1):GOSUB1860:GL$(3)=D$
1780 A$=ZI$(1):B$=ZI$(4):C$=ZI$(7)
1790 O$=OP$(2):GOSUB1860:GL$(4)=D$
1800 A$=ZI$(2):B$=ZI$(5):C$=ZI$(8)
1810 O$=OP$(3):GOSUB1860:GL$(5)=D$
1820 RETURN
1830 '
1840 ' UMFORM ROUTINE
1850 '
1860 IFO$="+"THEND$="+"+A$+B$+C$
1870 IFO$="-"THEND$="+"+C$+B$+A$
1880 IFO$="*"THEND$="*"+A$+B$+C$
1890 IFO$="/"THEND$="*"+C$+B$+A$
1900 RETURN
1910 '
1920 ' BILDSCHIRMMASKE AUSDRUCKEN
1930 '
1940 PRINT"[147]":POKE53248+32,0:POKE53248+33,0
1950 PRINT"ERLAUBTE SYMBOLE SIND BUCHSTABEN
1960 [153]
1970 [153]": A,B,C,D,E,F,G,H,I,J"
1980 [153]
1990 [153]"UND RECHENOPERATIONEN
2000 PRINT
2010 PRINT": +,-,X,/
2020 [153]
2030 [153]"DIE ZAHLEN SIND MAXIMAL 4 STELLIG
2040 PRINT
2050 PRINT"---------------------------------------"
2060 PRINT:PRINT
2070 PRINT"
2080 [153]" OR--------------^
2090 PRINT" [221] = [221]
2100 [153]" (null) (null)
2110 PRINT" [221] = [221]
2120 [153]" (null)--------------(null)
2130 PRINT" [221] = [221]
2140 [153]" /--------------EXP
2150 PRINT"
2160 [153]"
2170 RETURN
2180 '
2190 'EINGEGEBENE GLEICHUNGEN UNLOESBAR
2200 '
2210 PRINT"UNLOESBAR !!!!"
2220 PRINT"[146]WEITER MIT TASTE"
2230 GETA$:IFA$=""THEN2230
2240 RUN
2250 ''''''''''''''''''''''''''''''''''
2260 ' '
2270 ' H A U P T - R O U T I N E '
2280 ' '
2290 ''''''''''''''''''''''''''''''''''
2300 '
2310 GOSUB 1940:REM BILD-MASKE
2320 GOSUB 1190:REM
2330 GOSUB 1390:REM EINGABE
2340 GOSUB 1540:REM
2350 GOSUB 1700:REM GLEICH. UMFORMEN
2355 GOSUB 2605:REM GLEICH. SORTIEREN
2356 GOSUB 2700:REM 0 UND 9 RAUSFINDEN
2360 FORT=0TO5
2365 POKE52320+T,255
2370 IFMID$(GL$(T),1,1)="+"THENPOKE52320+T,0
2375 NEXT
2380 FORT=0TO5
2385 FORX=2TO13
2390 P=ASC(MID$(GL$(T),X,1))-65
2395 IFP<0THENP=10
2399 POKE52222+T*16+X,P:NEXTX,T
2400 P=0:IFW0$<>""THENP=P+1
2401 IFW9$<>""THENP=P+1
2402 POKE829,P
2403 GOSUB 3005:REM ANEUP VORBEREITEN
2404 PRINT" BITTE WARTEN"
2405 SYS 12*4096:REM ******************
2406 IF PEEK(828)=0 THEN 2550
2410 FORT=0TO8:E$=""
2415 FORX=1TO4
2420 B$=MID$(ZI$(T),X,1)
2425 IFB$=" "THENE$=E$+B$:GOTO 2450
2430 P=ASC(B$)-65
2435 P=PEEK(52464+P)
2440 E$=E$+CHR$(PEEK(52448+P)+48)
2450 NEXTX
2455 ER$(T)=E$:NEXTT
2500 FORN=0TO8
2510 H=13+INT(N/3)*65+N*5
2520 PRINTS$TAB(H)ER$(N)
2530 NEXTN
2535 PRINT" FERTIG ! "
2540 GETA$:IFA$=""THEN2540
2545 RUN
2550 PRINT"[145]TJA...DAS IST MIR DOCH ETWAS ZU SCHWER."
2560 GETA$:IFA$=""THEN2560
2565 RUN
2600 '
2601 ' GLEICHUNGEN SORTIEREN
2602 '
2605 E=0:FORT=0TO5
2610 IFMID$(GL$(T),1,1)="+"THENG$(E)=GL$(T):E=E+1
2615 NEXT:PL=E
2616 FORT=0TO5
2617 IFMID$(GL$(T),1,1)="*"THENG$(E)=GL$(T):E=E+1
2618 NEXT
2620 FORT=0TO5:GL$(T)=G$(T):NEXT
2630 RETURN
2690 '
2695 ' 0 HERAUSFINDEN
2696 '
2700 W0$="":W9$=""
2701 FORT=0TOPL-1:REM ANZAHL DER + GL.
2705 A$=MID$(GL$(T),5,1):IFA$=" "THEN2750
2710 B$=MID$(GL$(T),9,1):IFB$=" "THEN2750
2715 C$=MID$(GL$(T),13,1):IFC$=" "THEN2750
2720 IFA$=C$ANDA$=B$THENW0$=A$:GOTO2750
2730 IFA$=C$THENW0$=B$
2740 IFB$=C$THENW0$=A$
2750 NEXT
2770 GOTO 2800
2771 '
2772 ' 9 HERAUSFINDEN
2773 '
2800 REM IFW0$=""THENRETURN
2801 FORT=0TOPL-1:REM ANZAHL DER + GL.
2802 FORS=1TO3
2805 A$=MID$(GL$(T),6-S,1):IFA$=" "THEN2850
2810 B$=MID$(GL$(T),10+S,1):IFB$=" "THEN2850
2815 C$=MID$(GL$(T),14-S,1):IFC$=" "THEN2850
2820 IFA$=C$ANDA$=B$ANDA$<>W0$THENW9$=A$:GOTO2850
2830 IFA$=C$ANDB$<>W0$THENW9$=B$
2840 IFB$=C$ANDA$<>W0$THENW9$=A$
2850 NEXTS,T
2870 RETURN
3000 '
3001 ' ANEUP VORBEREITEN
3002 '
3005 REM
3100 A$=N$:FORT=1TO10
3110 IFMID$(A$,T,1)=W9$THENA$=W9$+LEFT$(A$,T-1)+RIGHT$(A$,10-T)
3120 NEXT
3130 FORT=1TO10
3140 IFMID$(A$,T,1)=W0$THENA$=W0$+LEFT$(A$,T-1)+RIGHT$(A$,10-T)
3150 NEXT
3160 FORT=0TO9
3170 POKE52464+ASC(MID$(A$,T+1,1))-65,T
3180 NEXTT
3185 POKE52352,0
3190 FORT=9TO1STEP-1
3200 POKE52352+10-T,T:NEXT
3205 RETURN