Разработка приложения на Java
Разработка и создание игры "Змейка". Использование динамически-активных принципов языка Java. Графические объекты программы. Описание игры, правила, теоретические сведения. Классы приложения. Типы данных. Реализация. Метод. Объект. Блок-схема игры.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 18.06.2008 |
Размер файла | 12,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Цель: научиться создавать апплет
Задание: Создать апплет для реализации нижеприведённых задач. При написании программы обязательно использовать методы многопоточного программирования. Игра «Змейка». Управление клавишами. Вначале «змейка» состоит из двух звеньев, на экране появляются предметы пищи. При «поедании» из «змейка» в длину увеличивается на одно звено. Окончание игры - касание границы экрана или «укус» себя самой. Учесть прохождение всего пути всеми звеньями «змейки».
Теоретические сведения:
Игра. В начале игры выводится окно, в котором я поместила ссылку для начала игры. Предлагается на выбор 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 содержит основные классы утилит.
Блок-схема:
Листинг программы:
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. В программу интегрированы графические объекты. Программа является логичной и максимально информативной.
Подобные документы
История развития языка программирования Java. История тетриса - культовой компьютерной игры, изобретённой в СССР. Правила проведения игры, особенности начисления очков. Создание интерфейса программы, ее реализация в среде Java, кодирование, тестирование.
курсовая работа [168,1 K], добавлен 27.09.2013Сетевые возможности языков программирования. Преимущества использования Java-апплетов. Классы, входящие в состав библиотеки java.awt. Создание пользовательского интерфейса. Сокетное соединение с сервером. Графика в Java. Значения составляющих цвета.
курсовая работа [508,1 K], добавлен 10.11.2014Разработка и реализация компьютерной игры "Змейка" с помощью языка программирования Pascal и модуля CRT. Составление общего алгоритма программы, выделение ее функциональных частей. Разработка тестовых примеров. Использование типизированных файлов.
курсовая работа [2,1 M], добавлен 23.02.2011Описание алгоритма хода ЭВМ в режиме "пользователь-компьютер" в игре "Морской бой". Описание совокупности классов, их полей и методов. Разработка интерфейса и руководства пользователя по проведению игры. Листинг программы, написанной на языке Java.
курсовая работа [645,0 K], добавлен 26.03.2014Разработка игры "Экзамен" с применением объектно-ориентированного программирования и языка Java (в среде Eclipse Helios). Структура программы и алгоритм решения задачи. Описание методов и переменных. Экспериментальное тестирование и оценка программы.
курсовая работа [122,5 K], добавлен 19.05.2011Назначение и возможности разработанного приложения для контроля активности сетевых и периферийных устройств предприятия. Язык программирования Java. Распределенные многоуровневые приложения. Структура базы данных, интерфейс разработанного приложения.
курсовая работа [1,0 M], добавлен 16.12.2012Анализ игровых жанров для мобильных устройств и целевой аудитории. Разработка концепции игрового приложения, основной механики, меню и интерфейса игры. Описание переменных скриптов. Реализация выбора цели и стрельбы. Настройка работоспособности игры.
дипломная работа [1,4 M], добавлен 19.01.2017Создание языка программирования с помощью приложения "Java". История названия и эмблемы Java. Обзор многообразия современных текстовых редакторов. Обработка строки. Методы в классе String. Java: задачи по обработке текста. Примеры программирования.
курсовая работа [276,1 K], добавлен 19.07.2014Анализ возможных подходов к созданию web-приложения с использованием программирования Java и CGI. Разработка структуры базы данных и реализация полученной модели в рамках СУБД. Обеспечение диалога CGI-программы с пользователем, используя браузер.
курсовая работа [310,9 K], добавлен 07.08.2011Архитектура Java и Java RMI, их основные свойства, базовая система и элементы. Безопасность и виртуальная Java-машина. Интерфейс Java API. Пример использования приложения RMI. Работа с программой "Calculator". Универсальность, портативность платформ.
курсовая работа [208,6 K], добавлен 03.12.2013