цветом и задания номеров столбца и строки ответственна вызывающая программа.
Предлагаемая подпрограмма строит изображения карт размером /строк по 7 столбцов, используя псевдографические и алфавитно-цифровые символы, а также нестандартные символы карточных мастей (коды с 3 по 6). Последние позволяют построить довольно хорошие изображения туза и простых карт от двойки до десятки. Что касается "картинок", то здесь пришлось ограничиться надписями на английском:
JACK (валет), QUEEN (дама) и KING (король).
Изображения немного напоминают те самодельные карты, которыми в недоброй памяти времена пользовались в местах не столь отдаленных, но зато цвет фона получился как в лучших домах Филадельфии и Бостона, когда там играли за карточными столами крытыми зеленым сукном.
Номера карт закодированы следующим образом:
• с 1 по 13—черви,
• с 14 по 26—бубны,
• с 27 по 39 — трефы,
• с 40 по 52 — пики,
• каждая группа кодов (масть) начинается с туза, затем следует двойка и далее по старшинству.
Демонстрационная программа, составленная для отладки подпрограммы, устанавливает текстовый режим с 43 строками, очищает экран и создает фон зеленого цвета. В этой программе объявлен массив из 7 строк по 7 символов для создания изображений, а также заданы "пустая" строка для лицевой стороны и пара строк ("четная" и "нечетная") для вывода изображения обратной стороны.
Затем в циклической части производится вызов подпрограммы построения изображений карт, причем значения координат и номера карт задаются таким образом, чтобы разложить все карты колоды в стопки по мастям. По окончании циклической части программа демонстрирует вывод оборотной стороны и стирание изображения. Для удобства восприятия используется задержка 1 с.
DIM a(l ТО 7) AS STRING * 7
SCREEN 0
WIDTH 80, 43
empty$ == CHR$(249)+" -"+CHR$(249)
odd$ = CHR$(219)+CHR$(176)+CHR$(219)+CHR$(176)+CHR$(219)+
CHR$(176) + CHR$(219)
even$ = CHR$(176)+" "+CHR$ (176)+" "+CHR$ (176)+" "+CHR$ (176)
COLOR 0, 2
CLS
FOR jet = 1 TO 52
row% = <jc% - 1) \ 4 + 2: temp% = (jc% - 1) MOD 4+1
column's. = 17 * tempt - 16 + row%: card% = 13 * temp% + row% - 14
GOSUB drawcard
SLEEP 1 NEXT jc%
card% = -1: row% = 25: column% = 35 GOSUB drawcard