ZX Spectrum
Game

OXO

Pan Books Ltd (Великобритания),

Автор:

Жанр: Настольные игры


Язык

  • Русский
  • English

Управление

  • Клавиатура(?)

Игроков

  • Один

Доступные версии

Неофициальное издание
Играть!

Доступные версии

Неофициальное издание
Играть!
  •  Описание (авт.пер.)
  •  Информация
Описание OXO (автоматический перевод)

Оксо ароматизированный Forth

         Ричард Армстронг из Эйршире писал

         Программа в Abersoft Forth, и мы решили        печатать для всех наркоманов этого языка!

Эта программа была написана с использованием 48K Spectrum и вперед Реализация создан Abersoft. Он использует около 8К памяти, но, вероятно, может быть использован с вперед систем, имеющих менее 8 экранов (например Artic вперед), если экраны в список были включены и составлен по одному. Все ВПЕРЕД является довольно стандартным для графики, за исключением подпрограммы в экранах 1, 3, 4 и 5 бит них легко могли заменить стандартные графику на любой системе.

   [На самом деле, с немного усилий оказалось еще более port- состоянии, чем это. Недавно закончил ввода Forth Реализация Дэвид Миллингтон, опубликованные в 1984 году Компьютера, я думал, что увижу, если он был достаточно мощным, иметь дело с этой программой. Это было, но не без некоторых дополнения. К счастью дополнения к системе Форт-х пункт продажи.

   Для того чтобы запустить полученный программу, вам не нужно что-нибудь, но 48K Spectrum (или эмулятор). Г-н Миллингтон-х Форт позволяет сохранить установленную программу в состоянии в которой она может быть вызвана из основной – в отличие от, скажем, Aberforth. Просто загрузите “ОХО” и наслаждаться игрой в игру. Если, однако, Вы хотите загрузить и изучить программный код, вы будете нужен Forth системы (который должен быть доступен из мира Спектрум, и, возможно, в другом месте, а); Набор инструментов словарь я написал в порт этой программы, которая поставляется с TZX компилятора Я загрузил но, только, чтобы Разумеется, я также приложил к TZX оксо, и, Конечно, исходный код оксо, которая также находится на TZX.    Есть две вещи, чтобы отметить о загрузке этого источника. Во-первых, необходимо загрузить набор инструментов, прежде чем загрузить ОХО Источник. Более trickily, источник больше, чем нормальный Форт размер кода. Это вызывает некоторые проблемы, если вы хотите, чтобы редактировать код, но просмотра, печати и работает она должна работа. Вы должны изменить Форт Basic программу, чтобы иметь дело с ним, хотя. Перерыв в перед загрузкой набор инструментов, затем изменить 3004 в строке 140 в 4500, и 3001 в линиях 3060 и 3065 в 4497. Тогда RUN, и загрузить набор инструментов, затем код. Это займет много времени, чтобы собрать (это нормально для системы, а не в результате изменения), но Теперь вы можете иметь рыться программы. Не забыть повторно загрузить систему Forth с нуля, если вы хотите использовать другой Forth программа впоследствии!

   Остальная часть этого текстового файла является оригинальный текст статья, которая предполагает, что вы используете Abersoft Forth. Некоторые это не применимо к текущему implementa- ния (например, потому, что господин Миллингтон имеет милостиво обошелся без безумном идеи “экранов”), но большинство из них это, более или менее. Как было бы невозможно отделить два чисто, я просто дам весь текст.]

Функция этой программы заключается, чтобы играть в игру крестики

и кресты с игроком, пытаясь разместить три иксы в строка и компьютер пытается сделать то же самое с 0-х годов. разумно несложный характер этой игры позволило мне сосредоточиться на хорошем стиле программирования, а не на проектирование нескладный стандартных подпрограмм для выполнения сложно Задачи.

   Чтобы использовать эту программу с Spectrum работает Abersoft ВПЕРЕД, просто наберите в экраны 1-9, как показано в листинге Затем введите 9 сработал. После появления «ок» сообщение, введите слово загрузчик и текст программы будет компилируется в машинный код в около 35 секунд, после чего будет отображаться сообщение «ГОТОВ». При входе Программа следует отметить следующие моменты:

