Программа для командных турниров на трех досках

В первоначальной постановке задачи предполагалось разработать программу на языке программирования Visual Basic 6.0, позволяющую двум игрокам (каждый со своей мышкой!) делать поочередно ходы в шахматной партии, на электронной модели шахматной доски, отображаемой на экране монитора компьютера. Таким образом, первоначально ставилась задача:

        Разработать электронную модель шахматной доски и фигур;

        Предоставить возможность некоторому третьему лицу, например, арбитру или администратору, устанавливать регламент партии время игры для каждого игрока, "вывешивать" таблички с фамилиями игроков, включать "шахматные часы";

        Реализовать элементарные правила поведения за "шахматной доской", например, "дотронулся до фигуры ходи этой фигурой";

        Предусмотреть моделирование стандартных окончаний партии: просрочка времени, признание победы противника, согласие на ничью.

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

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

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

Для начала рассмотрим таблицу с изображениями элементов игры в шахматы: графической модели шахматной доски и фигур.

Таблица

Доска

Король

Ферзь

Ладья

Слон

Конь

Пешка

 

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

        Столбцы, называемые вертикалями (иногда называют линиями), шахматной доски идентифицируются буквами латинского алфавита от "a" до "h" слева направо. Названия букв читаются по латыни: а, бэ, це, дэ, е, эф, же, аш и никаких английских названий;

        Строки, называемые горизонталями, (иногда называют рядами) нумеруются от "1" до "8" снизу вверх;

        Поле шахматной доски обозначается двумя знаками: первый знак это буква, соответствующая идентификатору столбца, в котором находится поле, а второй знак это цифра, соответствующая номеру строки, в которой находится поле шахматной доски;

        Косые линии, проходящие через поля одного цвета, называются диагоналями и обозначаются идентификаторами начального и конечного полей, разделенными знаком тире.

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

Напомним три важных правила для начинающих шахматистов. Во-первых, шахматную доску надо устанавливать так, чтобы поле а1 было черным. Во-вторых, белые фигуры располагаются на горизонталях с номерами 1 и 2, а черные на горизонталях 8 и 7. В третьих, расставляя фигуры на шахматной доске, следует помнить, что "ферзь любит свой цвет", то есть белого ферзя нужно ставить на поле d1, а черного ферзя на поле d8.

В современной шахматной терминологии употребляются только указанные в вышеприведенной таблице наименования шахматных фигур. Употребление таких наименований шахматных фигур, как, например "королева", "офицер", "тура" и другие свидетельствуют о дурном вкусе. Настоящий шахматист не употребляет этих и других, подобных им, наименований шахматных фигур. И этому есть простое объяснение.

Рис.1 Начальная расстановка фигур на шахматной доске.

Во время шахматной партии на соревнованиях шахматисты записывают все ходы партии. При записи хода приходится указывать фигуру, которой игрок сделал свой полуход (напомним, что ходом в шахматной партии называется "ход" белых и ответный "ход" черных фигур). Здесь приняты следующие обозначения: Кр король, Ф ферзь, С слон, К конь, Л ладья. Пешка никакой буквой не обозначается. После символа фигуры указываются начальное и, через тире, конечное поле хода фигуры. Такой способ записи протокола шахматной партии называется "нотацией". Но, если придется разбирать некоторую позицию, представленную не в графическом формате (в таких случаях говорят диаграмма), как на нашем рисунке, а в текстовом формате, то можно встретить и обозначение пешек. Пешки обозначают буквой п. Обратите внимание: пешки обозначаются строчной буквой, в то время как обозначения остальных шахматных фигур начинаются с прописных букв.

Во время игры противники переставляют свои фигуры по определенным правилам, то есть делаю "ходы". Каждая фигура может делать свои ходы. Король может ходить на любое соседнее поле по всем направлениям, как по вертикали и горизонтали, так и по диагонали. Ферзь также может ходить по всем направлениям, но не только на одно поле, а по всей доске на любое количество полей.

Рис. 2. Демонстрационная позиция возможностей ходов короля и ферзя.

