Створення ігрової програми 7 лунок на мові програмування Java презентация

Содержание

Зміст Вступ Завдання Організація роботи Теоретичні відомості Код програми Основні аспекти коду програми Інструкція користувача Висновки Список використаної літератури

Слайд 1Презентація курсової роботи
Виконав: Вовк Владислав Володимирович
Студент II курсу
Групи КТ-131
Створення ігрової

програми «7 лунок» на мові програмування Java

Міністерство освіти і науки
Черкаський державний технологічний університет
Кафедра комп*ютерних наук та інформаційних технологій управління


Слайд 2Зміст
Вступ
Завдання
Організація роботи
Теоретичні відомості
Код програми
Основні аспекти коду програми
Інструкція користувача
Висновки
Список

використаної літератури






Слайд 3ВСТУП:
В даній курсовій роботі потрібно виконати розробку та написання програмного забезпечення

на мові програмування Java. Програма призначена для реалізації загальновідомої гри «7 лунок». В ній потрібно пересунути чорні кулі на місце білих, а білі - на місце чорних. Кулю можна пересунути або в сусідню з ним порожню лунку, або в порожню лунку, яка знаходиться безпосередньо за найближчою кулею.

Слайд 4 Завдання
«Сім лунок». Вздовж дошки розташовано 7 лунок, в котрих лежать

3 чорних и 3 білих шари так, як показано на рис. 106. Пересунути чорні шари на місце білих, а білі — на місце чорних. Шар можна пересувати або в сусідню з ним порожню лунку, або в порожню лунку, що знаходиться безпосередньо за найближчим шаром.



Слайд 5 Організація роботи
Розробку гри я поділив на основні чотири частини:

Створення базової

архітектури
Проміжне тестування
Доповнення уже створеної архітектури гри
Фінальне тестування



Слайд 6 Теоретичні відомості
Об'єктно-орієнтоване програмування - це метод програмування, заснований на поданні

програми у вигляді сукупності взаємодіючих об'єктів, кожен з яких є екземпляром певного класу, а класи є членами певної ієрархії наслідування

Найсуттєвіші риси ООП

Інкапсуляція

Поліморфізм

Наслідування


Слайд 7Інкапсуляція - механізм об'єднання коду і даних всередині об'єкта, а також

їх захисту від зовнішніх змін. Всередині об'єкта дані і код можуть бути відкритими (public) для доступу і модифікації іншими об'єктами і закритими (private) для зовнішніх змін.

Інкапсуляція


Слайд 8Поліморфізм (polymorphіsm) - найважливіший елемент концепції ООП, що дозволяє використовувати єдине

найменування для функцій, що виконують схожі дії.

Поліморфізм


Слайд 9Успадкування (inheritance) - механізм ООП, що дозволяє об'єкту мати (наслідувати) методи

іншого об'єкта. Точніше, об'єкт отримує (успадковує) всі основні властивості свого «предка» та додає до них методи, властиві тільки йому. «Спадкоємець» об'єкта отримає в «спадщину» методи вже двох об'єктів і т. д. Спадкування ще називають ієрархією класів.

Успадкування


Слайд 10Дана гра має три класи. Кожен клас виконує свою задачу.
Ball
Відповідає за

поведінку «кульок»
Hole
Відповідає за маніпуляції з лунками даної гри.
MainWindow
Відповідає за відображення самої гри.

Код програми


Слайд 11
public class Ball {
private Color color;
public Ball(Color color){
this.color = color;
}
public Color

getColor() {
return color;
}
}


Ball

Перший клас.


Слайд 12
public class Hole {
private Ball ball;
private int X, Y, Diametr;
public Hole(Ball

ball){
this.setBall(ball);
}
public Hole(){ }
public void setX(int X){
this.X = X; }

public int getX(){
return this.X; }
public void setY(int Y){
this.Y = Y; }
public int getY(){
return this.Y; }
public void setDiametr(int Diametr){
this.Diametr = Diametr;
}
public int getDiametr(){
return this.Diametr;
}
  public Ball getBall() {
return ball;
}
  public void setBall(Ball ball) {
this.ball = ball;
}
public void ballMoveOut(){
this.ball = null;
}
}


Hole

Другий клас.


Слайд 13
public class MainWindow {
  protected Shell shell;
static void main(String[] args) {
try {
MainWindow

window = new MainWindow();
window.open();
} catch (Exception e) {
e.printStackTrace();
} }
 public void open() {
Display display = Display.getDefault();
createContents();
shell.open();
shell.layout();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}}}
 

MainWindow

Третій клас.


Слайд 14MainWindow
Третій клас. Продовження.

void DrawStart(Canvas canvas){}
ArrayList holes = new ArrayList();
private void DrawHole(int

D, int height, int index, Hole hole, GC gc){
int start = 20;
int x = index * (D) + index * start + start-10;
int ballD = D/2;
gc.drawOval(x, 5, D, D);
if(hole != null){
hole.setDiametr(D);
hole.setX(x+D/2);
hole.setY(5+D/2);
if(hole.getBall() != null){
gc.setBackground(hole.getBall().getColor());
gc.fillOval(x+ballD/2, 5+D/2-ballD/2, ballD, ballD);
}
}
}
}




