48617 (608686)

Файл №608686 48617 (Разработка приложения на Java)48617 (608686)2016-07-30СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла

Цель: научиться создавать апплет

Задание: Создать апплет для реализации нижеприведённых задач. При написании программы обязательно использовать методы многопоточного программирования. Игра «Змейка». Управление клавишами. Вначале «змейка» состоит из двух звеньев, на экране появляются предметы пищи. При «поедании» из «змейка» в длину увеличивается на одно звено. Окончание игры – касание границы экрана или «укус» себя самой. Учесть прохождение всего пути всеми звеньями «змейки».

Теоретические сведения:

Игра. В начале игры выводится окно, в котором я поместила ссылку для начала игры. Предлагается на выбор 4 разных типа игры. Отличие заключается в скорости. После клика по ней начинается процесс игры. На монитор выводится прямоугольник, в котором и происходит весь основной процесс игры. Внизу данного прямоугольника мы можем увидеть кол-во набранных очков. Они отображают успешность прохождения игры. Чем больше скорость игры, тем быстрее набираются очки. Объектами в моей разработке служат звенья змейки. Для активной адаптации и восприятия, и реализации программы я использовала графические объекты. Они появляются случайным образом на экране. Если Вы врезаетесь змейкой в стенку, либо в саму себя, то игра автоматически заканчивается с выведением статистических данных.

Класс (class) Строительный блок Java-приложений, класс является группой элементов данных (членов), с которыми связаны программы (методы), выполняющие операции над этими данными. Пакет PL/SQL в чем-то похож на класс, за исключением того, что вы не можете создавать отдельный объект из пакета, поэтому он больше похож на статический Java-класс.

Типы данных (datatypes) Все в Java определяется через класс, кроме элементарных типов данных. Так, String является классом, поэтому когда вы объявляете переменную типа String, вы создаете объект, основанный на этом классе. Элементарные типы данных Java включают четыре типа целых, а также boolean, char, double, и float.

Реализация (instantiation) Для создания частного экземпляра из более общей структуры, нужно объявить объект как экземпляр или реализацию класса. В языке PL/SQL вы можете объявить тип запись(TYPE) и затем объявить экземпляр записи, основанный на этом типе.

Член (member) Класс может содержать любое количество переменных, методов и других классов (классов таких как в Java 1.1), которые все вместе называются членами класса. Класс может быть определен внутри своих членов, которые содержат информацию о классе в целом (статические члены) или о реализациях объектов этого класса. Члены класса похожи на переменные уровня пакета в PL/SQL. Однако, каждый раз когда вы создаете объект из класса, вы получаете новый набор членов. Пакет имеет только одну реализацию своих данных во время сессии базы данных Oracle.

Метод (method) Метод – это именованная группа операторов языка программирования Java, которые связаны с определенным классом и которые могут быть вызваны для объектов, являющихся реализациями класса. В Java вы можете определить статические методы (также называемые методами класса), которые могут быть доступны напрямую из класса без создания объекта. Метод main также всегда объявляется как статический.

Объект (object) Известный также как экземпляр, объект – это элемент исполняемого кода, который особым образом реализует основную структуру класса. Класс является общим шаблоном типов (sorts), предоставляющим структуру и правила для этой структуры. В общем смысле объект – это элемент данных, которым вы манипулируете в вашем приложении.

Пакет (package) Пакет – это элемент языка Java, используемый для группировки родственных классов под общим именем. Все пакеты в Java API сгруппированы в один пакет, называемый java. Внутри пакета java находятся другие пакеты, сгруппированные по функциональным возможностям, например, пакет java.util содержит основные классы утилит.

Блок-схема:

public void init

public void update

Открытие и начало апплета

Начало



public void paint

if(started)

if(game==1)

public void locateRandom

public boolean key

public boolean action

Движение

Конец

  1. if(stemp.equals("Beginner"))

  2. if(stemp.equals("Intermediate"))

  3. if(stemp.equals("Intermediate"))

  4. if(stemp.equals("Xtreamest"))


Листинг программы:

package snake;

import java.awt.*;

import java.awt.event.*;

import java.applet.*;

public class snake extends Applet implements Runnable

