Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

курсовая ЛФП / Документация / Пояснительная записка

.doc
Скачиваний:
14
Добавлен:
12.02.2015
Размер:
62.98 Кб
Скачать

ФГБОУ ВПО

Саратовский государственный технический университет имени Гагарина Ю.А.

Волк

курсовой проект по дисциплине "Функциональное и логическое программирование"

Проект выполнил:

студент 3 курса специальности ПВС,

группа ПВС-32

дневной формы обучения

Кузнецов Р.В.

Проект принял

ассистент кафедры ИБС

Ершов А.С.

Саратов 2012

ФГБОУ ВПО

Саратовский государственный технический университет имени Гагарина Ю.А.

кафедра "Информационная безопасность автоматизированных систем"

УТВЕРЖДАЮ

Зав. Кафедрой ИБС

________________

"___"_________2012 г.

ЗАДАНИЕ № (вариант)

на курсовое проектирование

Студент, 3 курс, группы ПВС-32, факультета "Электронной техники и приборостроения"

Кузнецов Ростислав Валерьевич

Тема проекта.

Волк

Время выдачи задания апрель 2012 г.

Срок выполнения проета 30 мая 2012 г.

Защита проекта назначена _____________2012 г.

Содержание

1. Титульный лист.

2. Задание на курсовое проектирование

3. Содержание.

4. Введение.

5. Листинг

6. Техническая часть.

6.1. Техническое задание на разработку программы.

6.2. Руководство оператора.

6.3. Руководство программиста.

6.4. Программа и методика испытаний.

7. Заключение.

ВВЕДЕНИЕ

Игра по мотивам электронной игры Электроника «Волк-яйцелов»

Игрок управляет персонажем Волк и собирает яйца, скатывающиеся с боковых желобов. За каждое пойманное яйцо игроку начисляются очки, если игрок не поймает более 5ти яиц игра заканчивается

Листинг

(ns wolf

(:import

(javax.swing JFrame JLabel JButton JDialog )

(java.awt.event ActionListener ActionEvent KeyAdapter KeyEvent)

(java.awt Color Image Font Graphics )))

(def startpoint1 [682 120])

(def startpoint2 [682 60])

(def startpoint3 [7 120])

(def startpoint4 [7 55])

(def next [0 0 0 0])

(def egg1 [682 120])

(def egg2 [682 55])

(def egg3 [7 120])

(def egg4 [7 55])

(def egg1-exist 0)

(def egg2-exist 0)

(def egg3-exist 0)

(def egg4-exist 0)

(def score 0)

(def lives 5)

(def speed 300)

(def color (Color. 10 10 10))

(def wolf-position 1)

(def img "D:/Wolf/1.png")

(defn derection [#^KeyEvent key]

(condp = (.getKeyCode key)

KeyEvent/VK_C (do

(def wolf-position 1)

(def img "D:/Wolf/1.png"))

KeyEvent/VK_F (do

(def wolf-position 3)

(def img "D:/Wolf/3.png"))

KeyEvent/VK_Z (do

(def wolf-position 2)

(def img "D:/Wolf/2.png"))

KeyEvent/VK_A (do

(def wolf-position 4)

(def img "D:/Wolf/4.png"))

false))

(defn make-frame[]

(let[

key-adapter (proxy [KeyAdapter] []

(keyPressed [e]

(derection e)))

frame(JFrame."Wolf")

leftpanel(proxy [javax.swing.JPanel] []

(paintComponent [g]

(proxy-super paintComponent g)

(doto g

(.setColor (Color. 255 255 255))

(.fillRect 0 0 180 400)

(.setColor color)

(.drawLine 1 80 170 140)

(.drawLine 1 145 170 205)

)

(if (= egg3-exist 1)

(doto g

(.setColor color)

(.drawOval (egg3 0) (egg3 1) 30 30)))

(if (= egg4-exist 1)

(doto g

(.setColor color)

(.drawOval (egg4 0) (egg4 1) 30 30)))))

ritepanel(proxy [javax.swing.JPanel] []

(paintComponent [g]

(proxy-super paintComponent g)

(doto g

(.setColor (Color. 255 255 255))

(.fillRect 540 0 720 400)

(.setColor color)

(.drawLine 541 140 719 80)

(.drawLine 541 205 719 145)

)

(if (= egg1-exist 1)

(doto g

(.setColor color)

(.drawOval (egg1 0) (egg1 1) 30 30)))

(if (= egg2-exist 1)

(doto g

(.setColor color)

(.drawOval (egg2 0) (egg2 1) 30 30)))

))

imagpanel (proxy [javax.swing.JPanel] []

(paintComponent [g]

(proxy-super paintComponent g)

(.drawImage g (.getImage

(javax.swing.ImageIcon. img))

0 0 (.getWidth this) (.getHeight this) nil)))]

(doto leftpanel

(.setBounds 0 0 180 400))

(doto imagpanel

(.setBounds 180 0 360 400))

(doto ritepanel

(.setBounds 540 0 720 400))

(doto frame

(.setBounds 200 200 740 450)

(.setBackground (Color. 255 255 255))

(.setVisible true)

(.add leftpanel)

(.add imagpanel)

(.add ritepanel)

(.addKeyListener key-adapter))

(loop []

(.repaint frame)

(. Thread (sleep speed))

(recur))

)

)

(make-frame)

Заключение

В результате выполнения этого проекта изучил новый язык программирования Clojure, освоил особенности написание игры на функциональном языке.

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

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

Руководитель проекта ________________________________ Ершов А.С.

Задание принял к исполнению____________________________

Соседние файлы в папке Документация