home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er
/
64ER_CD.iso
/
sh1x
/
sh17b.d64
/
solitaire
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
1995-03-30
|
4KB
|
166 lines
1000 REM *************************
1010 REM * *
1020 REM * S O L I T A I R E *
1030 REM * *
1040 REM * VON DIRK EUMANN *
1050 REM * ITZEHOER STR. 7C *
1060 REM * 2300 KIEL - 1 *
1070 REM * *
1080 REM *************************
1090 :
1100 REM --- FARBEN -------------------
1110 :
1120 HF =11 :REM HINTERGRUND/RAHMEN
1130 F0$="":REM CURSOR
1140 F1$="[144]":REM LEERE FELDER
1150 F2$="[152]":REM GITTER
1160 F3$="[155]":REM BESETZTE FELDER
1170 :
1180 REM --- SPIELFELDELEMENTE --------
1190 :
1200 X$ =F3$+"[209]"+F2$+"[192]"
1210 X1$=X$+X$+X$+X$+F3$+"[209]"
1220 X2$=F2$+"[221] [221] [221][160][221][160][221]"
1230 X3$=X$+X$+X$+X$+X$+X$+X$+X$+X1$
1240 X4$=F2$+"[221] [221] [221][160][221][160][221][160][221][160][221][160][221][160][221][160][221][160][221][160][221] [221]"
1250 X5$=LEFT$(X3$,24)+F1$+"[215]"+MID$(X3$,27)
1260 :
1270 REM --- WEITERE VARIABLE ---------
1280 :
1290 BS=1024 :REM VIDEO-RAM
1300 FS=55296:REM FARB-RAM
1310 JS=56320:REM JOYSTICK PORT#2
1320 R =104 :REM RESTLICHE STEINE
1330 WA=600 :REM DAUER WARTESCHLEIFE
1340 :
1350 POKE53280,HF:POKE53281,HF
1360 PRINTCHR$(9)CHR$(142)CHR$(8)CHR$(147);
1370 GOSUB2410:REM SPIELFELD
1380 :
1390 REM ------------------------------
1400 REM STEUERUNG
1410 REM ------------------------------
1420 FORI=1TO100:NEXT
1430 POKE204,0:GETA$
1440 J=PEEK(JS):IF(JAND31)=31 AND A$=""THEN1430
1450 POKE205,2
1460 IFPEEK(207)THEN1460
1470 POKE204,1:CZ=PEEK(214):CS=PEEK(211)
1480 IFA$=" "THENF=1:POKE53281,15:GOTO1360
1490 IF(JAND16)=0THENGOSUB1830:GOTO1420
1500 IF(JAND1) =0THENGOSUB1580:GOTO1420
1510 IF(JAND2) =0THENGOSUB1640:GOTO1420
1520 IF(JAND4) =0THENGOSUB1760:GOTO1420
1530 IF(JAND8) =0THENGOSUB1700:GOTO1420
1540 GOTO1420
1550 :
1560 REM --- OBEN ---------------------
1570 :
1580 IF CZ<=0 THEN RETURN
1590 IF CZ<=8 THENIF CS<15 OR CS>23 THENRETURN
1600 PRINTF0$"[145][145]";:RETURN
1610 :
1620 REM --- UNTEN --------------------
1630 :
1640 IF CZ>=24 THEN RETURN
1650 IF CZ>=16 THENIF CS<15 OR CS>23 THENRETURN
1660 PRINTF0$"";:RETURN
1670 :
1680 REM --- RECHTS -------------------
1690 :
1700 IF CS>=31 THEN RETURN
1710 IF CS>=23 THENIF CZ<8 OR CZ>16 THENRETURN
1720 PRINTF0$"";:RETURN
1730 :
1740 REM --- LINKS --------------------
1750 :
1760 IF CS<=7 THEN RETURN
1770 IF CS<=15 THENIF CZ<8 OR CZ>16 THEN RETURN
1780 PRINTF0$"[157][157]";:RETURN
1790 :
1800 REM ------------------------------
1810 REM SPRUNG
1820 REM ------------------------------
1830 Z=PEEK(BS+40*CZ+CS):IF Z<>81 THENRETURN
1840 IF(JAND1)=0THEN1920
1850 IF(JAND2)=0THEN2020
1860 IF(JAND4)=0THEN2220
1870 IF(JAND8)=0THEN2120
1880 RETURN
1890 :
1900 REM --- OBEN ---------------------
1910 :
1920 Z1=PEEK(BS+40*(CZ-2)+CS)
1930 Z2=PEEK(BS+40*(CZ-4)+CS):GOSUB2330
1940 IF F THEN F=0:GOTO2350
1950 FORI=0TO2:X=40*(CZ-2*I)+CS:POKEBS+X,86:POKEFS+X,ABS(I>1):NEXT
1960 FORI=1TOWA:NEXT
1970 PRINTF1$"[215]";:POKE214,CZ-2:POKE211,CS:SYS58640:PRINT"[215]";
1980 POKE214,CZ-4:POKE211,CS:SYS58640:PRINTF3$"[209][157]"F0$;:RETURN
1990 :
2000 REM --- UNTEN --------------------
2010 :
2020 Z1=PEEK(BS+40*(CZ+2)+CS)
2030 Z2=PEEK(BS+40*(CZ+4)+CS):GOSUB2330
2040 IF F THEN F=0:GOTO2350
2050 FORI=0TO2:X=40*(CZ+2*I)+CS:POKEBS+X,86:POKEFS+X,ABS(I>1):NEXT
2060 FORI=1TOWA:NEXT
2070 PRINTF1$"[215]";:POKE214,CZ+2:POKE211,CS:SYS58640:PRINT"[215]";
2080 POKE214,CZ+4:POKE211,CS:SYS58640:PRINTF3$"[209][157]"F0$;:RETURN
2090 :
2100 REM --- RECHTS -------------------
2110 :
2120 Z1=PEEK(BS+40*CZ+(CS+2))
2130 Z2=PEEK(BS+40*CZ+(CS+4)):GOSUB2330
2140 IF F THEN F=0:GOTO2350
2150 FORI=0TO2:X=40*CZ+(CS+2*I):POKEBS+X,86:POKEFS+X,ABS(I>1):NEXT
2160 FORI=1TOWA:NEXT
2170 PRINTF1$"[215]";:POKE214,CZ:POKE211,CS+2:SYS58640:PRINT"[215]";
2180 POKE214,CZ:POKE211,CS+4:SYS58640:PRINTF3$"[209][157]"F0$;:RETURN
2190 :
2200 REM --- LINKS --------------------
2210 :
2220 Z1=PEEK(BS+40*CZ+(CS-2))
2230 Z2=PEEK(BS+40*CZ+(CS-4)):GOSUB2330
2240 IF F THEN F=0:GOTO2350
2250 FORI=0TO2:X=40*CZ+(CS-2*I):POKEBS+X,86:POKEFS+X,ABS(I>1):NEXT
2260 FORI=1TOWA:NEXT
2270 PRINTF1$"[215]";:POKE214,CZ:POKE211,CS-2:SYS58640:PRINT"[215]";
2280 POKE214,CZ:POKE211,CS-4:SYS58640:PRINTF3$"[209][157]"F0$;:RETURN
2290 :
2300 REM ------------------------------
2310 REM EINGABEFEHLER/REST
2320 REM ------------------------------
2330 IF Z1<>81 OR Z2<>87 THENF=1:RETURN
2340 R=R-1:PRINT""F2$;TAB(32)R"[157] "
2350 POKE214,CZ:POKE211,CS:SYS58640
2360 RETURN
2370 :
2380 REM -----------------------------
2390 REM SPIELFELD AUSGEBEN
2400 REM -----------------------------
2410 PRINTTAB(15)X1$F2$" REST:";R
2420 PRINTTAB(15)X2$
2430 PRINTTAB(15)X1$:PRINTTAB(15)X2$
2440 PRINTTAB(15)X1$:PRINTTAB(15)X2$
2450 PRINTTAB(15)X1$:PRINTTAB(15)X2$
2460 PRINTTAB( 7)X3$:PRINTTAB( 7)X4$
2470 PRINTTAB( 7)X3$:PRINTTAB( 7)X4$
2480 PRINTTAB( 7)X5$:PRINTTAB( 7)X4$
2490 PRINTTAB( 7)X3$:PRINTTAB( 7)X4$
2500 PRINTTAB( 7)X3$:PRINTTAB(15)X2$
2510 PRINTTAB(15)X1$:PRINTTAB(15)X2$
2520 PRINTTAB(15)X1$:PRINTTAB(15)X2$
2530 PRINTTAB(15)X1$:PRINTTAB(15)X2$
2540 PRINTTAB(15)X1$;F0$;
2550 IFFTHENF=0:GOTO 2630
2560 F=1:PRINT"":FORI=1TO9:PRINT:NEXT
2570 PRINTTAB(9)F1$"[176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]"
2580 PRINTTAB(9)"[221]"F0$" *** SOLITAIRE *** "F1$"[221]"
2590 PRINTTAB(9)"[221] [221]"
2600 PRINTTAB(9)"[221]"F2$"(C)1986 DIRK EUMANN"F1$"[221]"
2610 PRINTTAB(9)"[173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189]"
2620 FORI=1TO3000:NEXT:PRINT"";:POKE53281,15:GOTO2410
2630 POKE214,12:POKE211,19:SYS58640
2640 POKE53281,HF:RETURN