поддержка
проекта:
разместите на своей странице нашу кнопку!И мы
разместим на нашей странице Вашу кнопку или ссылку. Заявку прислать на
e-mail
код нашей кнопки:
Игровая программа
Еще на заре вычислительной техники стало ясно, что ЭВМ не просто
быстро работающая счетная машина, а нечто большее. Она оказалась
способной реализовать программы, с помощью которых можно сочинять
музыку, преобразовывать тексты и играть в разнообразные игры (см.
Машинная музыка, ЭВМ в литературоведении, Синтез текстов, Компьютерные
игры). Так возникли специальные игровые программы. ЭВМ с их помощью
"научились" играть сначала в простейшие игры типа любимой всеми
школьниками игры "Морской бой". Затем компьютеры овладели куда более
сложными играми. Появились программы для игры в шашки и шахматы, го и
карточные игры.
Все игры, которые создало человечество, делятся на два типа. К первому
относятся те, в которых отсутствует элемент случайности. В таких играх
можно теоретически перебрать все варианты партий и на каждом шаге
выбрать из этих вариантов наилучший. Поскольку ЭВМ делает такой перебор
гораздо быстрее человека и может оценить большее число возможных
вариантов игры, то там, где машина успевает перебрать все варианты, она
имеет явное преимущество перед человеком. Так, например, происходит при
игре в шашки. Машинная шашечная программа оказывается не слабее лучших
игроков в русские шашки.
Но наибольший интерес представляют игры, в которых число вариантов хотя
и конечно, но столь велико, что ЭВМ не может перебрать их в полном
объеме. Примером могут служить шахматы или го. В таких играх ЭВМ,
подобно человеку, действуют эвристически, оценивая свой выбор лишь на
несколько ходов вперед. Принцип, положенный в основу составления
программ для игры в шахматы, сформулировал немецкий математик Э.
Цермело. Он доказал, что возможна объективная оценка любой шахматной
позиции, если в ходе игры ни один из играющих не допустит ошибки. Оценку
позиции и лучший выход из нее можно определить при помощи полного
перебора вариантов, но, как уже было сказано, практически это невозможно
сделать даже на самой быстродействующей из известных сейчас ЭВМ. Поэтому
ЭВМ оценивает только начало каждого положения партии на несколько ходов
вперед, обычно не более чем на 7 - 8 ходов, и отбраковывает все те
продолжения, которые представляются неперспективными. Ходы, с которых
они начинаются, называются запрещенными. Конкретная схема перебора
вариантов с игнорируемыми продолжениями состоит в решении таких
вопросов: какие ходы из просматриваемых позиций считать "запрещенными"?
Как оценивать позиции, где "запрещены" все ходы и позиции, в которых
просмотрены не все "запрещенные" ходы?
Оценив ходы и выбрав наиболее, по ее мнению, подходящий, программа
передает этот ход сопернику и принимает ход последнего, организуя таким
образом работу ЭВМ в ходе шахматной партии.
Возможности лучших современных шахматных программ приближаются к уровню
шахматных мастеров. Однако играют такие программы неодинаково на разных
стадиях шахматной партии: дебют они разыгрывают хорошо, миттельшпиль -
слабее и хуже всего эндшпиль, особенно многофигурный, где необходимы
интуиция и опыт человека, т. е. те факторы, которые практически не
формализуются. Если же при эндшпиле число фигур не превышает 5 - 6
(вместе с королем), то эффективность программы резко возрастает,
поскольку возможности ЭВМ оказываются достаточными для исчерпывающего
анализа подобных окончаний.
Одна из интереснейших шахматных программ, получившая название "Каисса",
была составлена в середине 60-х гг. группой советских математиков. В ней
впервые реализованы: справочная лучших ходов, позволяющая использовать в
первую очередь надежные ходы; метод аналогий, с помощью которого
оценивается ход без перебора, по аналогии с его предыдущими
результатами; использование времени соперника для обдумывания своих
ходов и другие методы шахматного программирования. В 1974 г. в Швеции на
первом чемпионате мира среди шахматных программ "Каисса" стала
чемпионом, выиграв у программ "Чесс" и "Хаос" (США) и "Риббит" (Канада).
Она также участвовала в последующих чемпионатах, где неизменно занимала
высокие места.
Современные шахматные программы уверенно обыгрывают перворазрядников.
Энтузиасты шахматных программ твердо уверены, что со временем ЭВМ начнут
играть лучше любого выдающегося шахматиста.
Ко второму типу игр относятся те, в которых элемент случая играет важную
роль. Так, в карточных играх многое зависит от того, какие карты из
колоды оказались на руках у играющего. В игре "Морской бой" нет
информации о расположении "кораблей" противника, и поражение во многом
случайно. В таких играх программы для ЭВМ используют специальные приемы
формирования случайно выбираемых ходов, что часто дает им преимущество
перед людьми, ибо, как известно из психологии, люди по своей природе не
могут выбирать альтернативы случайно. Они всегда отдают предпочтение
какой-либо из них, опираясь на несущественные соображения. Правда, они
могут моделировать процесс случайного выбора, бросая, например,
игральную кость или монетку, но обычно в играх игнорируют эту
возможность.
Игровые программы, как правило, не используют результаты математической
теории игр (см. Теория игр), а имитируют поведение опытных игроков или
коллективный опыт таких игроков.
Компьютерные игры - особый класс игровых программ, получивших широкое
распространение в годы массового использования персональных ЭВМ.
Игровые программы расчленяются на несколько функциональных блоков: блок
ввода общей информации об игре, блок формирования исходного и текущего
состояния, блок ввода (и вывода) информации о сделанном ходе, блок
анализа ситуации и выбора очередного хода и, наконец, блок наглядного
отображения ситуации и сделанного хода на дисплее для игрока, играющего
с машиной. Игровые программы иногда включают в состав системного
программного обеспечения персональных ЭВМ, а также, записанные на
дискетах, они поступают на рынок программных средств для этих машин.