Экран один используется для определения графические символы и так

должны использоваться только с Abersoft далее.

В строках 1, 2, 4 и 5 экране 3, строки 1, 2 и 3

Экран 4 и линии 1, 2 и 3 экрана 5 капитал Буквы внутри строки кавычки должны быть введены с графика режиме, поскольку это УДГ-х определены в Экран 1.

Экран +9 не должны содержать ничего, кроме определения для

Слово погрузчик.

После появляется сообщение READY, игра может быть

начал, введя RUN. 3×3 сетка затем обращается и баллы за игроком и Spectrum отображаются. Случайный функция используется, чтобы определить, является ли компьютер или игрок перемещает первый. В ответ на сообщение «Ваше Перемещение “, игрок должен сделать ход, нажав число Ключ на клавиатуре спектра в соответствующей числу на площади он желает переехать в. Например, чтобы поместить X в квадрате в центре пресс-ключа сетки ‘5’.

Компьютер будет игнорировать ключи вне диапазона 1-9, или клавиши, соответствующие квадраты, которые уже занятые X или 0. Игра заканчивается, если игрок или ком- пьютер выиграл или сетка заполнена. Когда это происходит, Игрок будет предложено, если он хотел бы другую игру и должен ответить, нажав Y (Да) или N (для NO).

   Компьютер делает свои ходы с помощью следующей Алгоритм: * 1 Найдите двух 0-х годов в один ряд с пробелом рядом с ними. Если Вы найдете то эта ситуация разместить еще 0 в пространстве и так выиграть игру.

  • 2 Если вы не можете удовлетворить указанным выше требованиям, то искать в течение двух крестиков в один ряд с пробелом между ними. Если вы приехали по этой ситуации поместить 0 в пространстве, так профилактики ваш оппонент от победы в игре.
  • 3 Если ни одна из указанных двух стадий может быть осуществлена затем выбрать случайное, пустой угол (квадратов 1, 3, 7 и 9) и поставить 0 в нем.
  • 4 Если никаких шагов были проведены затем искать через все углы и поставить 0 в первом пустом углу попадаются.
  • 5 Если ни один из шагов 1-4 не может быть завершена, то подобрать случайный квадрат в любом месте на борту и поставить 0 в этом случае он пуст.
  • 6 Если все вышеуказанные действия не увенчались успехом, поиск через каждый квадрат на сетке и поместить 0 в первом пустой вас найти.

ЧЕТВЕРТЫЙ это язык, который становится все более популярным

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

   А также быть в состоянии использовать SAVET спасти экраны в Лента, возможно также, чтобы сохранить экраны к ZX микро- ездить, используя следующие команды из ВПЕРЕД:

    Пн (повторно ввести BASIC)

    NEW     CLEAR, 50000     SAVE * “м”; 1; “Диск” КОД 53248,11263

Эти команды приводят к уничтожению четвертого

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

   Чтобы перезагрузить ОПИСАННОЙ текстовые экраны из Microdrive, включите Спектр и введите

    CLEAR, 50000

    НАГРУЗКИ * “м”; 1; “Диск” КОД 53248     NEW

Затем загрузите компилятор вперед от ленты, как обычно.

 Переменные

[Forth Миллингтон не позволяет имена переменных более чем одной буквы; эта таблица дает оригинальное имя для тех, кто хочет прочитать официальный исходный код, и назвать я вместо него используется.]

LIN, COL [L, C] строк и столбцов значения Храните используется при

                    печать Х или 0.

СОВЕТ [б @] Массив 9 байт, каждый байт соот                     ствующих квадрата на сетке. Байт                     содержит 0, если соответствующая клетка                     содержит 0, 1, если квадрат содержит                     X и 2, если клетка пуста.

