[go: up one dir, main page]

Menu

[r157]: / test.8cs  Maximize  Restore  History

Download this file

86 lines (79 with data), 1.8 kB

SCRIPT
NEW
PRINT "TESTS"

INPUT "1: RECURSION, 2: ARITY, 3: CLEAR", M
ON M GOSUB RECURSION, ARITY, CLEAR, ERROR
GOTO START

@CLEAR:PRINT "CLEAR TEST"
PULL RA
POKE 1000,RA
CLR
PUSH PEEK(1000)
RETURN

@RECURSION:PRINT "RECURSION TEST"
DEF ADD$(SOURCE,TARGET)=PEG$(TARGET)+RIGHT$(PEG$(SOURCE), 1)
DEF TAKE$(SOURCE)=LEFT$(PEG$(SOURCE), LEN(PEG$(SOURCE))-1)
DEF SHOW$(WHICH)=CHR$(64+WHICH)+":"+LEFT$(PEG$(WHICH)+"--------", N0)
DIM PEG$(3)
DATA "54321", "", ""
RESTORE:FOR I=1 TO 3:READ PEG$(I):N.
N0=LEN(PEG$(1))
PRINT SHOW$(1), SHOW$(2), SHOW$(3)
STEP=1
N=N0:SOURCE=1:VIA=3:TARGET=2:GOSUB MOVE
RETURN

@MOVE
IF N=0 THEN RETURN
PUSH N:PUSH SOURCE:PUSH VIA:PUSH TARGET
N=N-1:S=VIA:VIA=TARGET:TARGET=S:GOSUB MOVE
PULL TARGET:PULL VIA:PULL SOURCE:PULL N
PEG$(TARGET)=ADD$(SOURCE, TARGET)
PEG$(SOURCE)=TAKE$(SOURCE)
M$ = LEFT$(STEP + ".   ", 5) + "MOVE DISC FROM " + CHR$(64+SOURCE) + " TO "
PRINT M$ + CHR$(64+TARGET), SHOW$(1), SHOW$(2), SHOW$(3)
STEP = STEP + 1
IF STEP MOD 18 = 0 THEN INPUT "MORE...", X
PUSH N:PUSH SOURCE:PUSH VIA:PUSH TARGET
N=N-1:S=SOURCE:SOURCE=VIA:VIA=S:GOSUB MOVE
PULL TARGET:PULL VIA:PULL SOURCE:PULL N
RETURN

@ARITY:PRINT "ARITY TEST"
DEF D12()=RND(6)+RND(6)+2
DIM A(10,10)
DIM D(12):FOR K=1 TO 12:D(K)=0:N.
FOR I=1 TO 10
    ROW$ = ""
	FOR J=1 TO 10
		A(I,J)=D12()
        D(A(I,J)) = D(A(I,J)) + 1
		ROW$=ROW$+RIGHT$("  " + A(I,J), 3)
	NEXT J
	PRINT ROW$
NEXT I
ROW = D(1), D(2), D(3), D(4), D(5), D(6)
PRINT ROW, D(7), D(8), D(9), D(10), D(11), D(12)
RETURN

@ERROR
PULL RA
STOP
RUN
1
ENTER
EXPECT 31.  MOVE DISC FROM A TO B,A:-----,B:54321,C:-----
2
BREAK
EXPECT READY.
?D(1)
EXPECT 0
?D(7)
BETWEEN 12 36
?D(2)+D(12)
BETWEEN 0 23
CONT
3
BREAK
?CURSORY
EXPECT 4
CONT
0
PASS