Требования к курсовому проекту
На 3:
1) начало игры на чистом поле, сброс предыдущей игры;
2) контроль правильности ходов игрока(ов);
3) определение конца игры, отслеживание патовых ситуаций;
4) использование горячих клавиш;
5) индикацию текущего счета (состояния)
6) суммарно 1 паттерн проектирования
На 4:
1) Все, что на 3
2) настройку клавиш управления;
3) ведение таблицы рекордов;
4) возможность задания настроек в конфигурационном файле или реестре.
5) суммарно 2 паттерна проектирования
На 5:
1) Все, что на 4
2) выбор уровня сложности игры
3) отмена ходов
4) наличие инсталлятора (пакета msi, deb, rpm, apk и т.п.)
4) суммарно 3 паттерна проектирования
Варианты заданий
Вариант выбирается в соответствии с порядковым номером в журнале. Кроме того, студент может самостоятельно придумать себе задание, отсутствующее в этом списке, предварительно согласовав его с преподавателем.
1. Игра “Крестики-нолики” на неограниченном поле. Приложение является реализацией известной логической игры “Крестики-нолики” В данной реализации предусматривается игра двух игроков на неограниченном поле. Цель игры - построить непрерывную линию из пяти или более фишек (крестиков или ноликов) по горизонтали, вертикали или диагонали. Возможны два режима игры, когда выигрывает тот, кто первым построит линию, или кто больше наберет очков за определенное количество времени. Во втором случае количество построенных линий не ограничено, каждая фишка в линии приносит игроку одно очко. Приложение должно обеспечивать начало новой игры на чистом поле, а также проверку соответствия действий игроков правилам игры и условия окончания игры. Роль одного из игроков (по выбору пользователя) может выполнять компьютер. Для исключения возможности образования изолированных игр на одном поле и неоправданного увеличения размера поля следует установить максимально допустимое расстояние (не более пяти) от уже существующих фишек до новой, размещаемой игроком.
2. Игра «Цепь». Данное приложение является реализацией известной логической игры. В данной реализации предусматривается игра двух игроков на квадратном поле фиксированного размера. Цель игры - построить непрерывную линию, соединяющую горизонтальные или вертикальные (для каждого из игроков соответственно) стороны игрового поля, причем линия считается непрерывной, если фишки граничат друг с другом по горизонтали, вертикали или диагонали. Выигрывает тот игрок, который первым построит свою линию. Приложение должно обеспечивать начало новой игры на чистом поле, а также проверку соответствия действий игроков правилам игры и условия окончания игры. Роль одного из игроков (по выбору пользователя) может выполнять компьютер.
3. Игра «Точки». Данное приложение является реализацией известной логической игры. В данной реализации предусматривается игра двух игроков на квадратном поле фиксированного размера. Цель игры . заполнить максимальное количество клеток игрового поля своими фишками. Игроки выполняют ходы по очереди. Ход игрока заключается в произвольной установке линии на границе двух ячеек, причем, если какая-либо ячейка оказывается со всех четырех сторон обрамлена линиями, то она отмечается фишкой данного игрока, а самому игроку предоставляется дополнительный ход, и т.д. Игра заканчивается, когда все игровое поле оказывается заполнено фишками. Выигрывает тот игрок, чьих фишек на поле больше на момент окончания игры. Приложение должно обеспечивать начало новой игры на чистом поле, а также проверку соответствия действий игроков правилам игры и условия окончания игры. Роль одного из игроков (по выбору пользователя) может выполнять компьютер.
4. Игра «Мозаика». Разрабатываемое приложение представляет собой программную реализацию популярной игры «Мозаика» (Puzzle), цель которой заключается в создании игроком полного изображения путем упорядочивания его фрагментов последовательным перемещением и соединением соответствующих сторон. Приложение должно обеспечивать:
1) просмотр исходного изображения во время игры, а также поиск подходящих друг к другу фрагментов (функция подсказки);
2) возможность перемещать фрагменты за пределы рабочего поля или в другое окно и обратно для улучшения наглядности.
Следует учесть, что при создании новой игры все фрагменты должны быть разъединены и размещены беспорядочно в области рабочего поля или в области, отведенной специально для фрагментов. При использовании отдельной области для отображения фрагментов может быть применена ее прокрутка и изменение масштаба.
5. Игра «Шарики». Разрабатываемое приложение представляет собой программную реализацию известной логической игры. Цель игры состоит в том чтобы набрать максимальное количество очков. Суть игры состоит в следующем: на игровом поле отображаются круги разного цвета, игроку предлагается создать линию из кругов одинакового цвета, расположенных по горизонтали или по вертикали, созданная линия сгорает. Причем линия может сгореть, только в том случае если количество элементов в ней равно 3. После этой процедуры пустые места на игровом поле заполняются новыми элементами. Линию можно создать путем перестановки по горизонтали или по вертикали соседних элементов. Игра заканчивается тогда когда не возможно создать ни одной линии. Приложение должно обеспечивать возможность задания количества цветов элементов (кругов). Следует учесть что цвета кругов выбираются произвольным образом исходя из заданного количества. Кроме того, линии (3 и более элементов) получаемые при произвольной расстановки элементов “сгорают”.
6. Игра «Морской бой» Разрабатываемое приложение представляет собой программную реализацию известной логической игры. Приложение должно обеспечивать:
1) расстановку кораблей на игровом поле 10х10
2) выбор противника (человек, компьютер).
3) изменение интерфейса в зависимости от выбора противника.
4) фиксацию имен противников и число побед.
7. Игра «Реверси». Разрабатываемое приложение представляет собой программную реализацию логической игры “Реверси”. Игра идет на поле произвольного размера. Два игроки по очереди устанавливают фишки своего цвета на поле. Фишку можно ставить только на те клетки, рядом с которыми уже стоят фишки. Если между установленной фишкой и какой либо другой фишкой того же цвета находятся фишки другого цвета, все они меняют свой цвет.
8. Игра «Водопроводчик».Суть игры заключается в постройке трубопровода от одного края игрового поля к другому за определенное время. Играет один игрок. Компьютер предлагает очередной узел трубопровода, игрок может присоединить его к концу трубопровода, предварительно повернув его нужной стороной. В определенный момент времени с начала игры, в трубопровод начинает подаваться вода, которая медленно заполняет трубопровод. Если трубопровод будет заполнен до того, как игрок закончит строительство - игрок проиграл.
9. Игра «Сокобан». Разрабатываемое приложение представляет собой программную реализацию известной логической игры “Сокобан”. Играет один игрок. Игрок последовательно переходит от одного уровня к другому, по мере выполнения заданий. Уровень представляет собой лабиринт, в котором в беспорядке расставлены ящики. Игрок должен толкая ящики человечком расположить их на своих местах (места отмечены на лабиринте). Человечек может толкать только один ящик. Если ящик упирается в стену, то дальше его толкать нельзя.
10. Игра «Тетрис» Программа представляет собой Тетрис на поле произвольного размера. Программа должна предоставлять возможность выбирать размер фигур (4, 5, 6, 7 клеток). Скорость падения управляется автоматически в зависимости от времени игры.
11. Игра «Рикошет».Игровое поле содержит источник лазера, набор целей, набор зеркал. Зеркала и цели выставляются на поле случайным образом в начале игры. Каждое зеркало может проворачиваться в любом направлении с шагом 30 градусов. Игрок должен поворачивая зеркала по очереди сжечь все цели.
12. Игра «Авеле» Разрабатываемое приложение представляет собой программную реализацию африканской игры “Авеле” (другое название “Манкала”). Игровое поле состоит из двух рядов, по 6 лунок в каждом. Каждая лунка в начале игры содержит 4 камня. Нижний ряд принадлежит игроку, верхний - его противнику. Игроки делают ходы по очереди. Для хода игрок берет камни из любой своей непустой лунки, и раскладывает их по одному в каждую следующую лунку, двигаясь против часовой стрелки. Начальная лунка всегда пропускается. Если игрок кладет последний камень в лунку противника И лунка содержит 2 или 3 камня (включая только что положенный) то игрок собирает камни из лунок, двигаясь по часовой стрелке, до тех пор, пока два вышеприведенных условия соблюдаются. Если игрок не может сделать очередной ход, он собирает все оставшиеся камни, игра заканчивается и определяется победитель.
13. Игра «Шадоки». Великий колдун сказал, что шадокские ракеты терпят неудачу потому, что не хватает транзисторов в системах безопасности. Транзисторы нужного типа собирают с растений, произрастающих на огородах Гиби. Вы должны отправиться на планету Гиби и привести нужные транзисторы. Будьте осторожны, Гиби очень умны. Они позволяют Шадокам забираться в свои огороды, но окружают огород со всех сторон. Всякий раз, когда растение зацветает и дает транзистор, они мчатся, чтобы собрать урожай раньше шадока. Обратите внимание, что растения обладают разной плодоносностью.
14. Игра «Обратный тетрис». Тетрис наоборот. Игрок выбирает фигуру и бросает, компьютер пытается установить ее в стакан. Цель игры - завалить компьютер.
15. Игра «Шашки». Разрабатываемое приложение представляет собой программную реализацию логической игры “Шашки”. Необходимо реализовать подмножество правил классических шашек на доске 8x8.
16. Игра «Уголки». Известная игра на шашечном поле. Противники расставляют свои шашки симметрично в противоположных углах доски в виде прямоугольников 3x4. Ходы осуществляются по очереди. За один ход можно двинуть одну шашку на одну свободную клетку. Если к шашке примыкает шашка противника, а за ней есть свободное поле, можно «прыгнуть» через шашку противника на это свободное поле. За один ход можно делать несколько последовательных прыжков одной шашкой. Выигрывает тот, кто быстрее выстроит свои шашки на позиции противника.
17. Игра «Шахматы». Известная игра. Необходимо реализовать разумное подмножество международных шахматных правил, как они определены FIDE. Учить игре в шахматы компьютер не нужно, достаточно реализовать игру двух человек за одним компьютером.
18. Игра «Bounce». В Bounce играют на поле, окруженном стеной, с двумя или более мячами, которые отскакивают от стен. Размер поля уменьшается, если вы создаете стену и при этом никакой шар не оказывается попавшим в ловушку. Чтобы пройти уровень, игроку за данное время нужно уменьшить размер поля по крайней мере на 75%. На каждом следующем уровне к игре добавляется по одному шару, а игроку дается больше жизней и времени. Подсчет очков зависит от того, насколько вы уменьшили площадь. Новые стену строятся по щелчку левой кнопкой мыши на свободном пространстве поля. После щелчка, начиная от клетки, где он был сделан, в противоположных направлениях начинают строиться две части стены. За один промежуток времени может строиться только одна стена.
19. Игра «Snake». Правила игры: Чтобы выиграть в Snake, вам нужно съесть все яблоки в комнате и выйти через дверь, которая откроется вверху. С каждым съеденным яблоком вы становитесь длиннее. Если вы врежетесь в стену, вы умрете. Если вы врежетесь в себя, вы умрете. Если вам в голову попадет мяч, вы умрете. Если вы слишком долго не будете есть яблоки, появятся новые.
20. Игра «Космическая дуэль».Каждый игрок управляет одним кораблем. Корабль может поворачиваться, ускоряться, стрелять и закладывать мины. У каждого корабля есть определенное количество энергии. Кораблю требуется энергия для поворотов, ускорения, стрельбы и закладывания мин. Корабль получает ее при помощи своих солнечных батарей. Количество энергии, которую корабль получает, зависит от расстояния и направления, в котором находится солнце. Корабль получает больше энергии вблизи солнца и меньше около границы. Он получает полное количество энергии, если солнце светит прямо на батареи, часть энергии, если оно светит под углом и, совсем не получает ее, если солнце светит на торец батареи. Если у корабля закончилась энергия, он теряет управление и не может стрелять. Столкновение со своими или чужими снарядами и минами уменьшает здоровье корабля. Если столкнутся два корабля, то более слабый корабль будет уничтожен, и здоровье более сильного уменьшится на значение здоровья слабого корабля, плюс некоторое значение (Ущерб при аварии). Корабль уничтожается, когда он влетает в солнце. Снаряды летают вокруг солнца как корабли. У мин есть некоторое количество энергии, чтобы оставаться на одном месте. Когда энергия заканчивается, мина падает на солнце. Минам, расположенным около солнца, требуется больше энергии, чем расположенным вдали от него. Мины могут быть уничтожены снарядами. Время от времени на поле боя появляются заправки.
21. Игра «Tron» Цель игры прожить дольше, чем противник. Поэтому нельзя врезаться в стены, себя и противника. После начала раунда игроки уже не могут остановить свое движение (если не нажата пауза). Вы можете только пытаться избегать столкновения, постоянно меняя направление движения. Кроме того, вы можете мешать своему противнику. Вы можете увеличивать скорость своего движения, нажимая на клавишу ускорения. Раунд начинается, когда все игроки нажмут на какую-нибудь клавишу направления движения. Первое движение будет совершаться в эту сторону.