BOX [о] Используется различными словами для хранения                     значение квадрата.

CORNERS [г @] массив из 4 байтов, используемых для хранения off-                     наборы, которые будут добавлены к стоимости СОВЕТА                     [Б @] дать адрес углу.

СИМВОЛ [ч] Используется словами, занимающихся обеих Х-х и                     0 ‘(например WIN). Если эта переменная имеет                     Значение 1, то слово имеет дело с                     X. Если значение равно 0, то слово                     имеет дело с 0.

ИГРОК, КОМП [р, м] Используется, чтобы сохранить счет для игрока

                    и компьютер.

 Forth слова

Слова, используемые в программе есть следующие эффекты

при выполнении:

DEFINE Используется для производства определенных пользователем графику.

КАРТИНА Рисует сетку на экране телевизора,                печатает баллы для игрока и ком-                компьютером и устанавливает все байты в массив СОВЕТА                2 (т.е. пустым).

CO-ORDS Находит значения LIN и COL Корреспон-                динь квадрату, число которых находится на вершине                стек.

DRAWX Рисует X на экране на площади, вершина                левый угол задается значениями                Лина и COL.

ЧИСТЫЕ Проверяет квадрат обозначается BOX                пуст.

Высокий, низкий Проверьте, что значение BOX находится в диапазоне                1-9.

XIN Принимает ряд с клавиатуры и                печатает X в соответствующем квадрате.

Рисовать-O Рисует 0 на площади, указанной BOX.

               [Нет, я не знаю, почему это DRAWX без                дефис и рисовать-O с, либо.] 2row Проверяет есть два иксы или 0-х подряд.

               [Forth Миллингтон не позволяет слова                начиная с цифры, так что я назвал это                tworow.] УГОЛ Ищет пустой угол.

RANDOM Производит случайное число между 0 и                число в стеке. Это слово может быть                использовать в других программах. [Едва. Намного лучше                ГСЧ может быть легко написана, даже в Forth.                Это достаточно хорошо для этого программы, хотя.] ANYSQUARE выбирает случайное, пустой квадрат.

Систематический поиск всю сетку, чтобы найти пустой                квадрат.

RANDCORNR выбирает случайное, пустой угол. [Почему нет                RANDCORNER? Я не знаю. Шахта называется                randcorner.] СМОТРИТЕ проверяет, есть ли клетка пуста.

2INROW Проверяет всю сетку, чтобы найти две Х или 0 ‘                подряд. [Вызывается twoinrow в порту, для                по той же причине, как 2row.] FIND-O Поиск пустого квадрата для 0.

NewGame? Проверяет, является ли Y или N нажата в                Ответ на запрос данной в конце                игра.

3LINE Используется для проверки в течение трех крестиков или 0-х подряд.                [Вызывается threeline в моей версии, как указано выше.] WIN Проверяет, если игрок или компьютер имеет                выиграли игру.

ПОЛНЫЙ Проверяет нет пустые квадраты                в сетке.

XWINS Печатает сообщение о том, что игрока                выиграл игру.

OWINS Печатает сообщение о том, что                Компьютер выиграл игру.

XMove, OMOVE Позволяет игрок или компьютер сделать ход.

TIE Указывает на ничью.

Xstart, позволяет игроку или компьютер сделать первый OSTART шаг.

Воспроизведение Рисует сетку, а затем решил ли                игрок или компьютер будет двигаться сначала с помощью                слово RANDOM.

RUN Запускает игру после компиляции.

[И тогда есть два слова, которые я должен был добавить, потому что в

Оригинальная версия их функции были выполнены в для компиляции Время, и одно слово только описаны в основном тексте:

udgs Настраивает UDGs по телефону определить 10 раз. initvars Инициализация все использовали переменные, и устанавливает                выделено памяти для б (Совет) и г                (УГОЛ).

погрузчик Звонки udgs и initvars, устанавливает прописных букв                (Что-то Abersoft Форт-видимому делает

               по умолчанию) и запускает игру.]

