Игры на Бейсике своими руками 1996 г.

Игры - текст игры "PATIENCE".


Игра рассчитана на одного игрока и представляет собой карточ-
ный пасьянс. Правила следующие. Берется колода из 32 карт. Открыва-
ются 9 карт.

Можно отбросить две или три из них, которые образуют результа-
тивные комбинации (масть карт значения не имеет):

1. Две карты, сумма значений которых равна 11 (при этом туз
приравнивается к 1).

2. Трн карты, образующие "стрит" - валет-дама-Король.

На место отброшенных карт выкладываются новые из колоды.

Если нет ни одной результативной комбинации, тогда разрешается
отбросить одну центральную (девятую) карту. Если и после этого не
появилась результативная комбинация, игра заканчивается неудачей-

В том случае, если удалось израсходовать все карты колоды,
считается, что результат удачный.

1 GO TO 100

2 CLEAR 64599: LOAD "chr"CODE
64600

4 GO SUB 8: GO TO 1760

5 SAVE "PATIENCE" LINE 2

8 POKE 23606,88: POKE 23607,2
51: RETURN

9 POKE 23606,0: POKE 23607,60
: RETURN

100 GO SUB 8
1000 REM "ПАСЬЯНС" -==-=—=====
1020 DEF FN C(X)=6*(X-2 OR X=6)
+12*(X=9)+18*(X-3 OR X=7)+24*(X=
4 OR X=8): DEF FN D(X)=2+6»(X>4)
+6*(X>4 AND X<9)
1030 RANDOMIZE : RANDOMIZE
1040 GO SUB 1600: BORDER 4: PAPE
R 4: INK 0: CLS : GO SUB 1710: G
О SUB 1400: GO SUB 1500
1050 REM СТАРТОВАЯ ПОЗИЦИЯ -----
1060 LET A=1: FOR N=1 TO 44 STEP
5:: LET X-FN C(A)+2: LET Y-FN D
(A) +7: PRINT AT Y,X; PAPER 6; IN
КО;" ";A;" ": LET A-A+l: NEXT N
1070 LET A=l: FOR N=1 TO 44 STEP
5: LET X=FN C(A): LET Y=FN D(A)
: LET CS-PS(N TO N+4): LET R$(A)
-CS(2 TO 3): GO SUB 1260: LET A-
A+l: NEXT N: LET CD=9
1080 LET P$=P$(46 TO )
1090 PRINT AT 21,13; PAPER 5; IN
КО;" ";AT 19,13;"OCTA-";AT

20,13;"ЛОСЬ:";AT 21,15;52-CD: IN
PUT ;AT 0,0;"ВВЕДИТЕ НОМЕРА ПОЗИ
ЦИЙ КАРТ";AT 1.0;"(НАПРИМЕР: 35)
; 'О'-КОНЕЦ: "; LINE Z$: IF Z$="
" THEN GO SUB 1230
1100 IF LEN Z$>3 THEN GO SUB 12
30: GO TO 1100

1110 DIM Z(LEN ZS): FOR N=1 TO L
EN ZS: IF CODE Z$(N)<48 OR CODE
Z$(N)>57 THEN GO SUB 1230: GO T
О 1100

1120 LET Z(N)-VAL Z$(N): NEXT N

: IF LEN Z$=l AND Z$(l)<>"9n AN
D ZS(1)<>"0" THEN GO SUB 1230:

GO TO 1100 i .

1130 IF LEN Z$=2 THEN LET FA-0:
IF Z(l)-Z(2) THEN GO SUB 1230:
GO TO 1100
1140 IF LEN Z$=3 THEN LET) FA=0:
IF (Z(1)=Z(2))+(Z(1)=Z(3))+(Z(2
)-Z(3)) THEN GO SUB 12301 GO TO
1100 '
1150 IF VAL ZS-0 THEN LEJT RES-1
: GO TO 1510

1160 IF FA THEN GO SUB 1,230: GO
TO 1100

1170 IF LEN Z$=l THEN LET FA-FA
+ 1

