DIM PEG$(3) PEG$(1)="54321" PEG$(2)="" PEG$(3)="" STEP=1:N=LEN(PEG$(1)) GOSUB SHOW @W:GET A:IF A<=0 T.W.:G.W SOURCE=1:VIA=3:TARGET=2:GOSUB MOVE FOR I=1 TO 100:W.:N. END @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 GOSUB ANIM PEG$(TARGET)=PEG$(TARGET)+RIGHT$(PEG$(SOURCE), 1) PEG$(SOURCE)=LEFT$(PEG$(SOURCE), LEN(PEG$(SOURCE))-1) STEP = STEP + 1 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 @SHOW FOR ADDR=0 TO 1439:READ B:POKE ADDR,B:N. BACKGROUND=3 SPRDGN("A",0)=0 :SPRX("A",0)=90 :SPRY("A",0)=180 SPRDGN("B",0)=288:SPRX("B",0)=180:SPRY("B",0)=180 SPRDGN("C",0)=576:SPRX("C",0)=270:SPRY("C",0)=180 SPRDGN("A",1)=864:SPRX("A",1)=90 :SPRY("A",1)=156 SPRDGN("B",1)=864:SPRX("B",1)=180:SPRY("B",1)=156 SPRDGN("C",1)=864:SPRX("C",1)=270:SPRY("C",1)=156 SPRDGN("A",2)=864:SPRX("A",2)=90 :SPRY("A",2)=132 SPRDGN("B",2)=864:SPRX("B",2)=180:SPRY("B",2)=132 SPRDGN("C",2)=864:SPRX("C",2)=270:SPRY("C",2)=132 FOR I=1 TO N SPRDGN(I,"L")=1152:SPRX(I,"L")=94-I*4:SPRY(I,"L")=174-(N-I)*8 SPRDGN(I,"C")=1152:SPRX(I,"C")=90 :SPRY(I,"C")=174-(N-I)*8 SPRDGN(I,"R")=1152:SPRX(I,"R")=86+I*4:SPRY(I,"R")=174-(N-I)*8 N. R. @ANIM DISC=RIGHT$(PEG$(SOURCE), 1) FOR Y=SPRY(DISC,"C")-1 TO 120 STEP -1.41 SPRY(DISC,"L")=Y:SPRY(DISC,"R")=Y:SPRY(DISC,"C")=Y W. N. P=0 FOR X=SPRX(DISC,"C") TO TARGET*90 STEP TARGET-SOURCE SPRX(DISC,"L")=X-4*(DISC-1):SPRX(DISC,"R")=X+4*(DISC-1):SPRX(DISC,"C")=X Y=120-SIN(P)*48 SPRY(DISC,"L")=Y:SPRY(DISC,"R")=Y:SPRY(DISC,"C")=Y P=P+PI/90 W. N. FOR Y=120 TO 174-LEN(PEG$(TARGET))*8 STEP 1.41 SPRY(DISC,"L")=Y:SPRY(DISC,"R")=Y:SPRY(DISC,"C")=Y W. N. R. DATA 0,0,0,0,9,153,153,144,0,0,0,0,0,0,0,0,9,153,153,144,0,0,0,0,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,144,0,153,153,153,153,153,153,153,153,153,153,0,0,9,153,153,153,153,153,153,153,153,144,0,0,0,153,153,153,153,153,153,153,153,0,0,144,0,9,153,153,153,153,153,153,153,0,9,153,0,9,153,153,153,153,153,153,153,0,9,153,0,9,153,153,153,153,153,153,153,0,9,153,0,9,153,153,153,153,153,153,153,0,0,0,0,9,153,153,153,153,153,153,153,0,0,0,0,9,153,153,153,153,153,153,153,0,0,0,0,9,153,153,153,153,153,153,153,0,9,153,0,9,153,153,153,153,153,153,153,0,9,153,0,9,153,153,153,153,153,153,153,0,9,153,0,9,153,153,153,153,153,153,153,0,9,153,0,9,153,153,153,153,153,153,153,0,9,153,0,9,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,153,153,144,0,0,0,0,0,0,0,0,9,153,153,144,0,0,0,0,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,0,0,0,153,153,153,153,153,153,153,153,153,0,0,0,9,153,153,153,153,153,153,153,153,0,0,0,0,153,153,153,153,153,153,153,153,0,9,144,0,9,153,153,153,153,153,153,153,0,9,153,0,9,153,153,153,153,153,153,153,0,9,144,0,9,153,153,153,153,153,153,153,0,0,0,0,153,153,153,153,153,153,153,153,0,0,0,9,153,153,153,153,153,153,153,153,0,0,0,0,153,153,153,153,153,153,153,153,0,9,144,0,9,153,153,153,153,153,153,153,0,9,153,0,9,153,153,153,153,153,153,153,0,9,144,0,9,153,153,153,153,153,153,153,0,0,0,0,153,153,153,153,153,153,153,153,0,0,0,9,153,153,153,153,153,153,153,153,0,0,0,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,153,153,144,0,0,0,0,0,0,0,0,9,153,153,144,0,0,0,0,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,144,0,153,153,153,153,153,153,153,153,153,153,0,0,9,153,153,153,153,153,153,153,153,144,0,0,0,153,153,153,153,153,153,153,153,0,0,144,0,9,153,153,153,153,153,153,153,0,9,153,0,9,153,153,153,153,153,153,153,0,9,153,0,9,153,153,153,153,153,153,153,0,9,153,153,153,153,153,153,153,153,153,153,0,9,153,153,153,153,153,153,153,153,153,153,0,9,153,153,153,153,153,153,153,153,153,153,0,9,153,0,9,153,153,153,153,153,153,153,0,9,153,0,9,153,153,153,153,153,153,153,0,0,144,0,9,153,153,153,153,153,153,153,144,0,0,0,153,153,153,153,153,153,153,153,153,0,0,9,153,153,153,153,153,153,153,153,153,144,0,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,153,153,144,0,0,0,0,0,0,0,0,9,153,153,144,0,0,0,0,0,0,0,0,9,153,153,144,0,0,0,0,0,0,0,0,9,153,153,144,0,0,0,0,0,0,0,0,9,153,153,144,0,0,0,0,0,0,0,0,9,153,153,144,0,0,0,0,0,0,0,0,9,153,153,144,0,0,0,0,0,0,0,0,9,153,153,144,0,0,0,0,0,0,0,0,9,153,153,144,0,0,0,0,0,0,0,0,9,153,153,144,0,0,0,0,0,0,0,0,9,153,153,144,0,0,0,0,0,0,0,0,9,153,153,144,0,0,0,0,0,0,0,0,9,153,153,144,0,0,0,0,0,0,0,0,9,153,153,144,0,0,0,0,0,0,0,0,9,153,153,144,0,0,0,0,0,0,0,0,9,153,153,144,0,0,0,0,0,0,0,0,9,153,153,144,0,0,0,0,0,0,0,0,9,153,153,144,0,0,0,0,0,0,0,0,9,153,153,144,0,0,0,0,0,0,0,0,9,153,153,144,0,0,0,0,0,0,0,0,9,153,153,144,0,0,0,0,0,0,0,0,9,153,153,144,0,0,0,0,0,0,0,0,9,153,153,144,0,0,0,0,0,0,0,0,9,153,153,144,0,0,0,0,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Here is a version of Tutorial's Text Adventure fun project using graphical features. It works if you download and deploy the newest version of imeight emulator, not the version 1.0 deployed on Newgrounds. Use the legible font from [Routines].
FONTALNUM=0 BOREDOM=0:MONEY=0:GF=0 TILE(1,14)=DGNHEART() PRINT "----------- TEXT ADVENTURE GAME -----------" @HOME PRINT "YOU ARE AT HOME. LIVING ALONE FEELS LONELY" PRINT "SOMETIMES... BUT YOU CAN JUMP ON YOUR BED" PRINT "IF YOU LIKE." BOREDOM=BOREDOM+1 IF BOREDOM>10 THEN GOTO DEATH IF BOREDOM<>3 THEN GOTO HOMEASK PRINT "YOU STAND UP ON THE BED TO JUMP... YOU FEEL" PRINT "SOMETHING PUSHING YOUR FOOT..." PRINT "HEY! YOU FOUND A COIN BELOW THE BEDSHEET!" MONEY=1 @HOMEASK INPUT "STAY OR LEAVE?", MOVE$:GOSUB UPPER IF MOVE$="STAY" THEN GOTO HOME IF MOVE$="LEAVE" THEN GOTO STREET GOTO HOMEASK @DEATH PRINT "LIFE IS SO BORING THAT YOU DIED. GRAY RATS" PRINT "WHO JUST HAD BEEN LINGERING THERE" PRINT "ARE LISTLESSLY EATING YOUR BODY." TILE(1,14)=DGNDEATH() INPUT "------------------- END -------------------",XX$ END @STREET PRINT "FRESH AIR! THE STREET IS CROWDED AS USUAL." PRINT "YOU STAND JUST IN FRONT OF YOUR HOME" IF BOREDOM>3 AND MONEY=0 THEN GOTO SELL @STREETASK INPUT "WHERE WOULD YOU GO? CENTER, OUTSKIRTS, HOME?", MOVE$:GOSUB UPPER IF MOVE$="CENTER" THEN GOTO CENTER IF LEFT$(MOVE$, 3)="OUT" THEN GOTO OUTSKIRTS IF MOVE$="HOME" THEN GOTO HOME GOTO STREETASK @CENTER PRINT "MALLS AND RESTAURANTS ALL AROUND." PRINT "YOU FEEL LIKE SHOPPING!" IF MONEY=0 THEN PRINT "WISH YOU HAD ANY MONEY :(":GOTO CENTERASK IF GF=1 THEN GOTO FLOWERS PRINT "YOU BOUGHT A GOLDEN PIGLET. IT'S A PERFECT" PRINT "PRESENT... YOU JUST NEED SOMEBODY TO GIVE IT." GOTO BOUGHT @FLOWERS PRINT "YOU BOUGHT SOME FLOWERS FOR YOUR GF." PRINT "IT'S SO NICE TO HAVE HER." INPUT "------------------- END -------------------", XX$ END @BOUGHT MONEY=0 @CENTERASK INPUT "STAY OR STREET?", MOVE$:GOSUB UPPER IF MOVE$="STAY" THEN GOTO CENTER IF MOVE$="STREET" THEN GOTO STREET GOTO CENTERASK @OUTSKIRTS IF GF=1 THEN GOTO OUTASK PRINT "YOU REMEMBER A GIRL YOU USED TO KNOW FROM" PRINT "SCHOOL. MAYBE IT'S BECAUSE SHE LIVED HERE. OR" PRINT "MAYBE IT'S BECAUSE YOU ALWAYS THINK OF HER" PRINT "EVER SINCE." @OUTASK PRINT "YOU STAND RIGHT AT THE GIRL'S DOOR." INPUT "KNOCK OR STREET?", MOVE$:GOSUB UPPER IF MOVE$="KNOCK" THEN GOTO KNOCK IF MOVE$="STREET" THEN GOTO STREET GOTO OUTASK @KNOCK IF GF=1 THEN GOTO LOVE PRINT "'HEY, IS THAT REALLY YOU? I REMEMBER" PRINT "THE SHY GUY FROM SCHOOL. HAHA!'" PRINT "YOU TALK A LITTLE. SHE ASKS ABOUT YOUR LIFE." IF MONEY=0 THEN GOTO DECLINE GF=1 PRINT "SHE TELLS YOU THAT SHE LIKES FLOWERS." PRINT "SHE FEELS ALONE. SHE LIKES TO JUMP ON HER BED." PRINT "SHE SHOWS HOW." @LOVE PRINT "YOU STAY UNTIL THE MORNING COMES." @DECLINE PRINT "SHE ASKS YOU TO LEAVE AS SHE HAS" PRINT "IMPORTANT THINGS TO DO." GOTO OUTASK @SELL PRINT "A BAD LOOKING MAN IS APPROACHING." PRINT "HE WANTS TO SELL YOU STOLEN WEAPONS." PRINT "HE WOULD BUY THINGS OF VALUE, TOO." PRINT "YOU THINK OF SELLING THE PIGLET." INPUT "SELL OR LEAVE?", MOVE$:GOSUB UPPER IF MOVE$="SELL" THEN MONEY=1:PRINT "YOU GET A COIN." GOTO STREET @UPPER R$ = "" FOR I=1 TO LEN(MOVE$) R$ = R$ + CHR$(ASC(MID$(MOVE$, I, 1)) AND $5F) N. MOVE$ = R$ R.
No AI, just registering. It works if you download and deploy the newest version of imeight emulator, not the version 1.0 deployed on Newgrounds.
SMOOTHNESS=.1 CHEATMODE=1 SPC33=" " DEF OWNPIECEAT(TOX, TOY, X, Y)=LEFT$(BOARD$(CHR$(TOX+64), TOY), 1)=LEFT$(BOARD$(CHR$(X+64), Y), 1) DEF ISPIECEAT(TOX, TOY)=LEN(BOARD$(CHR$(TOX+64), TOY))<>0 DEF ONBOARD(TOX, TOY)=TOX>=1 AND TOX<=8 AND TOY>=1 AND TOY<=8 FOR L=0 TO 27:TEXTLINE$(L)="":N. TEXTPRIO=33 TEXTLINE$(0)=" A B C D E F G H 00:00" TILEX=-16 TILEY=-16 FOR RANK=1 TO 8 TEXTLINE$(26-3*RANK)=RANK+" "+RANK FOR FILE=1 TO 8 TILE(RANK, FILE)=288*((RANK+FILE)MOD 2 + 14) N. N. TEXTLINE$(25)=" A B C D E F G H 00:00" TILE(8, 10)=288*14 SPRDGN("W")=DGNMAN():SPRX("W")=224:SPRY("W")=176 TILE(1, 10)=288*15 SPRDGN("B")=DGNMAN():SPRX("B")=224:SPRY("B")=8 DIM BOARD$(8,8) DIM OFF$() DIM PIECE$(16) ENPASSANT=0 STEP=0 STARTED=0 DIM LEGALFROMFILE$(16) DIM LEGALFROMY(16) DIM LEGALTOFILE$(27) DIM LEGALTOY(27) DISPTIME=0 DIM PLAYERTIME(2) PLAYERTIME(0)=0 PLAYERTIME(1)=0 FOR I=1 TO 8 PIECE$(I)="P"+I C$=CHR$(64+I) FOR J=1 TO 8 BOARD$(C$, J)="" N. BOARD$(C$, 2)="WP"+I BOARD$(C$, 7)="BP"+I SPRDGN("WP"+I)=2016 SPRDGN("BP"+I)=3744 'LEGALFROMFILE$(I-1)=C$:LEGALFROMY(I-1)=2 N. BOARD$("A", 1)="WR1":BOARD$("H", 1)="WR2":BOARD$("A", 8)="BR1":BOARD$("H", 8)="BR2" BOARD$("B", 1)="WN1":BOARD$("G", 1)="WN2":BOARD$("B", 8)="BN1":BOARD$("G", 8)="BN2" BOARD$("C", 1)="WB1":BOARD$("F", 1)="WB2":BOARD$("C", 8)="BB1":BOARD$("F", 8)="BB2" BOARD$("D", 1)="WQ":BOARD$("E", 1)="WK":BOARD$("D", 8)="BQ":BOARD$("E", 8)="BK" SPRDGN("WR1")=1728:SPRDGN("WR2")=1728:SPRDGN("BR1")=3456:SPRDGN("BR2")=3456 PIECE$(9)="R1":PIECE$(10)="R2" SPRDGN("WN1")=1440:SPRDGN("WN2")=1440:SPRDGN("BN1")=3168:SPRDGN("BN2")=3168 PIECE$(11)="N1":PIECE$(12)="N2" SPRDGN("WB1")=1152:SPRDGN("WB2")=1152:SPRDGN("BB1")=2880:SPRDGN("BB2")=2880 PIECE$(13)="B1":PIECE$(14)="B2" SPRDGN("WQ")=864:SPRDGN("WK")=576:SPRDGN("BQ")=2592:SPRDGN("BK")=2304 PIECE$(15)="K":PIECE$(16)="Q" 'LEGALFROMFILE$(8)="B":LEGALFROMY(8)=1 'LEGALFROMFILE$(9)="G":LEGALFROMY(9)=1 FOR I=1 TO 16 SPRX("W"+PIECE$(I))=92:SPRX("B"+PIECE$(I))=92 SPRY("W"+PIECE$(I))=92:SPRY("B"+PIECE$(I))=92 SPRPRIO("W"+PIECE$(I))=2:SPRPRIO("B"+PIECE$(I))=2 N. FOR I=0 TO 27 SPRDGN(I)=4608 SPRPRIO(I)=1 N. SETTLED=0 DRAGGED$="" GRABX=-1 MX=92:MY=92 LASTBOARDX=MX:LASTBOARDY=MY STEPTIME=TIME() FOR MLC=0 TO 1 STEP 0 WAIT 'CLOCK TMTODISP=INT((PLAYERTIME(STEP MOD 2)+TIME()-STEPTIME)/1000) IF TMTODISP=DISPTIME T.G.CLOCKEND DISPTIME=TMTODISP SEC$=RIGHT$("0"+TMTODISP MOD 60, 2) MIN$=RIGHT$("0"+INT(TMTODISP/60), 2) ROCL=25-(STEP MOD 2)*25 'ROW OF CLOCK TEXTLINE$(ROCL)=LEFT$(TEXTLINE$(ROCL), 27)+MIN$+":"+SEC$+MID$(TEXTLINE$(ROCL), 33, 16) @CLOCKEND IF SETTLED=1 T.G. ANIMEND SETTLED=1 FOR I=1 TO 8:FOR J=1 TO 8 TARGETX=I*24-16 TARGETY=200-J*24 ANIMPC$=BOARD$(CHR$(I+64), J) IF ANIMPC$=DRAGGED$ AND GRABX<>-1 THEN ANIMPC$="" IF LEN(ANIMPC$)>0 THEN GOSUB ANIM N.:N. TARGETX=360 TARGETY=0 IF OFF$("length") = 0 T.G.OFFEND FOR I=0 TO OFF$("length")-1 ANIMPC$=OFF$(I) GOSUB ANIM TARGETY=TARGETY+6 N. @OFFEND @ANIMEND GET EVCODE IF EVCODE=27 THEN END MX=TOUCHX(1):MY=TOUCHY(1) IF MX<8 OR MX>=199 THEN GOTO UPDATEEND IF MY<8 OR MY>=199 THEN GOTO UPDATEEND LASTBOARDX=MX:LASTBOARDY=MY @UPDATEEND X=INT(LASTBOARDX/24+.67) FILE$=CHR$(X+64) Y=INT((223-LASTBOARDY)/24) IF TEXTLINE$(26)<>FILE$+Y THEN TEXTLINE$(26)=FILE$+Y TOUCHED$=BOARD$(FILE$, Y) IF EVCODE=1 AND LEN(TOUCHED$)>0 THEN GOSUB PRESS IF EVCODE=-1 AND GRABX>-1 THEN GOSUB MOVE IF GRABX<>-1 THEN GOSUB DRAG 'MARK MOVABLE PIECES IF EVCODE=0 AND STARTED=1 T.G.MARKEND STARTED=1 IF GRABX=-1 T.G. MARKFROM 'MARK LEGAL MOVE TARGETS FOR I=0 TO 27 IF I>=LEGALTOFILE$("length") T.SPRX(I)=-24:N.:G.MARKEND SPRX(I)=ASC(LEGALTOFILE$(I))*24-1552 SPRY(I)=200-LEGALTOY(I)*24 N. @MARKFROM FOR I=0 TO 15 IF I>=LEGALFROMY("length") T.SPRX(I)=-24:N.:G.MARKEND SPRX(I)=ASC(LEGALFROMFILE$(I))*24-1552 SPRY(I)=200-LEGALFROMY(I)*24 N. G.MARKEND @MARKEND NEXT MLC @ANIM IF (SPRX(ANIMPC$)-TARGETX)^2+(SPRY(ANIMPC$)-TARGETY)^2 < 2 T.G. SNAP SETTLED=0 SPRX(ANIMPC$)=SPRX(ANIMPC$)+(TARGETX-SPRX(ANIMPC$))*SMOOTHNESS SPRY(ANIMPC$)=SPRY(ANIMPC$)+(TARGETY-SPRY(ANIMPC$))*SMOOTHNESS R. @SNAP SPRX(ANIMPC$)=TARGETX SPRY(ANIMPC$)=TARGETY R. @PRESS IF CHEATMODE=1 T.G.CHEAT FOR I=0 TO 15 IF I>=LEGALFROMFILE$("length") T.I=16:N.:R. 'END OF SET, NO MATCHES IF TOUCHED$<>BOARD$(LEGALFROMFILE$(I), LEGALFROMY(I)) T.N. 'CONTINUE SEARCHING IF I>15 T.R. 'END OF LOOP WITHOUT ANY MATCH I=16:N. 'FOUND @CHEAT DRAGGED$=TOUCHED$ FROMFILE$=FILE$ FROMX=X FROMY=Y SORT$=MID$(DRAGGED$, 2, 1) PLAYER=LEFT$(DRAGGED$, 1)="B" @CALCPIECELIBERTY DIM LEGALTOFILE$(27) 'CLEAR DIM LEGALTOY(27) LIBERTY=0 IF SORT$="N" THEN GOTO KNIGHT IF SORT$="B" THEN GOTO BISHOP IF SORT$="R" THEN GOTO ROOK IF SORT$="Q" THEN GOTO QUEEN IF SORT$="K" THEN GOTO KING GOTO PAWN @KNIGHT TOX=X-2:TOY=Y-1 IF ONBOARD(TOX, TOY) T.GOSUB TESTOWN TOX=X-1:TOY=Y-2 IF ONBOARD(TOX, TOY) T.GOSUB TESTOWN TOX=X-2:TOY=Y+1 IF ONBOARD(TOX, TOY) T.GOSUB TESTOWN TOX=X-1:TOY=Y+2 IF ONBOARD(TOX, TOY) T.GOSUB TESTOWN TOX=X+2:TOY=Y-1 IF ONBOARD(TOX, TOY) T.GOSUB TESTOWN TOX=X+1:TOY=Y-2 IF ONBOARD(TOX, TOY) T.GOSUB TESTOWN TOX=X+2:TOY=Y+1 IF ONBOARD(TOX, TOY) T.GOSUB TESTOWN TOX=X+1:TOY=Y+2 IF ONBOARD(TOX, TOY) T.GOSUB TESTOWN GOTO LEGALTOEND @BISHOP GOSUB DIAGONAL GOTO LEGALTOEND @QUEEN GOSUB DIAGONAL @ROOK DX=1:DY=0:GOSUB EXTENDX DX=-1:DY=0:GOSUB EXTENDX DX=0:DY=1:GOSUB EXTENDY DX=0:DY=-1:GOSUB EXTENDY GOTO LEGALTOEND @PAWN TOX=X+1:TOY=Y+1-2*PLAYER IF ONBOARD(TOX, TOY) T.GOSUB TESTENPASSANT TOX=X-1 IF ONBOARD(TOX, TOY) T.GOSUB TESTENPASSANT TOX=X IF ONBOARD(TOX, TOY) T.GOSUB TESTOWN IF Y<>2+5*PLAYER T.G.LEGALTOEND TOY=4+PLAYER IF ONBOARD(TOX, TOY) T.GOSUB TESTOWN GOTO LEGALTOEND @KING FOR TOY=Y-1 TO Y+1 FOR TOX=X-1 TO X+1 IF ONBOARD(TOX, TOY) T.GOSUB TESTOWN N.:N. IF X<>5 T.G.LEGALTOEND IF Y<>1+7*PLAYER T.G.LEGALTOEND TOY=Y TOX=7 IF ISPIECEAT(6, Y) T.G.TESTOOB IF ISPIECEAT(7, Y) T.G.TESTOOB GOSUB ADDLEGALTO @TESTOOB TOX=2 IF ISPIECEAT(2, Y) T.G.LEGALTOEND IF ISPIECEAT(3, Y) T.G.LEGALTOEND IF ISPIECEAT(4, Y) T.G.LEGALTOEND GOSUB ADDLEGALTO @LEGALTOEND GRABX=LASTBOARDX-SPRX(TOUCHED$) GRABY=LASTBOARDY-SPRY(TOUCHED$) SPRPRIO(TOUCHED$)=3 R. @DRAG SPRX(DRAGGED$)=LASTBOARDX-GRABX SPRY(DRAGGED$)=LASTBOARDY-GRABY R. @MOVE IF SORT$<>"P" OR X<>ENPASSANT OR Y<>6-PLAYER*3 T.G.CAPTUREENPEND OLD$=BOARD$(FILE$, 5-PLAYER) BOARD$(FILE$, 5-PLAYER)="" G.CAPTURE @CAPTUREENPEND OLD$=BOARD$(FILE$, Y) IF OLD$=DRAGGED$ T.G.DROP:REM J'ADOUBE ENPASSANT=(SORT$="P" AND ABS(Y-FROMY)=2)*X IF SORT$<>"K" OR Y<>1+7*PLAYER OR FROMFILE$<>"E" T.G.CASTLEEND IF FILE$="B" T. BOARD$("C", Y)=BOARD$("A", Y):BOARD$("A", Y)="":G.XEND IF FILE$="G" T. BOARD$("F", Y)=BOARD$("H", Y):BOARD$("H", Y)="":G.XEND @CASTLEEND IF LEN(OLD$)=0 T.G.XEND @CAPTURE OFF$(OFF$("length"))=OLD$ SPRPRIO(OLD$)=OFF$("length")+1 @XEND PLAYERTIME(STEP MOD 2)=PLAYERTIME(STEP MOD 2)+TIME()-STEPTIME MSG=STEP+1+". "+FROMFILE$+FROMY+FILE$+Y TEXTLINE$(STEP MOD 26)=LEFT$(TEXTLINE$(STEP MOD 26) + SPC33, 33)+MSG STEP=STEP+1 BOARD$(FROMFILE$, FROMY)="" BOARD$(FILE$, Y)=DRAGGED$ STEPTIME=TIME() @DROP SETTLED=0 GRABX=-1 R. @TESTENPASSANT IF TOX=ENPASSANT AND TOY=6-PLAYER*3 T.G.ADDLEGALTO @TESTENEMY IF ISPIECEAT(TOX, TOY)=0 T.R. @TESTOWN IF OWNPIECEAT(TOX, TOY, X, Y) T.R. @ADDLEGALTO LEGALTOFILE$(LIBERTY)=CHR$(TOX+64) LEGALTOY(LIBERTY)=TOY LIBERTY=LIBERTY+1 R. @EXTENDX EX=INT(4.5+3.5*DX) IF X=EX T.R. TOY=Y+DY FOR TOX=X+DX TO EX STEP DX IF ONBOARD(TOX, TOY)=0 T.TOX=EX+DX:N.:R. GOSUB TESTOWN IF ISPIECEAT(TOX, TOY) T.TOX=EX+DX TOY=TOY+DY N.:R. @EXTENDY EY=INT(4.5+3.5*DY) IF Y=EY T.R. TOX=X+DX FOR TOY=Y+DY TO EY STEP DY IF ONBOARD(TOX, TOY)=0 T.TOY=EY+DY:N.:R. GOSUB TESTOWN IF ISPIECEAT(TOX, TOY) T.TOY=EY+DY TOX=TOX+DX N.:R. @DIAGONAL DX=1:DY=1:GOSUB EXTENDX DX=1:DY=-1:GOSUB EXTENDX DX=-1:DY=1:GOSUB EXTENDX DX=-1:DY=-1:GOSUB EXTENDX R.
SCRIPT NEW A=0 @RD:READ V:IF V>=0 THEN POKE A,V:A=A+1:GOTO RD END REM SAMPLE CHARACTER 'COMRADE GREEN' DATA 0,0,0,0,0,143,34,128,0,0,0,0,0,0,0,0,8,34,34,40,0,0,0,0,0,0,0 DATA 0,0,131,60,128,0,0,0,0,0,0,0,0,0,131,51,56,0,0,0,0,0,0,0,0,0,136,136 DATA 128,0,0,0,0,0,0,0,0,0,130,34,128,0,0,0,0,0,0,0,0,8,130,34,128,0,0,0 DATA 0,0,0,0,0,130,130,34,128,0,0,0,0,0,0,0,0,130,130,34,128,0,0,0,0,0,0 DATA 0,0,8,130,34,128,0,0,0,0,0,0,0,0,0,130,34,128,0,0,0,0,0,0,0,0,0,130 DATA 34,128,0,0,0,0,0,0,0,0,0,130,34,128,0,0,0,0,0,0,0,0,0,136,136,0,0,0 DATA 0,0,0,0,0,0,8,34,34,128,0,0,0,0,0,0,0,0,130,34,34,40,0,0,0,0,0,0,0 DATA 0,130,34,34,40,0,0,0,0,0,0,0,8,34,34,34,34,128,0,0,0,0,0,0,8,34,34 DATA 34,34,128,0,0,0,0,0,0,8,34,34,34,34,128,0,0,0,0,0,0,0,136,34,34,40 DATA 0,0,0,0,0,0,0,0,0,136,136,128,0,0,0,0,0,0,0,0,8,248,136,136,0,0,0,0 DATA 0,0,0,0,8,136,136,136,0,0,0,0,0,0,0,0,0,143,34,128,0,0,0,0,0,0,0,0 DATA 8,34,34,40,0,0,0,0,0,0,0,0,0,131,60,128,0,0,0,0,0,0,0,0,0,131,51,56 DATA 0,0,0,0,0,0,0,0,136,136,136,0,0,0,0,0,0,0,0,8,34,34,34,128,8,0,0,0 DATA 0,0,0,130,136,130,34,128,130,128,0,0,0,0,0,130,128,130,34,40,40,0,0 DATA 0,0,0,0,130,128,130,34,130,128,0,0,0,0,0,0,8,0,130,34,136,0,0,0,0,0 DATA 0,0,0,0,130,34,128,0,0,0,0,0,0,0,0,0,130,34,128,0,0,0,0,0,0,0,0,0,130 DATA 34,128,0,0,0,0,0,0,0,0,0,136,136,0,0,0,0,0,0,0,0,0,8,34,34,128,0,0 DATA 0,0,0,0,0,0,130,34,34,40,0,0,0,0,0,0,0,8,34,34,34,40,0,0,0,0,0,0,0 DATA 130,34,34,34,136,0,0,0,0,0,0,8,34,34,34,34,130,128,0,0,0,0,0,130,34 DATA 34,34,40,34,40,0,0,0,0,8,34,34,34,34,40,34,34,128,0,0,0,0,130,136,136 DATA 34,130,136,136,128,0,0,0,0,8,248,136,128,8,248,136,136,0,0,0,0,8,136 DATA 136,128,8,136,136,136,0,0,0,0,0,0,8,242,40,0,0,0,0,0,0,0,0,0,130,34 DATA 34,128,0,0,0,0,0,0,0,0,8,195,56,0,0,0,0,0,0,0,0,0,131,51,56,0,0,0,0 DATA 0,0,0,0,0,8,136,136,0,0,0,0,0,0,0,0,0,8,34,40,0,0,0,0,0,0,0,0,0,8,34 DATA 40,128,0,0,0,0,0,0,0,0,8,34,40,40,0,0,0,0,0,0,0,0,8,34,40,40,0,0,0 DATA 0,0,0,0,0,8,34,40,128,0,0,0,0,0,0,0,0,8,34,40,0,0,0,0,0,0,0,0,0,8,34 DATA 40,0,0,0,0,0,0,0,0,0,8,34,40,0,0,0,0,0,0,0,0,0,0,136,136,0,0,0,0,0 DATA 0,0,0,0,8,34,34,128,0,0,0,0,0,0,0,0,130,34,34,40,0,0,0,0,0,0,0,0,130 DATA 34,34,40,0,0,0,0,0,0,0,8,34,34,34,34,128,0,0,0,0,0,0,8,34,34,34,34 DATA 128,0,0,0,0,0,0,8,34,34,34,34,128,0,0,0,0,0,0,0,130,34,34,136,0,0,0 DATA 0,0,0,0,0,8,136,136,0,0,0,0,0,0,0,0,0,143,136,136,128,0,0,0,0,0,0,0 DATA 0,136,136,136,128,0,0,0,0,0,0,0,0,8,242,40,0,0,0,0,0,0,0,0,0,130,34 DATA 34,128,0,0,0,0,0,0,0,0,8,195,56,0,0,0,0,0,0,0,0,0,131,51,56,0,0,0,0 DATA 0,0,0,0,0,0,136,136,136,0,0,0,0,0,0,0,128,8,34,34,34,128,0,0,0,0,0 DATA 8,40,8,34,40,136,40,0,0,0,0,0,0,130,130,34,40,8,40,0,0,0,0,0,0,8,40 DATA 34,40,8,40,0,0,0,0,0,0,0,136,34,40,0,128,0,0,0,0,0,0,0,8,34,40,0,0 DATA 0,0,0,0,0,0,0,8,34,40,0,0,0,0,0,0,0,0,0,8,34,40,0,0,0,0,0,0,0,0,0,0 DATA 136,136,0,0,0,0,0,0,0,0,0,8,34,34,128,0,0,0,0,0,0,0,0,130,34,34,40 DATA 0,0,0,0,0,0,0,0,130,34,34,34,128,0,0,0,0,0,0,0,136,34,34,34,40,0,0 DATA 0,0,0,0,8,40,34,34,34,34,128,0,0,0,0,0,130,34,130,34,34,34,40,0,0,0 DATA 0,8,34,34,130,34,34,34,34,128,0,0,0,8,136,136,40,34,136,136,40,0,0 DATA 0,0,143,136,136,128,8,248,136,128,0,0,0,0,136,136,136,128,8,136,136 DATA 128 DATA -1 RUN NEW BACKGROUND=11 SPRDGN(1)=0 SPRX(1)=40 SPRY(1)=0 VX=0 VY=0 DGN=0 LANDED=0 DIM COLLISION(384, 216) FOR X=0 TO 383 FOR Y=0 TO 215 COLLISION(X, Y)=0 N.:N. 'STEPS FOR M=0 TO 5 SPRDGN(M+2)=DGNPADHORZ() SPRX(M+2)=180 SPRY(M+2)=32*M+28 FOR X=180 TO 203:FOR Y=32*M+28 TO 32*M+33 COLLISION(X, Y)=1 N.:N.:N. 'HURDLE SPRDGN(8)=DGNPADVERT() SPRX(8)=180 SPRY(8)=164 @STACLE FOR XC=180 TO 185 FOR YC=164 TO 187 COLLISION(XC, YC)=-1 N.:N. @MAINLOOP WAIT:WAIT GOSUB MOVE GET A IF A=0 T.G. MAINLOOP IF A=39 T. VX=1:DGN=0 IF A=-37 OR A=-39 T. VX=0 IF A=37 T. VX=-1:DGN=576 IF A=38 AND LANDED T. VY=10:LANDED=0 GOTO MAINLOOP @MOVE SPRX(1)=SPRX(1)+VX SPRDGN(1)=(INT(SPRX(1)/4) MOD 2)*288+DGN SPRY(1)=SPRY(1)-VY 'GRAVITY VY=VY - 1 'BORDER HIT CHECK IF SPRY(1)>179 THEN SPRY(1)=180:VY=0:LANDED=1 IF SPRY(1)<0 THEN SPRY(1)=0:VY=-ABS(VY) IF SPRX(1)<0 THEN SPRX(1)=24:VX=0 IF SPRX(1)>360 THEN SPRX(1)=360:VX=0 'PLATFORM COLLISION CHECK Y=SPRY(1) FOR X=INT(SPRX(1)+2) TO INT(SPRX(1)+21) IF COLLISION(X, SPRY(1)+23)>0 AND VY<0 THEN VY=0:Y=SPRY(1)-1:LANDED=1 N. SPRY(1)=Y 'OBSTACLE COLLISION CHECK FOR Y=INT(SPRY(1)) TO INT(SPRY(1)+23) IF COLLISION(INT(SPRX(1)+11+SGN(VX)*5), INT(Y))<0 THEN SPRX(1)=SPRX(1)-VX:VX=0 N. R. RUN
REM * PLACE TILES FOR PIXEL GRAPHICS * I=0 FOR RO=0 TO 7 FOR CO=0 TO 7 TILE(RO, CO + 8) = 288*I I=I+1 N.:N. FOR RO=0 TO 26:TEXTLINE$(RO)="":N. CURSORY=23 REM * PRECALC ROTATED CURSOR SPRITES * TA=18720 FOR I=1 TO 63 SA=18432:ANGLE=I*PI/32:GOSUB SPRROT:TA=TA+288 N. REM * INITIALIZE TURTLE AND SCREEN * GOSUB WIPE GOSUB HOME GOSUB PD COLOR=$E GOSUB CURSOR REM * MAIN LOOP * @ASK INPUT "", LINE$ GOSUB PARSE IF WORD$(1)="FD" OR WORD$(1)="FORWARD" THEN GOSUB FD IF WORD$(1)="BK" OR WORD$(1)="BACK" THEN GOSUB BK IF WORD$(1)="LT" OR WORD$(1)="LEFT" THEN GOSUB LT IF WORD$(1)="RT" OR WORD$(1)="RIGHT" THEN GOSUB RT IF WORD$(1)="HOME" THEN GOSUB HOME IF WORD$(1)="CS" OR WORD$(1)="CLEARSCREEN" THEN GOSUB HOME:GOSUB WIPE IF WORD$(1)="CLEAN" THEN GOSUB WIPE IF WORD$(1)="PC" OR WORD$(1)="COLOR" THEN GOSUB PC IF WORD$(1)="PU" OR WORD$(1)="PENUP" THEN GOSUB PU IF WORD$(1)="PD" OR WORD$(1)="PENDOWN" THEN GOSUB PD GOSUB CURSOR GOSUB CLEAN GOTO ASK REM * COMMAND IMPLEMENTATIONS * @FD:R=WORD$(2):IF DOWN THEN GOSUB LINE:R. X=X+R*COS(ANGLE) Y=Y+R*SIN(ANGLE) R. @BK:R=WORD$(2):IF DOWN THEN ANGLE=ANGLE+PI:GOSUB LINE:ANGLE=ANGLE-PI:R. X=X-R*COS(ANGLE) Y=Y-R*SIN(ANGLE) R. @LT:ANGLE=ANGLE-WORD$(2)*PI/180:R. @RT:ANGLE=ANGLE+WORD$(2)*PI/180:R. @HOME:X=96:Y=144:ANGLE=3*PI/2:R. @PU:DOWN=0:R. @PD:DOWN=1:R. @PC:COLOR=WORD$(2):R. @WIPE 'CS COMMAND FOR A=0 TO 18431:POKE A,0:N.A R.WIPE REM * GRAPHICS ROUTINES * @LINE 'TAKES X, Y, ANGLE, R, COLOR ON INT((ANGLE/PI*2)+.5) MOD 2 GOTO VLINE, HLINE @HLINE TX=X+R*COS(ANGLE) VX=SGN(COS(ANGLE)) VY=SIN(ANGLE) @HLOOP GOSUB SETPIXEL IF X*VX>=TX*VX T.X=TX:R.LINE X=X+VX:Y=Y+VY GOTO HLOOP @VLINE TY=Y+R*SIN(ANGLE) VY=SGN(SIN(ANGLE)) VX=COS(ANGLE) @VLOOP GOSUB SETPIXEL IF Y*VY>=TY*VY T.Y=TY:R.LINE X=X+VX:Y=Y+VY GOTO VLOOP @SETPIXEL 'TAKES X, Y, COLOR A=288*(8*INT(Y/24)+INT(X/24))+12*(INT(Y) MOD 24)+INT((INT(X) MOD 24)/2) IF INT(X) MOD 2 THEN POKE A, PEEK(A) AND %11110000 OR COLOR:RETURN POKE A, PEEK(A) AND %00001111 OR (16*COLOR):RETURN @CLEAN:FOR RO=0 TO 23:TEXTLINE$(RO)=LEFT$(TEXTLINE$(RO), 24):N.:R. @SPRROT 'TAKES SA (SOURCE ADDRESS), TA (TARGET ADDRESS), ANGLE TI=0:DIM NIB(2) FOR TY=12 TO -11 STEP -1:FOR TX=-12 TO 11 SX=TX*COS(ANGLE)-TY*SIN(ANGLE) SY=TX*SIN(ANGLE)+TY*COS(ANGLE) SI=INT(12.5+SX+24*INT(12.5-SY)) IF SI MOD 2 = 0 THEN NIB(TI MOD 2)=INT(PEEK(SA+SI/2)/16) IF SI MOD 2 THEN NIB(TI MOD 2)=PEEK(SA+(SI-1)/2) AND 15 IF SX<-12 OR SX>11 OR SY<-11 OR SY>12 THEN NIB(TI MOD 2)=0 IF TI MOD 2 THEN POKE TA+(TI-1)/2,NIB(0)*16 OR NIB(1):DIM NIB() TI = TI+1 N.:N.:R. REM * TURTLE DISPLAY * @CURSOR 'TAKES X, Y, ANGLE SPRX(0)=X+180:SPRY(0)=Y-12:SPRDGN(0)=288*(64+INT(ANGLE/PI*32+.5) MOD 64) R. REM * COMMAND LINE PARSING * @PARSE 'TAKES LINE$ DIM WORD$() WC=1:WS=1 FOR I=1 TO LEN(LINE$) IF MID$(LINE$, I, 1)<>" " THEN N.:GOTO STOREWORD GOSUB STOREWORD:N. @STOREWORD WORD$(WC)=MID$(LINE$, WS, I-WS):WC=WC+1:WS=I R.
And copy the cursor design to 18432 (select and copy the code below > Design Util > on the Memory Map, select 1st slot on the 5th line > push MODE repeatedly until hex input appears > select all hex > paste > PUT):
00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000ff7 000000000000000000000f7ff7000000 00000000000007f07ff7000000000000 000000f7007ff70000000000000000f7 00007ff7000000000000007f0000007f f70000000000000f700000007ff70000 0000000f70000000007ff0000000000f 700000007ff700000000007f0000007f f7000000000000f700007ff700000000 000000f7007ff70000000000000007f0 7ff700000000000000000f7ff7000000 0000000000000ff70000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000
PRINT "WORD PUZZLE GENERATOR" DIM DIR$(8) DIR$(0)="RIGHT" DIR$(1)="RIGHT DOWN" DIR$(2)="DOWN" DIR$(3)="LEFT DOWN" DIR$(4)="LEFT" DIR$(5)="LEFT UP" DIR$(6)="UP" DIR$(7)="RIGHT UP" DIM DX(8):DIM DY(8) DX(0)=1:DY(0)=0 DX(1)=1:DY(1)=1 DX(2)=0:DY(2)=1 DX(3)=-1:DY(3)=1 DX(4)=-1:DY(4)=0 DX(5)=-1:DY(5)=-1 DX(6)=0:DY(6)=-1 DX(7)=1:DY(7)=-1 DIM W$() WORDS = 0 LONGEST = 0 TOT = 0 @INWD W = WORDS + 1 INPUT "WORD " + W, W$(W) L = LEN(W$(W)) TOT = TOT + L IF LONGEST < L THEN LONGEST=L IF L > 0 THEN WORDS = WORDS + 1:GOTO INWD DIM KEY$(WORDS) @INSZ INPUT "PUZZLE SIZE", SIZE IF SIZE < LONGEST OR SIZE*SIZE < TOT T.PRINT "TOO SMALL":G.INSZ @PUZZ DIM P$(SIZE, SIZE) FREE = SIZE*SIZE PRINT "WORKING..." FOR W=1 TO WORDS @WORD W$=W$(W) L=LEN(W$) @POS IF TOT > FREE OR RND(SIZE*SIZE*5) = 0 THEN W=WORDS + 1:NEXT W:GOTO PUZZ X=RND(SIZE) Y=RND(SIZE) DIR=RND(8) DX=DX(DIR) DY=DY(DIR) IF X + (L - 1)*DX < 0 T.G.POS IF X + (L - 1)*DX >= SIZE T.G.POS IF Y + (L - 1)*DY < 0 T.G.POS IF Y + (L - 1)*DY >= SIZE T.G.POS KEY$(W) = "FROM ROW " + (Y + 1) + ", COL " + (X + 1) + " " + DIR$(DIR) FOR LTR=1 TO L LTR$=MID$(W$, LTR, 1) IF INI(P$(X, Y))=0 THEN P$(X, Y)=LTR$:FREE = FREE - 1 IF P$(X, Y)<>LTR$ THEN LTR=L + 1:NEXT LTR:GOTO WORD X=X + DX Y=Y + DY NEXT LTR TOT = TOT - L NEXT W PRINT FOR Y=0 TO SIZE - 1 LINE$=" " FOR X=0 TO SIZE - 1 IF INI(P$(X, Y))=0 THEN P$(X, Y)=CHR$(65 + RND(26)) LINE$=LINE$ + P$(X, Y) NEXT X PRINT LINE$ NEXT Y PRINT FOR W=1 TO WORDS PRINT W$(W) + ": " + KEY$(W) NEXT W
Anonymous
If you try to run old programs in the newer version of the imeight emulator, you'll get errors like "NO VALUE" at TEXTLINES array assignment.
Find and replace to convert 1.0 (Newgrounds deployment) lists to upstream emu and back.
old --> new version
CHARGEN --> FONTALNUM
TEXTLINES --> TEXTLINE$
TEXTCOLOR2 --> TEXTCOLORLC
TEXTCOLOR --> TEXTCOLORUC
Last edit: Csaba Skrabák 2020-06-16