[И, наконец, оригинальный Abersoft Форт исходный код.

Единственное изменение состоит в том, что, для удобства чтения, я развернул длинные линии, где это возможно, и оставили пустые последние строки.]

SCR # 1

  0 (DEFINE ГРАФИКА)   1 DEFINE 8 * УДГ + DUP 8 + SWAP DO I C! LOOP;   2 HEX   3 3C 3C 3C 3C 3C 3C 3C 3C 0 DEFINE   4 0 0 FF FF FF FF 0 0 1 DEFINE

  5 3C 3C FF FF FF FF 3C 3C 2 DEFINE
  6 FF FF FF FF FF E7 C3 81 3 DEFINE
  7 81 C3 E7 FF FF FF FF FF 4 DEFINE
  8 FF 7F 3F 1F 1F 3F 7F FF 5 DEFINE
  9 FF FE FC F8 F8 FC FE FF 6 DEFINE

 10 FF FE FC F8 F0 E0 C0 80 7 DEFINE  11 1 3 7 F 1F 3F 7F FF 8 DEFINE  12 80 C0 E0 F0 F8 FC FE FF 9 DEFINE  13 FF 7F 3F 1F 0F 07 03 01 DEFINE

 14 ДЕСЯТИЧНАЯ

SCR # 2

  0 (переменные)   1   2 0 Переменная LIN     0 Переменная COL   3 0 Переменная СОВЕТ 7 ALLOT     0 Переменная BOX   4 0 Переменная CORNERS 2 выделить     0 2 6 8 CORNERS 3 + C!

  5 CORNERS 2 + C!

            CORNERS 1 + C!

  6 CORNERS C!

  7 0 Переменная СИМВОЛ     0 Переменная ИГРОК   8 0 Переменная КОМП   9 0 Переменная XVAL [Эти два никогда не используются в игре.     0 Переменная YVAL я назвал их Х и У, просто чтобы быть

 10 полная.]

SCR # 3

  0 {SCREEN ИНИЦИАЛИЗАЦИИ)   1:. SLAT 6 AT “А А”;   2:. STRIPE 6 AT “BBBBBCBBBBBCBBBBB”;   3: УСТАНОВКА CLS 18 1 DO Я ламелей LOOP 6 ПОЛОСА 12 STRIPE;   4:.. НУМС 3 8 AT “1 A 2 A 3” 9 8 AT “4 5 6»   . 5 15 8 AT “7 8 9»;   6: изображение УСТАНОВКА НУМС BOARD 9 2 Заполните 18 0 AT “. Spectrum:”   7 КОМП @. 18 22 AT “игрока:”. ИГРОК @. ;   8   9 (программных процедур)  10: CO-ORDS     ДЕЛО 1 из 1 6 ENDOF  11 2 НА 1 12 ENDOF          3 от 1 18 ENDOF  12 4 из 7 6 ENDOF          5 из 7 12 ENDOF  13 6 из 7 18 ENDOF          7 из 13 6 ENDOF  14 8 13 12 ENDOF          9 из 13 18 ENDOF  15 ENDCASE

    Полковник! LIN! ;

SCR # 4

  0 {программных процедур ПРОДОЛЖЕНИЕ)   1: DRAWX CO-ORDS     LIN @ COL @. “#H K #” [Все # ‘ы в этих линиях   2 LIN @ 1+ COL @. “Я # D # J” следует читать как Graphics     LIN @ 2+ COL @ “F # G” Shift-8, то есть твердых блоков.;   3 LIN @ 3 + цвет @. “К # E # H” ASCII не имеет ни одного.]     LIN @ 4 + цвет @. “#J Я #”   4 1 BOX @ 1 – доска + C! ;   5 (СОВЕТ ПРОВЕРКА ROUTINES)   6: ЧИСТЫЙ BOX @ 1 – СОВЕТ + C @ 2 =;   7: HIGH BOX @ 9>НЕ;     : Низкий ящик @ 1<нет;   8: XIN НАЧАТЬ INKEY 48 - BOX! НИЗКИЙ ВЫСОКИЙ ЧИСТЫЙ И И ДО

  9 BOX @ DRAWX;