private int GetClickedHoleIndex(int X, int Y){
int resultIndex = -1;
for(Hole hole : holes){
int x0 = hole.getX();
int y0 = hole.getY();
int r = hole.getDiametr()/2;
if(Math.sqrt((x0-X)*(x0-X)+(y0-Y)*(y0-Y))<=r){
resultIndex = holes.indexOf(hole);
break;
}
}
return resultIndex;
}

int selectedHole;

void DoMove(int newSelection){
if(newSelection != -1 && newSelection != selectedHole){
if(holes.get(newSelection).getBall() == null){
if(Math.abs(newSelection - selectedHole) < 3){
holes.get(newSelection).setBall(holes.get(selectedHole).getBall());
holes.get(selectedHole).ballMoveOut();
}


Слайд 15MainWindow
Третій клас. Продовження.

} } selectedHole = - 1; }
protected void createContents() {
shell = new

Shell();
shell.setSize(517, 104);
shell.setText("7 лунок");
selectedHole = -1;
Canvas canvas = new Canvas(shell, SWT.NONE);
Device device = Display.getCurrent ();
Color black = new Color (device, 0, 0, 0);
Color white = new Color (device, 255, 255, 255);
holes.add(new Hole(new Ball(black)));
holes.add(new Hole(new Ball(black)));
holes.add(new Hole(new Ball(black)));
holes.add(new Hole());
holes.add(new Hole(new Ball(white)));
holes.add(new Hole(new Ball(white)));
holes.add(new Hole(new Ball(white)));





canvas.addPaintListener(new PaintListener() {
public void paintControl(PaintEvent e) {
int D = canvas.getBounds().width / 10;
int height = canvas.getBounds().height;
for(int i=0;i<7;i++){
DrawHole(D, height, i, holes.get(i), e.gc);
}
}
});
canvas.addMouseListener(new MouseAdapter() {
@Override
public void mouseDown(MouseEvent e) {
System.out.println(e.x + ";" + e.y);
if(selectedHole == -1){
selectedHole = GetClickedHoleIndex(e.x, e.y);
}
else{
DoMove(GetClickedHoleIndex(e.x, e.y));
canvas.redraw();
}
}
});
canvas.setBounds(0, 0, 501, 64);


}


Слайд 16Основні аспекти коду
Модифікатори доступу, які
я використовував
для створення даної гри


Слайд 17Основні аспекти коду
Типи даних, що були використані в даній курсовій роботі


Слайд 18Основні аспекти коду
Бібліотеки, які знадобилися в даній курсовій роботі


Слайд 19Приклад використання інкапсуляції
Розглянемо на основі класу «Ball»
 
import org.eclipse.swt.graphics.Color;
public class Ball {
private

Color color;
public Ball(Color color){
this.color = color;
}
public Color getColor() {
return color;
}
}


Слайд 20Приклад використання поліморфізму
Розглянемо на основі частини DoMove класу «MainWindow»

 void DoMove(int newSelection){
if(newSelection

!= -1 && newSelection != selectedHole){
if(holes.get(newSelection).getBall() == null){
if(Math.abs(newSelection - selectedHole) < 3){
holes.get(newSelection).setBall(holes.get(selectedHole).getBall());
holes.get(selectedHole).ballMoveOut();}}}
}

Тобто це здатність об'єкта використовувати методи похідного класу, який не існує на момент створення базового


Слайд 21ІНСТРУКЦІЯ КОРИСТУВАЧА
Для того щоб розпочати гру потрібно її запустити в програмі

Eclipse. Після чого ви побачите меню гри.

Слайд 22Далі вам потрібно пересунути білі кульки на місце чорних дотримуючись правил

гри.

Слайд 23Висновки
В ході даної курсової роботи я розробив програму яка є відображенням

цікавої гри «7 лунок». Для створення даної гри я оволодів основами об’єктно-орієнтованого програмування, скористався поліморфізмом, успадкуванням, інкапсуляцією. Також в подальшому цю гру можна зробити більш досконалою.

Слайд 24Список використаної літератури
Васильєв А.Н. Об’єктно-орієнтоване програмування. Java; Навчальний посібник. – СПб.:

Пітер, 2011. – 400 с.
Електронна бібліотека. Wikipedia. [Електронний ресурс] : Веб проргамування на Java. – Режим доступу: https://uk.wikibooks.org/wiki/Веб-програмування_на_Java
Електронна бібліотека. Wikipedia. [Електронний ресурс] : Освоюємо Java – Режим доступу: https://uk.wikibooks.org/wiki/Освоюємо_Java
Гіберт Ш.В. Java. Полное руководство, 8-е издание; Посібник програміста. – СПб.: Київ, 2013. – 175 с.
Java посібник. [Електронний ресурс] : Изучаем Java. Обучающие курси. Java-самоучитель: программирование на языке Java. Режим доступу – http://java-study.ru/samouchitel



Слайд 25Дякую за увагу
Побажання та зауваження надсилати на vovk-vladislav@gmail.com


Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

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


Для правообладателей

Яндекс.Метрика