'4 CORNERS SOLITAIRE FOR THE ATARI PORTFOLIO V1.1 DIM SP$(4, 4), DK$(4) CLS PRINT "4 CORNER SOLITAIRE by DolSoft Creations" PRINT 6 GOSUB 31: GOSUB 32: GOSUB 30: GOSUB 9: GOSUB 8: GOSUB 33 1 V$ = INKEY$: IF V$ = "" THEN GOTO 1 IF V$ = CHR$(32) THEN GOSUB 15 IF UCASE$(V$) = "Q" THEN 10 IF UCASE$(V$) = CHR$(27) THEN 10 IF UCASE$(V$) = "F" THEN GOSUB 17: GOSUB 34 IF RIGHT$(V$, 1) = "H" THEN GOSUB 11 IF RIGHT$(V$, 1) = "P" THEN GOSUB 12 IF RIGHT$(V$, 1) = "K" THEN GOSUB 13 IF RIGHT$(V$, 1) = "M" THEN GOSUB 14 GOTO 1 10 'CLS locate 1,1:print space$(40); locate 8,1:print space$(39); for x=2 to 7 locate x,1:print space$(27) next IF SP$(1, 1) = "K" THEN SE = SE + 1 IF SP$(1, 4) = "K" THEN SE = SE + 1 IF SP$(4, 1) = "K" THEN SE = SE + 1 IF SP$(4, 4) = "K" THEN SE = SE + 1 IF SP$(1, 2) = "Q" THEN SE = SE + 1 IF SP$(1, 3) = "Q" THEN SE = SE + 1 IF SP$(4, 2) = "Q" THEN SE = SE + 1 IF SP$(4, 3) = "Q" THEN SE = SE + 1 IF SP$(2, 1) = "J" THEN SE = SE + 1 IF SP$(3, 1) = "J" THEN SE = SE + 1 IF SP$(2, 4) = "J" THEN SE = SE + 1 IF SP$(3, 4) = "J" THEN SE = SE + 1 'CLS locate 1,1 IF SE < 12 THEN PRINT "A perfect score is 12": PRINT "You scored........ "; STR$(SE): END PRINT "YOU WIN!" PRINT "12 is a Perfect Score!" locate 7,1,1 END 11 R1 = R1 - 1 IF R1 < 3 THEN R1 = 6 LOCATE R1, C1 RETURN 12 R1 = R1 + 1 IF R1 > 6 THEN R1 = 3 LOCATE R1, C1 RETURN 13 C1 = C1 - 2 IF C1 < 31 THEN C1 = 37 LOCATE R1, C1 RETURN 14 C1 = C1 + 2 IF C1 > 37 THEN C1 = 31 LOCATE R1, C1 RETURN 15 IF R1 = 3 THEN RR = 1 IF R1 = 4 THEN RR = 2 IF R1 = 5 THEN RR = 3 IF R1 = 6 THEN RR = 4 IF C1 = 31 THEN cc = 1 IF C1 = 33 THEN cc = 2 IF C1 = 35 THEN cc = 3 IF C1 = 37 THEN cc = 4 IF SP$(RR, cc) <> "ù" THEN GOSUB 21 IF B$ = "K" THEN GOSUB 91: IF OK = 0 THEN GOSUB 21: GOTO 20 IF B$ = "Q" THEN GOSUB 92: IF OK = 0 THEN GOSUB 21: GOTO 20 IF B$ = "J" THEN GOSUB 93: IF OK = 0 THEN GOSUB 21: GOTO 20 IF SP$(RR, cc) = "ù" THEN SP$(RR, cc) = B$: MID$(TD$, SP, 1) = " ": LOCATE R1, C1: PRINT B$: GOSUB 16 20 LOCATE R1, C1, 1 RETURN 21 LOCATE 1, 25: PRINT "----- No! ----- "; BEEP LOCATE 1, 25: PRINT "Top Card is: "; LOCATE 1, 38: PRINT B$ RETURN 91 OK = 0 IF RR = 1 AND cc = 1 THEN OK = 1: GOSUB 50 IF RR = 4 AND cc = 1 THEN OK = 1: GOSUB 51 IF RR = 1 AND cc = 4 THEN OK = 1: GOSUB 52 IF RR = 4 AND cc = 4 THEN OK = 1: GOSUB 53 RETURN 92 OK = 0 IF RR = 1 AND cc = 2 THEN OK = 1: GOSUB 54 IF RR = 4 AND cc = 2 THEN OK = 1: GOSUB 56 IF RR = 1 AND cc = 3 THEN OK = 1: GOSUB 55 IF RR = 4 AND cc = 3 THEN OK = 1: GOSUB 57 RETURN 93 OK = 0 IF RR = 2 AND cc = 1 THEN OK = 1: GOSUB 58 IF RR = 3 AND cc = 1 THEN OK = 1: GOSUB 59 IF RR = 2 AND cc = 4 THEN OK = 1: GOSUB 60 IF RR = 3 AND cc = 4 THEN OK = 1: GOSUB 61 RETURN 50 LOCATE 2, 29: PRINT "ÉÍÍ" LOCATE 3, 29: PRINT "º" RETURN 51 LOCATE 6, 29: PRINT "º" LOCATE 7, 29: PRINT "ÈÍÍ" RETURN 52 LOCATE 2, 37: PRINT "ÍÍ»" LOCATE 3, 39: PRINT "º" RETURN 53 LOCATE 6, 39: PRINT "º" LOCATE 7, 37: PRINT "Íͼ" RETURN 54 LOCATE 2, 32: PRINT "ÍÍ": RETURN 55 LOCATE 2, 34: PRINT "ÍÍÍ": RETURN 56 LOCATE 7, 32: PRINT "ÍÍ": RETURN 57 LOCATE 7, 34: PRINT "ÍÍÍ": RETURN 58 LOCATE 4, 29: PRINT "º": RETURN 59 LOCATE 5, 29: PRINT "º": RETURN 60 LOCATE 4, 39: PRINT "º": RETURN 61 LOCATE 5, 39: PRINT "º": RETURN 30 LOCATE 1, 1: PRINT " 4 CORNER SOLITAIRE " LOCATE 2, 1: PRINT " ÚÄÄÄÄÄÄÄÄÄ¿ " LOCATE 3, 1: PRINT " ³ ù ù ù ù ³ " LOCATE 4, 1: PRINT " You must place cards in ³ ù ù ù ù ³ " LOCATE 5, 1: PRINT " this order. Good Luck. ³ ù ù ù ù ³ " LOCATE 6, 1: PRINT " ³ ù ù ù ù ³ " LOCATE 7, 1: PRINT " ÀÄÄÄÄÄÄÄÄÄÙ "; LOCATE 8, 1: PRINT " Press ANY KEY to begin..."; RETURN 31 PRINT "Setting variables..." SP = 1 FOR x = 1 TO 4 FOR y = 1 TO 4 SP$(x, y) = "ù" NEXT y NEXT x RETURN 32 RANDOMIZE WH = INT(RND * 20) + 1 OPEN "I", 1, "4CORN.DAT" FOR x = 1 TO WH INPUT #1, TD$ NEXT x CLOSE #1 RANDOMIZE WH = INT(RND * 48) + 2 TD$ = RIGHT$(TD$, LEN(TD$) - x) + LEFT$(TD$, x) RETURN 33 R1 = 3 C1 = 31 B$ = MID$(TD$, SP, 1) LOCATE 1, 38: PRINT B$ LOCATE R1, C1, 1 RETURN 34 R1 = SR C1 = SC B$ = MID$(TD$, SP, 1) LOCATE 1, 38: PRINT B$ LOCATE R1, C1, 1 RETURN 16 SP = SP + 1 IF SP > 52 THEN SP = 1 IF MID$(TD$, SP, 1) = " " THEN GOTO 16 B$ = MID$(TD$, SP, 1) LOCATE 1, 38: PRINT B$ RETURN 17 LOCATE 1, 25: PRINT "Freeing space: "; SR = R1 SC = C1 GOSUB 4 IF OK = 1 THEN LOCATE 1, 25: PRINT "Fill Box First! "; : BEEP: GOSUB 34: GOSUB 5: RETURN FOR CheckR1 = 1 TO 4 FOR CheckC1 = 1 TO 4 LOCATE 1, 39, 0 CT = CT + 1: IF CT > 4 THEN CT = 1 IF CT = 1 THEN L$ = "³" IF CT = 2 THEN L$ = "/" IF CT = 3 THEN L$ = "Ä" IF CT = 4 THEN L$ = "\" PRINT L$; L1$ = SP$(CheckR1, CheckC1) IF L1$ = "ù" THEN GOTO 2 IF L1$ = "A" THEN L1$ = "1" IF L1$ = "T" THEN L1$ = "10" IF L1$ = "K" THEN GOTO 2 IF L1$ = "Q" THEN GOTO 2 IF L1$ = "J" THEN GOTO 2 FOR VerR1 = 1 TO 4 FOR VerC1 = 1 TO 4 L2$ = SP$(VerR1, VerC1) IF L2$ = "ù" THEN GOTO 3 IF L2$ = "A" THEN L2$ = "1" IF L2$ = "T" THEN L2$ = "10" IF L2$ = "J" THEN GOTO 3 IF L2$ = "Q" THEN GOTO 3 IF L2$ = "K" THEN GOTO 3 IF L1$ = "10" AND L2$ = "10" THEN GOSUB 18: GOSUB 19 IF VAL(L1$) + VAL(L2$) = 10 THEN GOSUB 18: GOSUB 19: GOTO 2 3 NEXT VerC1 NEXT VerR1 2 NEXT CheckC1 NEXT CheckR1 BEEP LOCATE 1, 25: PRINT "Top Card is: "; RETURN 18 SS = 0 IF CheckR1 = VerR1 AND CheckC1 = VerC1 THEN SS = 1 IF VAL(L1$) = 0 THEN SS = 1 IF VAL(L2$) = 0 THEN SS = 1 RETURN 19 IF SS = 1 THEN RETURN SP$(CheckR1, CheckC1) = "ù" SP$(VerR1, VerC1) = "ù" IF CheckR1 = 1 THEN TempR = 3 IF CheckR1 = 2 THEN TempR = 4 IF CheckR1 = 3 THEN TempR = 5 IF CheckR1 = 4 THEN TempR = 6 IF CheckC1 = 1 THEN TempC = 31 IF CheckC1 = 2 THEN TempC = 33 IF CheckC1 = 3 THEN TempC = 35 IF CheckC1 = 4 THEN TempC = 37 LOCATE TempR, TempC: PRINT "ù" IF VerR1 = 1 THEN TempR = 3 IF VerR1 = 2 THEN TempR = 4 IF VerR1 = 3 THEN TempR = 5 IF VerR1 = 4 THEN TempR = 6 IF VerC1 = 1 THEN TempC = 31 IF VerC1 = 2 THEN TempC = 33 IF VerC1 = 3 THEN TempC = 35 IF VerC1 = 4 THEN TempC = 37 LOCATE TempR, TempC: PRINT "ù" RETURN 9 LOCATE 3, 31: PRINT "K Q Q K" LOCATE 4, 31: PRINT "J ù ù J" LOCATE 5, 31: PRINT "J ù ù J" LOCATE 6, 31: PRINT "K Q Q K" 7 V$ = INKEY$: IF V$ = "" THEN GOTO 7 LOCATE 1, 1: PRINT " 4 CORNER SOLITAIRE Top Card is: " LOCATE 4, 1: PRINT " F=CreateFreeWorkSpace ³ ù ù ù ù ³ " LOCATE 5, 1: PRINT " Q=Quit ³ ù ù ù ù ³ " LOCATE 7, 1: PRINT " Use Arrows to choose spot. ÀÄÄÄÄÄÄÄÄÄÙ "; LOCATE 8, 1: PRINT " Press SPACEBAR to Play the Top Card. "; RETURN 8 LOCATE 3, 31: PRINT "ù ù ù ù" LOCATE 4, 31: PRINT "ù ù ù ù" LOCATE 5, 31: PRINT "ù ù ù ù" LOCATE 6, 31: PRINT "ù ù ù ù" RETURN 4 OK = 0 FOR xx = 1 TO 4 FOR yy = 1 TO 4 IF SP$(xx, yy) = CHR$(249) THEN OK = 1: yy = 4: xx = 4 NEXT yy NEXT xx RETURN 5 IF GR = 1 THEN cmode = 2 LOCATE 1, 25: PRINT "Top Card is: "; IF GR = 1 THEN cmode = 0 RETURN