SCR # 5

  0 (найти место для O)   1: НИЧЬЯ-O BOX @ CO-ORDS     LIN @ COL @. “К # H” [То же замечание касается DRAWX.]   2 LIN @ 1+ COL @. “К # E # H”     LIN @ 2+ COL @ “. #G F #”   3 LIN @ 3 + COL @. “Я # D # J”     LIN @ 4 + цвет @. “Я # J”   4 0 BOX @ 1 – доска + C! ;   5: 2row СОВЕТ + C @ СИМВОЛ @ = SWAP СОВЕТ + C @ СИМВОЛ @ = И;   6: угловой доски 8 + C @ 2 1 – ЕСЛИ 9 BOX! ТОГДА   7 СОВЕТ 6 + C @ 2 1 – ЕСЛИ 7 BOX! ТОГДА   8 СОВЕТ 2 + C @ 2 1 – ЕСЛИ 3 BOX! ТОГДА   9 СОВЕТ 0 + C @ 2 1 – ЕСЛИ 1 BOX! ТОГДА;  10: RANDOM 23672 @ ABS 16000 MOD C @ * 255 /;  11: ANYSQUARE 500 0 DO 8 случайных DUP доска + C @ 2 = IF 1+  12 BOX! ОСТАВИТЬ ЕЩЕ DROP затем цикл;  13: СИСТЕМНЫЙ 9 0 DO я СОВЕТ + C @ 2 = если я 1+ BOX! ТОГДА       LOOP;  14 RANDCORNR 99 0 DO 3 случайных CORNERS + C @ DUP СОВЕТ + C @ 2 =

 15 ЕСЛИ 1+ BOX! ОСТАВИТЬ ЕЩЕ DROP затем цикл;

SCR # 6

  0 (СОВЕТ ПОИСК ПО САЙТУ ROUTINES)   1: ВЗГЛЯД СОВЕТ + C @ 2 =;   2: 2INROW 0 выглядеть, если 1 2 2row 4 8 2row   3 3 6 2row ИЛИ ИЛИ ЕСЛИ 1 BOX! Зато потом   4 1 смотреть, если 0 2 2row 4 7 2row ИЛИ ЕСЛИ 2 BOX! Зато потом   5 2 смотреть, если 0 1 2row 4 6 2row 5 8 2row   6 ИЛИ ИЛИ ЕСЛИ 3 BOX! Зато потом     3 посмотреть, если 0 6 2row 4 5 2row   7 ИЛИ ЕСЛИ 4 BOX! Зато потом     4 смотреть, если 0 8 2row 2 6 2row   8 1 7 2row 3 5 2row     ИЛИ ИЛИ ИЛИ ЕСЛИ 5 BOX! Зато потом   9 5 смотреть, если 2 8 2row 3 4 2row ИЛИ ЕСЛИ 6 BOX! Зато потом  10 6 выглядеть, если 0 3 2row 2 4 2row 7 8 2row  11 ИЛИ ИЛИ ЕСЛИ 7 BOX! Зато потом     7 посмотреть, если 1 4 2row 6 8 2row  12 ИЛИ ЕСЛИ 8 BOX! Зато потом     8 выглядеть, если 2 5 2row 0 4 2row

 13 6 7 2row ИЛИ ИЛИ ЕСЛИ 9 BOX! Зато потом;