Примеры возможностей ходов короля и ферзя показаны на рисунке 2, где поля, на которые можно переставить короля с поля g2, отмечены крестиками, а поля, на которые можно переставить ферзя с поля b4, отмечены кружочками.

И ладьи, и слоны могут за один ход передвигаться на любое количество полей. Но при этом ладьи могут ходить только по вертикалям и горизонталям, а слоны по диагоналям одного цвета. Поэтому слонов подразделяют на "бело польных" и "черно польных" слонов. На рисунке 3 показаны возможные ходы ладьи, расположенной на поле b2 и слона, расположенного на поле f3. Поля, на которые можно переставить слона с поля f3, отмечены крестиками, а поля, на которые можно переставить ладью с поля b2, отмечены кружочками

Рис. 3. Демонстрационная позиция возможностей ходов ладьи и слона.

Ход коня самый причудливый. Сначала конь передвигается на соседнее поле по горизонтали или вертикали, а затем передвигается по диагонали, продолжая движение в выбранном направлении. Это же правило можно сформулировать несколько иначе: сначала конь передвигается по диагонали на соседнее поле, а затем по горизонтали или вертикали в выбранном направлении. В обоих случаях конь с соседнего поля передвигается вперед. Если соседнее с позицией коня поле шахматной доски занято какойлибо фигурой, то ход все равно можно делать, так как в этом случае конь перескакивает через мешающую его ходу фигуру. На рисунке 4 изображен конь на поле с3, а поля, на которые его можно переставить, обозначены кружочками.

Рис. 4. Демонстрационная позиция возможностей ходов коня и пешек.

Ход пешки тоже имеет определенные условности. Так, например, пешка, расположенная на поле g2. может пойти на поле g3 или g4. Это зависит только от желания игрока. Но перескакивать через поле пешка может только с начальной позиции и при условии, что перескакиваемое пешкой поле свободно (в нашем случае это поле g3). Для пешки, которой уже играли, то есть для пешки, сделавшей, по крайней мере, один ход, новый ход можно сделать только на одно поле вперед на соседнее поле. Поля, на которые можно передвинуть пешки, отмечены на рисунке 3 крестиками. И еще одно отличие пешек от других фигур. Если все фигуры "убивают" фигуру противника по ходу своего движения, пешка "съедает" фигуру противника по диагонали на соседнем поле. Поля, на которых изображенные на рисунке 3 пешки могут "съесть" фигуру, помечены черточкой.

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

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

Конечно, такая автоматизация противоречит распространенному среди шахматистов положению, автором которого является известный русский мастер С.З. Алапин. Начинающим шахматистам С.З. Алапин предлагает делать ход в четыре такта: подумать, записать ход, еще раз подумать, передвинуть фигуру.

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

Рис. 5. Вид заставки программы.

На заставке программы "Меню игры" содержится информация о разработчиках. Текущее время системное время компьютера указывается в трех окошках, слева направо: часы, минуты, секунды. Далее расположена кнопка "Разработчики", щелчок на которой откроет фотографии разработчиков и краткие сведения о них, представленные на рисунке 6.

Рис. 6. Фотографии разработчиков.

Расположенные ниже изображения часов декоративные. Они символизируют циферблаты часов игроков, но не более того. Текущее время отмечается на электронном табло, о котором было сказано выше.

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

Администратор, но уже в открытом режиме, формирует команды. Команда может состоять и из одного игрока. Но, по просьбе учителя физкультуры, принимавшего участие в тестировании программы, программа была модифицирована для проведения матчей между командами на трех досках: на двух досках играли мальчики, на третьих девочки. Для проведения таких матчей программа тиражировалась на четыре компьютера: на трех проводились соревнования, а на четвертом компьютере подводились итоги соревнований, для чего понадобилось дополнительно разработать специальный программный модуль.

После щелчка на кнопке "Таблица" на экране появится меню "Таблица". Назначение кнопок "Очистить" и "Сбросить результат" понятно без дополнительных комментариев. Щелчок на кнопке "Выбери пару" будет предпоследним в этом меню. Для формирования очередного матча надо щелкнуть на кнопке "Общая", после чего в открывшемся окне выбрать команды соперники для очередного тура соревнований. В примере, показанном на рисунке 7, выбрана пара соперничающих классов "8-а и 8-б". Щелчок на кнопке выбранной пары инициирует появления номеров соответствующих классов в окошках базы данных "Игроки". В левом окошке появится "8А", а в правом "8Б". Одновременно установится связь окошек с соответствующими таблицами базы данных "Игроки".

