экран контурное изображение доски (окраска клеток несущественна для решения задачи) и поместим в одну из клеток изображение маркера. Этот маркер (аналог курсора при вводе текста) нужен для показа той клетки доски, на которую может быть поставлен ферзь.

DEFINT I-K

CLS 'построение изображения доски и метки

ТОР$ = CHR$(218): WAbL$ = CHR$(179)

SHELP$ = CHR$(195): BOT$ = CHR$(192)

FOR I = 1 TO 7

TOP$ = TOP$ + STRING$(4,196) + CHR$ (194)

WAI.L$ = WALL$ + STRING$(4,32) + CHR$ (179)

SHELF$ = SHELF$ + STRING$(4,196) + CHR$(197)

BOT$ = ВОТ$ + STRING$(4,196) + CHR$(193) NEXT I

TOP$ = TOP$ + STRING$(4,196) + CHR$(191) WALL$ = WAbL$ + STRING$(4,32) + CHR$(179) SHELP$ = SHELF$ + STRING$(4,196) + CHR$ (180) BOT$ = ВОТ$ + STRING$(4,196) + CHR$(217) PRINT TOP$ FOR I = 1 ТО 7

PRINT WALL$

PRINT SHELF$ NEXT I

PRINT WALL$ PRINT BOT$ 1=4: J =4:

LOCATE 2*1, 5*J-2 PRINT CHR$(176) + CHR$(176);

Цикл игры начинается с опроса клавиатуры. Нажатие стрелок указывает направление перемещения маркера. Нажатие клавиши q используется играющим, чтобы "попросить пардону" у программы и выйти из игры. А по нажатию клавиши Enter производится ввод условного (весьма!) изображения ферзя.

DO 'начало цикла игры v$ = "" 'опрос клавиатуры DO

v$ = INKEY$

LOOP UNTIL (v$ = "q" OR LEN(v$) > 1 OR v$ = CHR$ (13) ) IF v$ = "q" THEM EXIT DO

Id = 0: Jd = 0 'определение изменения координат SELECT CASE RIGHT$(v$, 1) CASE "P": Id = 1 CASE "M": Jd = 1 CASE "K": Jd = -1 CASE "H": Id = -1 END SELECT

Если координаты маркера не изменились, то вместо изображения маркера выводится изображение ферзя и производится вывод пробелов во все поля, которые пробиваются новым ферзем.

IF Id = О AND Jd = О THEN

'очистка битых полей новым ферзем FOR in = 1 ТО 8