SCR # 7

  0 (ПОИСК ПРОСТРАНСТВО ДЛЯ O)   1: НАЙТИ-O 0 BOX! 0 СИМВОЛ! 2INROW BOX @ 0 = ЕСЛИ 1 CHAR! 2INROW   2 ТО BOX @ 0 = ЕСЛИ RANDCORNR ТОГДА BOX @ 0 = ЕСЛИ УГОЛ ТО   3 BOX @ 0 = ЕСЛИ ANYSQUARE ТОГДА BOX @ 0 = ЕСЛИ СИСТЕМАТИЧЕСКОЕ ТО;   4: NewGame? НАЧАТЬ INKEY DUP 78 = SWAP 89 = или до INKEY;   5: 3LINE DUP C @ 2 = ЕСЛИ DROP DROP DROP 0 ELSE C @ СИМВОЛ @ =       SWAP C @   6 СИМВОЛ @ = РОТ C @ СИМВОЛ @ = И А ЗАТЕМ;   7: WIN 3 0 DO я СОВЕТ + DUP 3 + DUP 3 + 3LINE LOOP ИЛИ ИЛИ   8 7 0 DO я СОВЕТ + DUP 1+ DUP 1+ 3LINE 3 + LOOP ИЛИ ИЛИ   9 СОВЕТ DUP 4 + DUP 4 + 3LINE СОВЕТ 2 + DUP 2 + DUP 2 + 3LINE  10 ИЛИ ИЛИ ИЛИ;  11: ПОЛНЫЙ 1 9 0 DO я СОВЕТ + C @ 2 = ЕСЛИ DROP 0 затем цикл;  12: XWINS ИГРОК @ 1+ игрок! 21 2 AT

 13 “You Win Еще одна игра (Y / N).?.”;

SCR # 8

  1: OWINS 21 3 AT “Я выиграл еще один игровой (Y / N)”. КОМП @ 1+.

      КОМП! ;   2: XMove 20 10 AT “Your Move” XIN 20 10 AT “”..

  3 1 СИМВОЛ! WIN ПОЛНЫЙ ИЛИ НЕ;   4: OMOVE НАЙТИ-O НИЧЬЯ-O 0 СИМВОЛ! WIN ПОЛНЫЙ ИЛИ НЕ;   . 5: TIE 21 2 AT “Мы рисуем Еще одна игра (Y / N).?”;   6: X-START не начнут XMove DUP IF DROP OMOVE ТОГДА НЕ ДО;   7: O-START не начнут OMOVE DUP IF DROP XMove ТОГДА НЕ ДО;   8: ИГРЫ ФОТО 10 RANDOM 5>ЕСЛИ X-START ELSE O-START ТО   9 ПОЛНЫЙ ЕСЛИ TIE ТОГДА 0 СИМВОЛ! Выиграть, если OWINS ТОГДА 1 СИМВОЛ! WIN  10 ЕСЛИ XWINS ТОГДА NewGame? ;

 11: RUN 0 ИГРОК! 0 КОМП! Начать игру 89 = не раньше;

SCR # 9

  1: погрузчик CLS 10 12 AT “Компиляция” 9 1 мне загрузить LOOP.

  2 10 12 AT. “ГОТОВ”;

                                        [РЛБ, октябрь 2012]

Краткая информация о OXO

Для игры в OXO не нужны эмуляторы. Это настольная игра, которую создал Michael Bews, была выпущена компанией Pan Books Ltd в 1983 году в Великобритании.

Не запускается или глючит игра, или не можете пройти? Спросите в комментариях.

Subscribe
Уведомлять об
guest
0 комментариев
Inline Feedbacks
View all comments

Сохранённые игры[X]

  

Справка[X]

Помощь уже в пути!

  • x1
  • x2
  • x3

Кликни в окно эмулятора, чтобы управлять!
<<<<

Не забывайте периодически сохранять игровой прогресс на сервере (клавишей F8), чтобы уверенно продвигаться вперёд!

Если вы гость на сайте, то прогресс будет сохранён только в памяти браузера и потеряется при закрытии. Чтобы этого не произошло - просто войдите в свой профиль.

Для загрузки сохранённой игры жмите F3 или откройте меню "Диск" кнопкой на правой панели.

Если игра не запускается, или у вас есть вопросы по игре - задайте их ниже.

Поделиться
Close
0
Would love your thoughts, please comment.x