1180 FOR N=1 TO LEN ZS: LET T=T+
VAL RS (Z(N)) : NEXT N: IF Toll A
ND T<>36 AND LEN Z$ol THEN GO
SUB 1230: LET T=0: GO TO 1100
1190 IF T=ll AND LEN Z$o2 THEN
GO SUB 1230: LET T=0: GO TO 110

0

1200 IF T=36 AND LEN Z$<>3 THEN
GO SUB 1230: LET T=0: GO TO 110

0

1210 FOR N=1 TO LEN ZS: LET C$=P
S(1 TO 5) : LET P$=P$(6 TO ) : LE
T CD=CD+1: IF CD-52 THEN GO TO
1510

1220 LET X=FN C(Z(N)): LET Y=FN
D(Z(N)): GO SUB 1260: LET R$(Z(N
))-C$(2 TO 3): NEXT N: LET T=0:
GO TO 1090

1230 INPUT ;AT 0,0;"НЕВЕРНЫЙ BBO
Д";AT 1,0;"ПОЖАЛУЙСТА, ЕЩЕ РАЗ :
"; LINE ZS: IF Z$="" THEN GO T
О 1230:
1240 RETURN

1250 REM ПЕЧАТЬ КАРТ =-====—=-=
1260 INK VAL C$(5): LET E$=C$(4)
: LET F$=C$(1)
1270 PAPER 7: FOR M=Y TO 8+12*(Y
>10)+6*(Y=8): PRINT AT M,X+1; IN
К 0;" ": NEXT M: PRINT AT Y,

X+l;F$;AT Y+6,X+5;FS
1280 PRINT AT Y+l,X+l;ES;AT Y+5,
X+5;ES