Далее устанавливают, кто в каждом классе играет на первой доске, кто на второй и кто на третьей. Если нажать на правую стрелку левого окошка базы данных, то появится первая фамилия в списке 8А класса. Повторный щелчок на этой стрелке вызовет появление второй фамилии из списка 8А класса, и так далее.

Для переноса фамилии из базы данных в формируемую таблицу, нужно щелкнуть на номер доски, на которой будет играть ученик, фамилию которого заносят в игровую таблицу. Аналогичным образом выбирают остальных игроков для обеих команд.

Рис. 7. Пример начального положения меню "Таблица".

После того, как команды игроков сформированы, производится щелчок на номере пары, которой предстоит играть. Номера пар расположены под надписью "Выбери пару". И, наконец, щелчок на кнопке "Игра" активизирует еще одно окно "Выбор". Но, прежде чем мы приступим к рассмотрению технологии установки параметров в окне "Выбор", выясним назначение оставшихся без нашего внимания окошек в меню "Таблица". Наименования окошек "Счет" и "Общий счет" говорят сами за себя. Но функцию окошка "Свернуть" необходимо пояснить. При щелчке на кнопку "Игра" не только активизируется меню "Выбор", но и автоматически свернется меню "Таблица". Развернуть меню "Таблица" можно в любой момент, щелкнув на значок "Таблица", размещенного на панели активных задач. Меню "Таблица" развернется. А для его повторного свертывания, без изменения информации о текущей партии, и служит кнопка "Свернуть". Пример заполненной таблицы игроков представлен на рисунке 8.

Рис. 8. Демонстрационный пример формирования таблицы игроков.

Итак, после щелчка на кнопке "Игра", откроется новое меню "Выбор", изображение которого представлено на рисунке 9. Отметим, что путь к меню "Выбор" возможен и из "Меню игры".

Рис. 9. Пример начального положения меню "Выбор".

Изображения часов в меню "Выбор", как и в "Меню игры", декоративные. Имитируют специфику шахматных часов. Текущее время показывают электронные часы. Администратор (арбитр) проверяет правильность выбора игроков и для каждого из них устанавливает время игры по уже известному порядку: часы, минуты, секунды. После чего следует щелчок на кнопке "Перейти к игре".

На рисунке 10 показан демонстрационный пример столь долго ожидавшегося момента начала шахматной партии. В результате щелчка на кнопке "Перейти к игре" одновременно появляются два окна: в правом окне появляется "Протокол игры", а в левом модель шахматной игры с расположенными в исходной позиции фигурами. Протокол игры заполняется автоматически после завершения очередного хода. А игра начинается после нажатия кнопки "Старт" игроком, играющим белыми. Но, прежде чем мы приступим к рассмотрению технологии игры, изучим открывшееся нам окно "Игра".

Рис. 10. Демонстрационный пример начала шахматной партии.

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

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

Для демонстрации возможностей программы, сыграем известную каждому ребенку партию. Называется она "Дурацкий мат". Получившаяся при этом картина демонстрируется на рисунке 11.

Рис. 11. Демонстрационный пример окончания партии.

Кроме созданного протокола игры, который можно сохранить в виде текстового файла в той же папке "Игра в шахматы", на экране появляется окно с информационным сообщением о победителе и проигравшем.

В рассмотренном нами примере было сделано по два хода каждым игроком. Иванов, игравший черными, выиграл партию. Афанасьев партию проиграл.

Для работы программы необходимо оборудование: персональный компьютер типа IBM PC в конфигурации, позволяющей установить операционную систему семейства Windows, начиная с модели Windows'98, а также комплект Microsoft Office, начиная с релиза Microsoft Office'2000.

Желающие получить программу, или принять участие в ее дальнейшем усовершенствовании, могут обратиться к автору. Заказывайте polva40@mail.ru

 

Сайт создан в системе uCoz