Юный техник - для умелых рук 1989-06, страница 9

Юный техник - для умелых рук 1989-06, страница 9

ИГРЫ ПРОГРАММИСТА

«БОЛОТУДУ» И КОЕ-ЧТО ЕЩЕ

Во втором номере приложения мы познакомили вас с несколькими популярными игровыми программами для персональных компьютеров. На этот раз хотим, чтобы вы сами на основе описания правил двух малоизвестных игр попробовали составить для них программы. Благодаря своей простоте и четкости они легко поддаются алгоритмизации.

Первая игра называется «Сенегальские шашки». Вы догадались по названию —

©

о

о

©

о

©

о

©

о

е

о

о

©

©

О

о

о

©

о

©

о

©

©

о

12 3 4 5 6

Рисунок 1.

родилась она в Африке. Играют в нее двое. Каждый получает по 14 шашек — белых и черных. Расстановка их показана на рисунке 1 справа. Как видите, в середине остается всего два незанятых поля. С них белые и начинают игру.

Ходить можно только на свободное поле вперед, вправо и влево, продвигаясь в порядке очереди на одну соседнюю клетку. По диагонали двигаться нельзя. Когда представляется возможность перепрыгнуть через шашку партнера, вы обязаны это сделать. Шашка противника при этом считается съеденной и снимается с поля. Достигнув последней горизонтали, шашка не становится «дамкой», как обычно, а выбывает из игры, поскольку ходить назад запрещено. Цель игры — съесть как можно больше шашек противника. Поэтому имеет смысл не спешить на последнюю горизонталь, а для свободы маневра как можно дольше оставаться в середине поля.

Игра заканчивается, когда все шашки кого-либо из партнеров продвинулись на последнюю горизонталь и, следовательно, не могут никого ни «съесть», ни быть «съеденными» сами. Остается подсчитать количество выставленных шашек и определить победителя.

Вторая игра тоже африканская и называется «Болотуду». Она напоминает «крестики-нолики» и кажется очень простой. Но это только на первый взгляд. Возможности этой игры гораздо большие, и во время партии вам или компьютеру придется не раз поломать голову.

У каждого из партнеров по 12 шашек. Игровое поле такое же, как и в предыдущей игре Партнеры начинают игру по очереди, выставляя шашки на поле. За один ход их можно поставить только две. Занимать разрешается любую свободную клетку, но с условием: три шашки одного цвета не должны находиться в ряду одна за другой ни по вертикали, ни по горизонтали. Этап расстановки очень важен. От него зависит дальнейший ход игры. Поэто-

о

о

о

о

о

о

о

о

о

о

о

о

о

о

1 2 3 4 5 6

С

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

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

Играют до тех пор, пока у одного из партнеров не останутся пишь две шашки. Он неизбежно проигрывает, поскольку их уже не хватит для того, чтобы образовать «тройку». Если партнеры, боясь пойти на обострение, начинают делать одни и те же ходы, как в шахматах, то после третьего хода партия заканчивается ничьей.

Рисунок 2.

Теперь, чтобы лучше усвоить правила, давайте попробуем разыграть одну тренировочную партию. Записана она в традиционной для шахмат форме.

ПЕРВЫЙ ЭТАП. Расстановка шашек. Начинают белые. 1. а1, Ь2. 2. с1, сЗ. 3. а2, d2.

4. d5, с4. 5. а5, сб. 6. d3, аЗ. 7. d4, с5. 8. dl, е2. 9. е1, Ь6. 10. е4, Ь4. 11. еб, а4. 12. Ь5, еб.

Порядок расстановки шашек на игровом поле после двенадцатого хода (его сделали черные) показан на рисунке 1 слева. Цифрами помечен порядок, в котором производилась расстановка.

ВТОРОЙ ЭТАП. Начинают белые. 1. d2— с2:сЗ (белые выстроили в ряд три шашки с2, Ь2, а2 и могут снять любую из трех черных шашек, примыкающих справа и слева к белой тройке — с1, сЗ, или аЗ. Белые выбрали сЗ). Черные отвечают е2—d2:c2. 2. еб—d6:d5; аЗ—Ь3:с5 (этим ходом черные мешают белым построить тройку на горизонтали d). 3. а2—аЗ.ЬЗ; с1—Ы . 4. аЗ—а2... (белым хотелось бы взять шашку Ы , но ходом 4. Ы—а1 в ряд выстраиваются пять белых шашек, и поэтому тройка а1, а2, аЗ становится «небьющей»). 4...d1—cl.

5. а4— аЗ:Ы; Ь4—а4. 6. d6—d5; Ь5—Ь4:а5. 7. d5—d4; cl—d1:e1. 8. сб—c5; Ь4—Ь5. 9. аЗ—ЬЗ; Ь5—Ь4:а5. 10. Ь6—Ь5; d3—сЗ. 11. а1—Ы :сЗ; е4—е4. 12. d4—d5:b4; с4—сЗ. 13. Ь2—с2; d2—d3:c2 (лучший ход в этой позиции: 13...сЗ—d3:c2). 14. а2—Ь2:сЗ; еЗ—е2. 15. с5—с4, и черным почти некуда ходить. Шашек у них на одну меньше, чем у белых, стоят они разобщенно и особого вреда белым причинить уже не могут. 1 5...а4—Ь4. 16. Ь5—с5; d3—еЗ. 17. ЬЗ—сЗ: Ь4; еЗ—d3. 18. сЗ—ЬЗ; аб— а5. 19. ЬЗ—сЗ: d3, и черные сдались.

Обратим ваше внимание на несколько тактических приемов. Во время игры, в зависимости от сложившейся ситуации, выгодно построить одну из трех фигур: «коня», «дорожку» или «вертикаль» (см. рис. 2). В «коне» шашка ЬЗ ходит челноком, образуя тройку то по вертикали, то по горизонтали. В «дорожке» контролируются 6 или 12 клеток по горизонтали. «Вертикаль» преграждает путь шашкам противника и в трудной ситуации поможет вам свести партию к ничьей.

Надеемся, что обе игры помогут вам освоить основные приемы составления алгоритмов игровых программ и их оптимизации.

"КОНЬ"

щ.

о

щ

ш

о

щ,

ш

Щ

и

о

о

о

ш

'Ш ш

1

"ЛОРОМ К А"

ш

"ВЕРТИКАЛЬ"

О

О

12 3 4 5 6

Ж

12 3 4 5 5

О

о

о

щ

о

т

9

у

L

ж

т

ш

о

1

2 3 4 5 6

9