Санкт-Петербургский Государственный Политехнический Университет
Факультет Технической Кибернетики
Кафедра Автоматики и Вычислительной Техника
КУРСОВОЙ ПРОЕКТ
Дисциплина: Теория и технология программирования
Тема: Блэк Джек
Выполнил студент гр. 2081/1
Преподаватель
"__ "_______ 2009 г.
Санкт-Петербург 2009
Оглавление
1.Введение................................................................................................ 3
2.Основания для разработки................................................................ 3
3.Основная функцицональность программы.................................... 3
4.Требование к программе или программному изделию................. 3
4.1.Требование к функциональным характеристикам......................... 3
4.1.Требование к надежности............................................................... 3
4.1.Условия эксплуатации..................................................................... 3
4.1.Требование к программной совместимости................................... 3
4.1.Специальные требования................................................................ 4
5.Руководство пользователя................................................................. 5
7.Описание программы......................................................................... 5
7.1.Диаграмма классов.......................................................................... 5
7.2.Взаимодействие основных классов друг с другом........................ 6
7.3.JAVA-документация........................................................................ 7
7.3.1. Пакет cards.pack....................................................................... 7
7.3.1.1.Класс Card.......................................................................... 7
7.3.1.2.Класс Face........................................................................... 8
7.3.1.3.Класс Suit.......................................................................... 10
7.3.1.4.Класс Faces....................................................................... 11
7.3.1.5.Класс Suits........................................................................ 12
7.3.1.6.Класс Pack........................................................................ 13
7.3.2.Пакет cards.Hand..................................................................... 15
7.3.2.1.Класс BlackJackHand........................................................ 15
7.3.2.2.Class Hand......................................................................... 17
7.3.3.Пакет cards.blackjack............................................................... 19
7.3.3.1.Класс Diler........................................................................ 20
7.3.3.2.Класс Player...................................................................... 21
7.3.3.3.Класс Session.................................................................... 23
7.3.3.4.Класс Result...................................................................... 25
7.3.3.5.Класс Game....................................................................... 27
7.3.4.Пакет cards.GUI....................................................................... 28
7.3.4.1.Класс GUICard................................................................. 29
7.3.4.2.Класс GUIHand................................................................. 30
7.3.4.3.Класс GUIPack................................................................. 32
7.3.4.4.Класс ManagerResources.................................................. 33
7.3.4.5.Класс GUISession............................................................. 34
7.3.4.6.Класс GUIBlackJack......................................................... 36
7.3.5.Пакет cards.............................................................................. 38
7.3.5.1.Класс Main........................................................................ 38
7.3.5.2.Класс MainFrame.............................................................. 39
7.3.5.3.Класс Money..................................................................... 40
8.Испытания программы.................................................................... 43
8.Заключение......................................................................................... 47
1.Введение
Данный курсовой проект включает в себя реализацию карточной игры “Блэк Джек” с графическим интерфейсом с помощью языка программирования JAVA.
2. Основания для разработки
По предмету «Теория и технологии программирования» необходимо было выбрать курсовой проект. Тема свободная. После выполнения проекта «Судоку», был выбран проект – карточная игра «Блэк Джек».
3. Основная функциональность программы
Основными задачами программы Блэк Джек является реализация основных правил, выбранных на усмотрение разработчика, карточной игры Блэк Джек.
4. Требования к программе или программному изделию
4.1. Требования к функциональным характеристикам
К программе Блэк Джек предъявляются следующие требования:
1) Графический интерфейс в среде джава;
2) Работа программы рассчитана на 1 игрока;
3) Функциональность классов.
4.2. Требования к надёжности
Программа должна обеспечивать корректное выполнение правил карточной игры Блэк Джек в рамках настоящего проекта.
4.3. Условия эксплуатации
Программа рассчитана на работу с одним пользователем.
4.4. Требования к программной совместимости
Разрабатываемая программа должна быть совместима с виртуальной машиной JAVA.
4.5. Специальные требования
Специальные требования к программе Блэк Джэк не предъявляются.
5. Руководство пользователя
Для того, чтобы начать партию, требуется нажать кнопку “Новая игра” на основной панели. Далее игрок делает ставку против дилера(требуется указать нужную сумму в левом нижнем окошке панели программы). Ошибочно считается, что цель заключается в том, чтобы набрать как можно больше очков, но не более 21. На самом деле цель игры - обыграть дилера. Значения очков каждой карты: от двойки до десятки — соответственно от 2 до 10, у туза — 1 или 11 (в пользу игрока), у т. н. картинок (король, дама, валет) — 10. После того, как первая карта сдана, игрокам запрещается делать ставки. Дилер раздаёт карты: по две карты каждому игроку, себе раздаёт одну карту. Если у игрока сразу после раздачи набралось 21 очко (то есть у игрока туз и 10 или туз и картинка), то такая ситуация и называется блэк джек(в данной программе это событие будет называться выйгрышем). В таком случае игроку сразу выплачивается выигрыш 3 к 2 (то есть в 1,5 раза превышающий его ставку). Если же у игрока не блэк джек, предлагается на выбор либо взять ещё карту(кнопка “Еще карту” на панели), либо остаться при тех картах (и той сумме очков), которые у него на руке(кнопка “Закончить”). Если у игрока после взятия новой карты сумма очков превысит 21, то такая ситуация называется «перебор»(т.е. последует событие проигрыша). Если у дилера в первых двух картах набирается 21 очко (блэкджек), то игрок (в случае,если у него нет блэк джека), проигрывает. В противном случае игрок и дилер остаются при своих ставках, если они ранее не выбрали взять выигрыш 1 к 1. После того, как игрок завершил брать карты, дилер раздаёт карты себе. Общее правило блек джека состоит в том, что дилер обязан остановиться, как только наберёт 17 очков или выше, и брать, пока не достигнет (даже если у всех неперебравших меньше очков). Так же можно увеличить ставку вдвое при условии, что игрокум будет взята еще одна карта (кнопка “Вдвое” на панели).
7.1.Диаграмма классов:
Диаг.1
7.2. Взаимодействие основных классов друг с другом:
Все классы данной программы взаимодействуют друг с другом, опираясь на основные концепции объектно-ориентированного программирования (агрегирование, наследование). К основным классам программы можно отнести следующие классы:
§ MainFrame – главный фрейм, в котором размещаются все графические компоненты;
§ Game – класс, хранящий информацию об игроке, позволяет начинать новую партию.
§ Session – класс, хранящий правила игры и игровую механику.
§ Pack – класс, в котором хранятся все карты. Колода.
§ Hand – класс, в котором содержится информация о картах в руке игрока
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.