{

Image dot[]=new Image[400];

Image back;

Image offI;

Graphics offG;

int x[]= new int[400];

int y[]= new int[400];

int rtemp=1;

int game=1;

int level;

int z;

int n;

int count=0;

int score=0;

int add=1;

Button b= new Button("Beginner");

Button i= new Button("Intermediate");

Button p= new Button("Professional");

Button X= new Button("Xtreamest");

String stemp;

String s;

String t;

boolean go[]=new boolean[400];

boolean left=false;

boolean right=false;

boolean up=false;

boolean down=false;

boolean started=false ;

boolean me=false;

Thread setTime;

public void init()

{

add(b);

add(i);

add(p);

add(X);

setBackground(Color.black);

back = getImage(getCodeBase(), "screan.gif");

for (z=0 ; z < 400 ; z++){dot[z] = getImage(getCodeBase(), "dot.gif"); }

}

public void update(Graphics g)

{

Dimension d = this.size();

if(offI == null)

{

offI = createImage(d.width, d.height);

offG = offI.getGraphics();

}

offG.clearRect(0, 0, d.width, d.height);

paint(offG);

g.drawImage(offI, 0, 0, null);

}

public void paint(Graphics g)

{

g.drawImage(back, 0, 0, this);

g.setColor(Color.white);

if(started)

{

g.setFont(new Font("Verdana", 1, 12));

t = "Score "+score+"";

g.drawString(t, 75, 220);

}

if(game==1)

{

g.setFont(new Font("Verdana", 1, 13));

s = "Select Mode";

g.drawString(s, 65, 30);

b.move(75, 50);

i.move(68, 90);

p.move(68, 130);

X.move(73, 170);

}

if((game==2)||(game==3))

{

if(!started)

{

g.setFont(new Font("Verdana", 1, 11));

t = "Use the key board arrows to move!";

g.drawString(t, 5, 215);

}

for (z=0 ; z <= n ; z++){ g.drawImage(dot[z],x[z],y[z],this); }

me=true;

}

if(!me)

{

g.setFont(new Font("Verdana", 1, 11));

t = "by Cumka, especially for Tywkanchik";

g.drawString(t, 5, 215);

}

if(game==3)

{

g.setFont(new Font("Verdana", 1, 13));

s="Game Over";

g.drawString(s, 65, 60);

}

}

public void run()

{

for(z=4 ;z <400 ; z++) { go[z]=false;}

for(z=0 ; z<4 ; z++) { go[z]=true;x[z]=91;y[z]=91;}

n=3;

game=2;

score=0;

b.move(70, -100);

i.move(70, -100);

p.move(70, -100);

X.move(70, -100);

left=false;

right=false;

up=false;

down=false;

locateRandom(4);

while(true)

{

if (game==2)

{

if ((x[0]==x[n])&&(y[0]==y[n])){go[n]=true;locateRandom((n+1));score+=add; }

for(z = 399 ; z > 0 ; z--)

{

if (go[z])

{

x[z] = x[(z-1)]; y[z] = y[(z-1)];

if ((z>4)&&(x[0]==x[z])&&(y[0]==y[z])){ game=3; }

}

}

if(left){ x[0]-=10; }

if(right){ x[0]+=10; }

if(up){ y[0]-=10; }

if(down){ y[0]+=10; }

}

if(y[0]>191){y[0]=191;game=3;}

if(y[0]<1){y[0]=1;game=3;}

if(x[0]>191){x[0]=191;game=3;}

if(x[0]<1){x[0]=1;game=3;}

if (game==3)

{

if (count <(1500/level)) { count++; } else { count=0;game=1;repaint();setTime.stop(); }

}

repaint();

try{setTime.sleep(level);}

catch(InterruptedException e){}

}

}

public void locateRandom(int turn)

{

rtemp=(int)(Math.random()*20);

x[turn]=((rtemp*10)+1) ;

rtemp=(int)(Math.random()*20);

y[turn]=((rtemp*10)+1);

n++;

}

public boolean keyDown(Event e, int key)

{

if ((key == Event.LEFT) &&(!right)){left = true; up = false; down = false;if(!started)started=true;}

if ((key == Event.RIGHT) && (!left)){right = true; up = false; down = false;if(!started)started=true;}

if ((key == Event.UP) && (!down)){ up = true; right = false; left = false;if(!started)started=true;}

if ((key == Event.DOWN) && (!up)){down = true; right = false; left = false;if(!started)started=true;}

return true;

}

public boolean action(Event event, Object obj)

{

stemp = (String) obj;

if(stemp.equals("Beginner"))

{

add=2;

level=100;

setTime = new Thread(this);

setTime.start();

return true;

}

if(stemp.equals("Intermediate"))

{

add=5;

level=70;

setTime = new Thread(this);

setTime.start();

return true;

}

if(stemp.equals("Professional"))

{

add=10;

level=40;

setTime = new Thread(this);

setTime.start();

return true;

}

if(stemp.equals("Xtreamest"))

{

add=20;

level=20;

setTime = new Thread(this);

setTime.start();

return true;

}

return false;

}

}

Заключение:

В результате изучения языка Java была разработана и создана игра «Змейка». Она может являться ярким примером для отображения главных, принципиальных возможностей данного языка. В моей разработке используются динамически-активные принципы языка Java. В программу интегрированы графические объекты. Программа является логичной и максимально информативной.

Характеристики

Тип файла
Документ
Размер
78,74 Kb
Тип материала
Учебное заведение
Неизвестно

Тип файла документ

Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.

Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.

Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.

Список файлов курсовой работы

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6510
Авторов
на СтудИзбе
302
Средний доход
с одного платного файла
Обучение Подробнее