1290 IF (F$=,,A,,) + (Fi-"3") + (F$ = ,,5
")+(F$="9") THEN PRINT AT Y+3,X
+ 3 ;E$

1300 IF ( F$=*"2" ) + ( F$="3" ) THEN

PRINT AT Y+2,X+3;E$;AT Y+4,X+3;E
$

1310 IF (F$ = ',4,,) + (F$="5") + (F$»,,8
" ) + (F$=,,91' )+(F$="A") THEN PRINT

AT Y+2,X+2;E$.AT Y+2,X+4,ES;AT
Y+4,X+2;E$;AT Y+4,X+4;E$
1320 IF (FJ-"6")+(F$=n7") THEN
PRINT AT Y+1,X+2;E$;AT Y+1,X+4;E
$;AT Y+3,X+2;E$;AT Y+3,X+4;E$;AT

Y+5,X+2;E$;AT Y+5,X+4;E$
1330 IF (F$="7") THEN PRINT AT
Y+3,X+3;E$

1340 IF (F$="8")+(F$="9")+(F$="A
") THEN PRINT AT Y+l,X+2;E$;AT
Y+1,X+4;E$;AT Y+5,X+2,E$;AT Y+5,
X+4;E$

1350 IF (F$="A") THEN PRINT AT

Y+3,X+2;E$;AT Y+3,X+4;E$

1360 IF F$="3" THEN PRINT

AT Y+l.x+3; "2*ia3":

AT Y+2,X+4; "ig5";

AT Y+3.X+4; "iq5":

AT Y+4■X+2:"p5,sp,iq5":

AT Y+5.X+2:"ol,g3,02"

1370 IF FI="Q" THEN PRINT

AT Y+l.x+2:"o4,jp3,ia7":

AT Y+2.X+2:"o5.sp.iCT5":

AT Y+3 .X+2: "p5,sp,iq5" :

AT Y+4.X+2:"g5,Q4.ia5":

AT Y+5.X+2:"Ql,Q7,q2":

AT Y+6,X+3; "pi,g2"

1380 IF F$="K" THEN PRINT

AT Y+l. x+2:" ip5 , СГ5, ip5" ;

AT Y+2.X+2:"jq5,jge".

AT Y+3■X+2:"jp8,ip5":

AT Y+4.x+2:"ia5,laB":

AT Y+5.x+2:"jp5,P5.1P5"

1390 RETURN

1400 REM ПЕРЕТАСОВКА КОЛОДЫ
1410 LET A$~"": LET D$»"A0120230
3404505606707808909A10D11Q12K13"
1420 PRINT AT 8,9; INK 1; PAPER

5;B$;B$*B$;B$,AT 10,8; FLASH 1;
PAPER 7; INK 2;"ПОДГОТОВКА КОЛО
ДЫ";AT 12,9; FLASH 0; PAPER 5; I
NK 1 ;B$ ;B$ ;B$ ;B$

1430 FOR Q=1 TO 39 STEP 3: FOR P

-1 TO 4. LET COL-O: IF P-l OR P=

3 THEN LET COL—2

1440 LET A$=AS+D$(0 TO Q+2)+B$(P

)+STRS COL

1450 NEXT P: NEXT Q

1460 CLS : PRINT AT 8,9; PAPER 5

; INK 1;B$;B$;B$;B$;AT 10,10; PA

PER 7; FLASH 1;"ПЕРЕТАСОВКА...";

AT 12,9; PAPER 5; INK 1; FLASH 0

;B$;B$;BS;B$

1470 FOR N-l TO 60: LET л=1+(5*(
1+INT (RND*50))): IF n/2=INT (П/
2) THEN LET A$-A$(A TO A+4)+A$(
TO A-l)+A$(A+5 TO ): BEEP .01,N
1480 IF n/2<>INT (П/2) THEN LET
A$=A$( TO A-l)+AS(A+5 TO )+A$(A
TOA+4): BEEP .01.N+10
1490 NEXT N: LET P$-A$: CLS : RE
TURN

1500 INPUT "НАЖМИТЕ ENTER ДЛЯ ПР
ОДОЛЖЕНИЯ "; LINE Z$: BEEP .05,1
0: RETURN

1510 REM КОНЕЦ ИГРЫ -=—==—=—
' 1520 PAPER 5" INK 1: FOR N-12 TO
21: PRINT AT N,0; PAPER 5;"

": N

EXT N

1530 IF RES THEN PRINT AT 13,1
;"НА ЭТОТ РАЗ ВАМ HE ПОВЕЗЛО";AT
14,1;"ЗНАЧИТ - HE СУДЬБА...": F
OR N=-10 TO -30 STEP -1: BEEP AB
S N/100,N: NEXT N
1540 IF NOT RES THEN PRINT AT
13,1; FLASH 1;"!!!!! УРА, ПОВЕЗЛ
О !!!!!";AT 14,1; FLASH 0;"BAM С
ОПУТСТВУЕТ УДАЧА.": FOR N=1 TO 3
: FOR M-10 TO 40 STEP 3: BEEP .0
1,M: NEXT M: PAUSE 10. NEXT N
1550 PRINT AT 16,7;"ВЫ МОЖЕТЕ:";
AT 18,5;"1 - СЫГРАТЬ ЕЩЕ";АТ 18,
5;AT 19,5;"2 - ЗАВЕРШИТЬ ИГРУ"

1560 PAUSE О

1570 IF INKEY$-"1" THEN BORDER
4: PAPER 4: INK 0: CLS : GO SUB
1710: GO SUB 1710: GO SUB 1460:
GO SUB 1500: GO TO 1050
1580 IF INKEY$="2" THEN BORDER
5: CLS : PRINT AT 10,6;"ВКЛЮЧИТЕ
МАГНИТОФОН "''" ДЛЯ ЗАГРУЗКИ С
ЛЕДУЮЩЕЙ ИГРЫ": GO SUB 9: LOAD "

1590 PAUSE 0: GO TO 1570

1600 REM ИНСТРУКЦИЯ

1610 LET T$= "

■ ■ I I ■

II I I I I
III

! ! S |

": REM набирается при помощи io8
1620 BORDER 2: PAPER 3: INK 1: С
LS : PRINT AT 7,0; BRIGHT 1;T$:
FOR N=5 TO 15 STEP 10: PRINT AT
N,9; INK 0; PAPER 6; BRIGHT 1; F
LASH 1:" ПАСЬЯНС": NEXT N
1630 PRINT #1;AT 0,0;"ДЛЯ ИНСТРУ
КЦИИ НАЖМИТЕ »»1«"»;AT 1,0;"ИНАЧ
E - ЛЮБУЮ ДРУГУЮ КЛАВИШУ": PAUSE

0: IF INKEYSo" 1" THEN RETURN
1640 CLS : PRINT AT 1.1; INK 6;"

""11-UP"" ПАСЬЯНС: РУКОВОДСТВО"
: PAUSE 25

1650 DIM U$(7,30): LET U$(l)-"OT
КРЫВАЮТСЯ ДЕВЯТЬ КАРТ.": LET U$(
2)-" ВЫ МОЖЕТЕ ОТБРОСИТЬ СЛЕДУЮЩИ
Е:-": LET и$(3)-"ДВЕ КАРТЫ, СУММ
А ЗНАЧЕНИЙ": LET US(4)-"КОТОРЫХ
РАВНА 11 ИЛИ": LET и$(5)="ТРИ КА
РТЫ, ОБРАЗУЮЩИЕ СТРИТ:": LET U$(
6)-"ВАЛЕТ-ДАМА-КОРОЛЬ": LET U$(7
)■"(JACK-QUEEN-KING)": LET U-7
1660 GO SUB 1690: GO SUB 1500: L
ET U$(l)-"МАСТЬ КАРТ ЗНАЧЕНИЯ HE
ИМЕЕТ.": LET US(2)-"ЕСЛИ ПОДХОД
ЯЩИХ ВАРИАНТОВ НЕТ,": LET US(3)-
"ВЫ МОЖЕТЕ ОТБРОСИТЬ ОДНУ КАРТУ"
: LET и$(4)="ИЗ ЦЕНТРА: КАРТА 9.
": LET и$(5)-"ЕСЛИ ПОСЛЕ ЭТОГО Н
Е ПОЯВИЛАСЬ": LET US(6)- "РЕЗУЛЬ
ТАТИВНАЯ КОМБИНАЦИЯ,": LET US(7)
-"ТО ЗАВЕРШИТЕ ИГРУ ВВОДОМ "О1":
LET U—7

1670 GO SUB 1690: GO ТО 1500
1680 RETURN

1690 FOR N-2 TO 17: PRINT AT N,1
; PAPER 5;"

": NEXT N
1700 LET B=l: FOR N=4 TO 3 + (U*2)
STEP 2: FOR M=1 TO 30: PRINT AT
N,M; PAPER 7; INK 1;"*": PAUSE
2: PRINT AT N,M; PAPER 5;US(B,M)
: BEEP .01,0: NEXT M: LET B=B+1:
NEXT N

1710 REM ИНИЦИАЛИЗАЦИЯ =———
1720 LET A=1: LET CD=0: LET T-0:

LET FA=0: LET RES=0
1730 DIM RS(9,5)
1740 LET B$="BDCE"
1750 RETURN

1760 REM UDG-ГРАФИКА ——=====
1770 PAPER 7: BORDER 7: INK 1: С
LS : PRINT AT 12,5;"ОСТАНОВИТЕ M
АГНИТОФОН"

1780 POKE 23675,88: POKE 23676,2
55: RESTORE 1800: FOR N=0 TO 4:
FOR M-0 TO 7: BORDER M: BEEP .02
,N

1790 READ A: POKE USR CHRS (97+N
)+M,A: NEXT M: NEXT N: RUN
1800 DATA 0,95,219,219,219,219,2
23,0

1810 DATA 0,16,56,124,254,124,56
,16

1820 DATA 0,108,254,254,124,56,1
6,0

1830 DATA 0,16,56,124,254,214,16
,56

1840 DATA 0,56,56,16,214,254,214
,16

1850 RUN

9999 BORDER 7: PAPER 7: INK 0




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
С миру по биту - советы читателей по игре "Worm in Paradise".
Железо - обзор микропроцессора Zilog Z380, продолжение.
Zx-Net - ноде-лист пользователей, имеющих сетевой адрес.
Улыбнись - дневник Chasm`а.
COPY 3.3T - Oписание копировщика программ с настройкой дисковых процедур.

В этот день...   20 апреля