Створення ігрової програми 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. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


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

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