Ограничение дальности «стрельбы»,

Читатели поделились и многими другими идеями, среди которых можно отметить двумерный массив Памяти, предложенный Р. Нортоном из Мэдисона, шт. Висконсин, и правило ограничения дальности «стрельбы», предложенное У. Митчелом, преподавателем математического факультета Пенсильванского университета. Идея Нортона, пожалуй, не нуждается в пояснениях, а вот по поводу предложения Митчела следует сказать несколько слов. Программе дозволяется производить изменения в любой ячейке памяти, расстояние до которой не превышает определенного установленного количества адресов.

Благодаря этому правилу программа Карлик автоматически не сможет причинить никакого ущерба противнику, не находящемуся в его окрестности. Из этого правила следует и многое другое, включая акцент на перемещение. Каким еще образом программа сможет подойти на расстояние выстрела к противнику? У этого правила много достоинств, и я полагаю, что некоторые читатели из числа многих, обладающих своей собственной системой «Бой в памяти», изучат это предложение более глубоко и подробно.

Нортон предлагает также, чтобы каждой стороне предоставлялось более одной команды, выполняемой при каждом обращении к программе. Та же идея пришла в голову и многим другим читателям. На самом деле я решил принять это предложение. Теперь игра «Бой в памяти» приобретает более открытый характер.

Предложенное изменение можно реализовать, добавив следующую команду с условным названием «разветвить» к системе команд игры, приведенной на рисунке на с. 70:

SPL А

Когда управление достигает ячейки, в которой содержится эта команда, дальнейший процесс выполнения программы разветвляется на две части, а именно идет на команду, следующую за SPL, и команду, отстоящую на А адресов. Поскольку это нововведение сразу позволяет игроку иметь несколько программ, выполняющихся одновременно, необходимо уточнить правила, согласно которым система управления Марс распределяла бы время между программами. Существует две возможности.

Чтобы проиллюстрировать их, предположим, что один игрок имеет три программы А, А2 и А3, в то время как у другого — две программы,

В,  и В2. Один из возможных вариантов заключается в том, чтобы сначала выполнить все три программы первого игрока, а затем две программы второго. Тогда порядок выполнения программ будет следующим: А(, А2, А3, а затем В, и В2. Далее эта процедура будет циклически повторяться. Другой вариант заключается в том, чтобы чередовать выполнение программ, принадлежащих различным игрокам. В этом случае последовательность выполнения будет такой: А, В,. А2, В2, А3, В, и т.д. Эти две схемы принципиально различны, если судить по производимому ими эффекту.

 

0 Коментариев

Вы можете быть первым =)

Оставить коментарий