Documente Academic
Documente Profesional
Documente Cultură
CUPRINS
CUPRINS...................................................................................................1
1. INTRODUCERE...................................................................................2
2. NOIUNI DESPRE LIMBAJUL JAVA..............................................4
2.1 Obiecte i clase n programarea pe obiecte...........................................4
2.2 Organizarea unui program n obiecte....................................................5
2.3. Definirea unei clase..............................................................................9
2.4 Motenire.............................................................................................16
2.5. Principalele pachete din JDK.............................................................26
2.6 Interfeele grafice de utilizator n Java................................................30
3. APLICAIA AVIOANE......................................................................40
3.1 Soluia de implementare......................................................................40
3.2 Structura programului.........................................................................41
3.3 Regulile i funcionarea aplicaiei.......................................................43
4. CONCLUZII........................................................................................46
BIBLIOGRAFIE....................................................................................48
ANEXA.....................................................................................................49
1. INTRODUCERE
Rolul informaiei n activitatea omului devine tot mai important pe msur ce
aceasta devine tot mai complex. Pe lng aceasta, costul unui computer este astzi
suficient de redus nct el s devin un obiect la ndemna unei largi categorii de
utilizatori. Prin urmare, calculatorul este folosit actualmente n din ce n ce mai multe
domenii, soluionnd o gam vast de aplicaii de la sistemele expert destinate
cercetrii de nalt nivel pn la jocurile pe calculator ori aplicaii casnice foarte uor
de utilizat de nespecialiti.
Lucrarea de fa i propune prezentarea unei aplicaii de colectare a datelor
personale i nregistrarea lor ntr-o baz de date relaional. Aplicaia const ntr-o
interfa ce permite conectarea la o baz de date pentru a introduce sau selecta datele
din ea. Programul este realizat n limbajul de programare Java.
Materialul este structurat pe mai multe pri, ncercndu-se punerea n eviden
a celor mai importante elemente utilizate n realizarea aplicaiei.
Prima partea lucrrii, se constituie ntr-o prezentare general a tematicii
abordate n cadrul capitolelor ce compun prezentarea. Fiecare dintre seciuni este
analizat prin prisma utilitii ei n cadrul ansamblului.
Capitolul al doilea se constituie ntr-o scurt trecere n revist a principalelor
elemente, metodele i tehnici n limbajul de programare obiectual Java. Se
accentueaz acele caracteristici care au relevan pentru implementarea efectiv a
aplicaiei ce face obiectul acestei lucrri de licen.
Partea a treia cuprinde o prezentare detaliat a modului n care s-a implementat
aplicaia curent. De asemenea se ofer precizri privind modul concret de utilizare al
programului n subcapitolul Ghid de utilizator.
n seciunea a patra sunt prezentate concluziile finale i posibilitile de
dezvoltare ulterioar a aplicaiei CV de colectare a datelor personale. Sunt
Echip de fotbal
UTA;
Dinamo;
Steaua;
U Craiova.
Poli Timioara
U Craiova.
Poli Timioara;
Steaua;
Dinamo.
Declararea funciilor;
Expresiile funciilor.
Asignri variabile;
Apeluri la funcii.
Declararea claselor;
Dac se opteaz pentru organizarea tip proiect clasele se pot plasa att n
fiiere .h cat i n fiierele .cpp.
Limbajul Java este un limbaj obiectual pur, adic spre deosebire de C++ sau de
varianta pe obiecte a Pascalului, care pstreaz parial caracteristicile motenite de la
limbajele procedurale din care provin, n Java totul se desfoar cu i prin
intermediul obiectelor. Nu exist o funcie main() a programului, ci una sau mai multe
class Clasa_N{
Mediul Java Development Kit (JDK) este un editor simplu de utilizat i se poate
gsi la site-ul limbajului Java: http://java.sun.com de unde poate fi descrcat cu
ajutorul unui browser sau al unui program FTP. Fiecare tip de calculator are propriile
particulariti i instalarea programului JDK prezint diferene specifice fiecruia.
Detalii suplimentare despre aceste probleme i n general nouti cu privire la limbajul
Java se pot gsi tot la adresa de Internet a firmei Sun, promotoarea limbajului Java:
http://java.sun.com
n ce privete browserele compatibile Java, cele mai performante dintre ele sunt:
HotJava (scris complet n limbajul Java), Microsoft Internet Explorer i Netscape
Navigator. Primul este disponibil la aceiai adres cu JDK. Celelalte dou, care sunt i
cele mai rspndite, sunt produsele firmelor Microsoft (componente ale pachetului
Windows) i Netscape (se poate descrca din pagina WEB: http://home.netscape.com)
O alt variant de lucru este utilizarea pachetului Microsoft Development Studio for
Java (MsDev) care are un editor pentru fiierele surs .java, unul pentru paginile
.html i un browser incorporat care permite testarea programelor. MsDev este
conceput s faciliteze lucrul n sistemul de proiect descris anterior.
Recent tot firma Microsoft a scos pe pia mediul de programare Microsoft
Visual Java (MsVJ), o variant perfecionat a mediului MsDev, avnd multe
similitudini ca funcionare i grafic cu acesta dar i o serie de diferene importante.
int tel;
}
Se poate observa c toate aceste date, dei diferite ca tip i coninut, au ca
element comun faptul c sunt referitoare la Persoana. Astfel nct dac n program
se declar o variabil:
Persoana Ion,
se pot apoi scrie caracteristicile personale, ntr-o form ncapsulat, n aceast
structur. Acest avantaj al structurilor de a trata n comun datele complexe nu este
prea frecvent exploatat de limbajele procedurale i, din acest motiv, structurile nu sunt
foarte des ntlnite n programe.
n limbajele obiectuale ns, structurile sunt transformate n arhitecturi mai
complexe, care prin includerea funciilor membre devin clase i reprezint prototipul
obiectelor, elementele constitutive de baz al programelor orientate pe obiect. Clasele
sunt declarate similar cu structura din exemplul anterior, doar c lista conine i
funcii ale cror cod poate fi scris pe aceiai linie cu declaraia. n Java toate funciile
sunt in line adic se scriu in interiorul clasei din care fac parte.
}
Elementele opionale sunt: specificatorul de acces specif_acc care limiteaz
vizibilitatea clasei, extends care precede clasa printe clsp a clasei curente i
implements care precede numele interfeei intf. O asemenea clas este n fapt o
structura creia i se adaug un numr de elemente i proprieti suplimentare. n
esen ns, la fel ca i structurile, clasele sunt prototipuri ideale.
Obiectele sunt variabile declarate ca avnd tipul definit de clas. Obiectele sunt
instane ale claselor, adic ele trebuie concepute ca fiind materializarea practic a
prototipurilor ideale care sunt clasele.
Dac se transform structura Persoana n clas, atunci Persoana Dan este o
instan a clasei Persoana, un obiect.
class Persoana{
char nume[25];
char adresa[50];
int data[3];
int tel;
void print_it(){
// metod membr
10
asignarea la procesare
n exemplul de mai jos variabilele sunt: ziua, luna i data. Ele sunt
componentele clasei Data i de fiecare dat cnd se creeaz un obiect ce aparine
acestei clase, acestor variabile trebuie s li se atribuie valori.
class Data{
int ziua;
int luna;
int anul;
}
Sintaxa de declararea a variabilelor membre este:
[specificator acces] tip_variabila nume_variabila;
Specificatorul de acces este opional i guverneaz ca i n cazul claselor
vizibilitatea variabilei. Exist trei specificatori de acces:
public -
program.
Uneori anumite variabile sunt iniializate cu o valoare ce trebuie s rmn
aceiai pe toat durata rulrii programului. n acest caz se adaug la declaraie
specificatorul final i sintaxa declaraiei va fi de forma:
[specificator acces] final tip_variabil nume_variabil=valoare;
11
// variabil final
}
n programele orientate pe obiecte, n loc s se defineasc separat datele i
funciile care le prelucreaz, aa cum se procedeaz n limbajele procedurale, cele
dou devin membre ale aceleiai structuri compozite denumit clas.
Avantajul acestei abordri a problemei const n faptul c aceast definire
comun, mpreun cu specificatorii de acces, delimiteaz clar cine are i cine nu are
dreptul de a modifica valoarea unei anumite variabile.
Sintaxa unei funcii membre denumit n java metod este:
[specif_acces] tip_val_returnate nume_metod (list_param){
propoziiile metodei;
}
Se poate observa c, n afar specificatorul de acces, sintaxa de mai sus este
clasic pentru orice funcie. Se declar tipul valorii returnate, numele metodei i lista
parametrilor acesteia. n absena unei valori returnate se pune n loc void, care
semnific faptul ca funcia nu returneaz nici un parametru. Lista parametrilor, fie ea
i vid, trebuie ntotdeauna s fie specificat.
De exemplu, n blocul de program prezentat mai jos, void print_it () este o
metod a clasei Data, care nu are nici parametrii nici valoare returnabil:
class Data{
private int ziua;
private int luna;
private int anul;
public void print_it(){
12
13
//constructor
viu = true;
contor ++;
//incrementare contor
}
public void mort{
if (viu){
viu =false;
contor --;
//decrementare contor
}
}
De fiecare dat cnd creeaz un obiect se utilizeaz constructorul Soldat i, prin
urmare, se face incrementarea contorului. Cnd, n cursul rulrii programului, un
obiect de tip Soldat dispare, se execut metoda mort() i se face decrementarea
contorului. Deci, n variabila static numit contor se pstreaz evidena numrului de
soldai vii.
Diferena de comportare dintre o variabila obinuit, cum este viu i o
variabila static, aa cum este contor, provine din felul n care se desfoar
lucrurile la instanierea obiectelor. Fiecrui obiect creat i se atribuie la instaniere o
copie independent a fiecrei variabile uzuale. Aceste copii pot lua, n mod
independent, fiecare n parte, diverse valori. n schimb, variabila static este unic,
fiind aceiai pentru toate obiectele unei clase.
Metodele statice sunt, spre deosebire de metodele obinuite, disponibile i n
situaia n care nu s-a construit nici un obiect din clasa n care au fost declarate.
Sintaxa de declarare a unei metode statice este:
14
//ridicare la ptrat
return x*x;
}
public static int suma(x,y){
// nsumare
return x+y;
}
}
class Oclas{
public void ometoda(){
int i, j;
i=Matematica.patrat(5)
j=Matematica.suma(3,6)
//utilizat fr ca s existe
//un obiect din clasa Matematica
}
}
Clasa Matematica este o clas de utiliti. Metodele ei, fiind declarate statice, se
pot folosi oriunde n interiorul celorlalte clase fr ca s fie necesar construirea unor
obiecte (instane) ale clasei.
Aa cum se poate vedea, n exemplul de mai sus, apelarea unei asemenea
metode se poate face cu sintaxa:
nume_clas.nume_metod_static (list_parametrii);
O alt variant de utilizare a unei metode statice este iniializarea static
15
2.4 Motenire
Unul dintre cele mai importante beneficii ale utilizrii limbajelor de programare
orientate pe obiecte este posibilitatea utilizrii conceptului de motenire. Aceast
facilitate permite rezolvarea problemelor pornind mai nti de la cadrul general i,
apoi, mergnd spre particularitile fiecrui element al programului.
Acest lucru implic implementarea iniial a unor clase printe, care n Java se
numesc clase de baz i reprezint modele abstracte ce cuprind doar elementele
comune ale obiectelor din program. Apoi, se creeaz clasele fiice, numite n Java clase
derivate sau subclase, care reprezint modelele specializate ale obiectelor.
Prin urmare, odat definit o clas de baz, o subclas a ei poate fi definit
pornind de la ceea ce s-a specificat deja anterior n clasa de baz. n practic, este
vorba de o dezvoltare a modelului general pentru a obine din el modele particulare
ale obiectelor.
Clasa Animale este o clas de baz ce poate s aib subclasele: Mamifere i
Reptile. Prima clas derivat are ca trstur specific, de exemplu, sistemul de
nmulire cu naterea puilor vii, a doua are pielea solzoas tipic reptilian.
Cu adevrat important este ns, faptul c motenirea ofer posibilitatea
utilizrii n programele proprii ca i clase de baz, a unor clase din bibliotecile i
pachetele specializate ale limbajului Java. De exemplu, orice clas care este destinat
s funcioneze n cadrul unei pagini HTML pe Internet se poate defini ca o subclas a
16
//polimorfism
System.out.print(Miau!)
}
}
class Cainele extends Animal{
17
//polimorfism
System.out.print(Ham!)
}
}
n exemplul de mai sus s-au prezentat o ierarhie de clase ce cuprinde: o clas de
baz Animal i dou clase derivate Pisica i Cinele. Clasa de baz conine o variabil
i dou metode. Toi aceti membrii sunt disponibili i n subclase (excepie fac
variabilele si metodele declarate private n clasa de baz), ei nu mai trebuiesc nc
odat declarai n acestea. Faptul c subclasele primesc membrii clasei de baz
reprezint esena motenirii.
Prima metod este rescris diferit n fiecare din subclase. Prin urmare, atunci
cnd se utilizeaz metoda chemare cele dou tipuri de obiecte rspund, n caz c le
este foame, n mod diferit: Pisica cu miau, cinele cu ham. Aceast proprietate a
subclaselor de a putea suprancrca metode ale clasei de baz se numete
polimorfism. Teoretic, polimorfismul se poate aplica att n cazul metodelor, cat i al
variabilelor, ns aplicaii practice concrete exist doar pentru primele.
Dac n anumite situaii este dorit utilizarea metodei din clasa de baz n locul
celei din clasa derivat se apeleaz la cuvntul cheie super.
super.nume_metod(lista_parametrii)
Se poate, de exemplu, modifica funcia spune() din subclasa Pisica astfel:
class Pisica extends Animal{
private boolean Pisica_minune;
public void spune(){
if(pisica_minune) super.spune();
else System.out.print(Miau!);
}
}
Specificatorul super se poate, n principiu, folosi i pentru variabilele
membre, dar acest lucru nu este utilizat n programe deoarece, de obicei, variabilele
nu se declar nc odat n clasele derivate.
n primul exemplu din acest paragraf metoda spune() din clasa Animal nu se
18
19
membre. Funciile membre sunt definite n interiorul clasei. Datele membre sunt
variabilele declarate n interiorul clasei i sunt disponibile n interiorul acesteia pentru
toate funciile clasei. Aceast proprietate a claselor se numete ncapsulare.
n limbajul Java exist posibilitatea de a defini mai multe funcii care sa aib
unul i acelai nume, dar o list de argumente diferit. Aceast proprietate se numete
suprancrcarea funciilor.
Variabilele statice sunt utilizate atunci cnd este necesar existena unei
variabile comune pentru toate obiectele care s-au construit din clasa respectiv.
Metodele statice sunt disponibile i n situaia n care nu s-a construit nici un obiect
din clasa n care au fost declarate.
Dac, n anumite situaii, este dorit utilizarea metodei din clasa de baz n locul
celei din clasa derivat se apeleaz la cuvntul cheie super. Dac, ntr-o clas exist
cel puin o metod abstract, atunci toat clasa trebuie declarat abstract. n cazul n
care, din diverse motive, programatorul dorete s nu permit crearea de clase
derivate ale unei anumite clase, la declararea acesteia va folosi specificatorul final.
Constructorul unei clase este metoda apelat de fiecare dat cnd se creeaz un
obiect din acea clas. Constructorul are ntotdeauna acelai nume cu clasa, iar sintaxa
lui este identic cu aceea a unei metode oarecare.
Clasa Data, care a fost folosit anterior pentru exemplificare, este rescris aici i
completat cu un constructor:
class Data{
protected int ziua;
protected int luna;
protected int anul;
public Data(int a, int b, int c) {
ziua = a;
luna = b;
anul = c;
}
20
//declararea obiectului
21
//constructor Alfa
a=x;
}
public print_it(){
System.out.println(Alfa.a);
}
}
Instanierea obiectului unAlfa se face cu propoziia:
Alfa unAlfa = new Alfa(5)
testul de egalitate = =;
22
//constructor Alfa
this.gama=gama;
//constructor Alfa
alt_obiect_beta=obiect_beta;
}
alte metode ale clasei Alfa
}
class Beta{
Alfa obiect_alfa;
Beta (){
//constructor Beta
un_obiect_alfa=new Alfa(this);
}
alte metode ale clasei Beta
}
n acest exemplu la crearea unui obiect instan a clasei Beta cu ajutorul
23
24
25
26
extensie
este
posibil
datorit
pachetului
java.net,
care
permite
27
28
29
30
//alb
// gri deschis
//gri
//gri nchis
31
//negru
//rou
//roz
//portocaliu
//galben
//verde
//violet
//azuriu
//albastru
sau o nuan definit de programator prin combinaia celor trei culori fundamentale:
Color nuan = new Color(int rou,int verde,int albastru);
Gama de variaie pentru cei trei ntregi din lista de parametrii este 0...256
deoarece fiecare culoare este codat pe cte trei octei, cte unul pentru fiecare
component fundamental.
Deci, pentru a seta culoarea curent de desenare n exemplul anterior, dup
declararea obiectului g, se scrie o linie de cod de forma:
g.setColor(Color.blue);
Alt variant este crearea unei culori noi culoarea_mea:
Color.culoare = new Color(120, 40, 85)
care apoi se poate folosi ca si culoare curent:
g.setColor(culoarea_mea);
Alegerea tipului de caractere cu care se scriu mesajele pe ecran se face cu
metoda:
public void setFont (Font tip_caracter)
Tipurile de caractere disponibile sunt:
Dialog;
Helvetica;
TimesRoman;
Courier;
Symbol.
32
java.awt.Frame, cadru;
java.awt.Container, container;
java.awt.Button, butoane;
java.awt.Menu, meniuri;
java.awt.Label, etichete;
33
34
35
n Java imaginile sunt obiecte ale clasei Image. Prin urmare, toate procedurile
de manipulare ale imaginilor, pornind de la achiziie i ncheind cu afiarea i
prelucrarea, se desfoar conform tipologiei generale de lucru cu obiectele. Pentru
toate aceste operaii, n clasele Applet i Graphics s-au definit metode, care permit
executarea lor n cadrul applet-urilor.
Preluarea unei imagini de la o adres oarecare ntr-un obiect Image se face cu
metoda component a clasei Applet:
public Image getImage(URL a,String nume_imagine)
similar cu cazul sunetelor prezentat n paragraful anterior adresa URL se obine cu
metoda:
public URL getDocumentBase()
Prin urmare instanierea unui obiect imagine se face cu o linie de cod de forma
Image o_imagine=getImage(getDocumentBase(),"imag.gif");
Afiarea unei imagini ntr-un applet se face cu metoda component a clasei
Graphics:
public void drawImage(Image im,int x,int y,ImageObserver obs)
n care im este obiectul imagine, (x,y) coordonatele colului stnga sus, iar obs
este component a interfeei ImageObserver implementat de clasa Component. De
obicei acest parametru este nlocuit cu this.
Afiarea imaginii transferat n exemplul anterior la coordonatele (10,10) se
face deci cu liniile de program prezentate n continuare:
Graphics g;
g.drawImage(o_imagine,10,10,this);
Applet-ul de mai sus ruleaz ntr-o pagin web similar ca form cu cele
prezentate n leciile anterioare. Pentru buna funcionare este necesar ca dimensiunile
width i hight declarate n fiierul HTML s fie alese suficient de mari, nct
imaginea i celelalte elemente s ncap n spaiul rezultat.
Sunetele sunt preluate i prelucrate n limbajul Java sub form de obiecte
AudioClip, adic obiecte ale claselor ce implementeaz interfaa AudioClip. Metodele
36
37
38
39
3. APLICAIA AVIOANE
40
Programul este structurat pe patru fiiere cuprinznd fiecare dintre ele cte o
clas public, deci avnd acelai nume cu fiierul.
Aceste fiiere sunt:
1. Avioane.java clasa Avioane (clasa principal a programului)
2. Avion.java clasa Avion
3. AvioaneFrame.java clasa AvioaneFrame
4. Ptrat.java clasa Ptrat
5. MyMap.java clasa MyMap
Clasa principal Avion cuprinde doar partea de instaniere i afiare a aplicaiei
Avioane. Structura sa conine doar funcia main() aa cum se vede n listingul de mai
jos.
public class Avioane {
public static void main(String[] args) {
AvioaneFrame frame = new AvioaneFrame();
frame.setVisible(true);
}
}
41
// vectori date
// metode membre
// constructor
// tratare evenimente de mouse
// metoda paint()
// lovitura operator
// lovitura computerului
// generare harta dispunerii avioanelor computerului
// inchiderea ferestrei aplicatiei
public AvioaneFrame(){...}
public void actionPerformed(ActionEvent e) {...}
public void paint(Graphics g){...}
private boolean loveste_player(){...}
private void loveste_computer(){...}
public void generareAImap(){...}
protected void windowClosed() {...}
}
// metode membre
// constructor
// pozitionare avion
// desenare avion
Clasa Ptrat este cea care definete unitatea de msur i n acelai timp
componenta de construcie a avioanelor.
public class patrat{
// date membre
// coordonate
42
a.
b.
c.
butonul start
Operatorul uman selecteaz pe rnd tipul de avioanele dorite i le plaseaz pe
43
Rezult o formul n genul celei din figura de mai jos si jocul poate porni prin
apsarea butonului Start.
44
45
4. CONCLUZII
Aplicaia Avioane este un Joc cu scop didactic care ilustreaz o cutare bazat
pe un algoritm euristic. Avnd n vedere specificaia iniial a proiectului s-a adoptat
soluia simpl a unei btlii ntre un operator uman i un competitor artificial
reprezentnd calculatorul.
O dezvoltare ulterioar a acestui joc ar putea fi introducerea posibilitii ca el s
fie jucat n reea de doi juctori umani care s ruleze programul pe calculatoare
diferite. Pentru acest lucru trebuie implementat n program un server i doi clieni
separai corespunztori celor doi competitori.
Aplicaia a fost implementat n limbajul Java deoarece acesta este independent
de platform i permite prin urmare rularea cvasi-identic pe oricare dintre sistemele
de calcul folosite curent.
Programarea orientat pe obiecte este o opiune mai avantajoas dect
programarea procedural, pentru c ferestrele, meniurile, interfeele grafice de
utilizator sunt mult mai uor de implementat prin utilizarea unor clase i familii de
clase predefinite.
Scrierea i testarea programului s-a fcut n Netbeans 4.1 care permite utilizarea
scrierea programelor sub form de proiect. Acest fapt permite compilarea i rularea
mai multor fiiere surs din cadrul proiectului. Aceast form de lucru a permis
separarea sursei pe un numr de patru fiiere care conin cele patru clase ale aplicaiei
Avioane.
Jocul implementat are o funcionare corect i eficient, deoarece codul scris
este compact avnd avantajul c soluioneaz toate cerinele din specificaie ntr-un
mod direct i corect.
46
47
4. BIBLIOGRAFIE
1.
2.
3.
4.
5.
48
ANEXA
// Fisierul Avioane.java
public class Avioane {
public static void main(String[] args) {
AvioaneFrame frame = new AvioaneFrame();
frame.setVisible(true);
}
}
// Fisierul avion.java
public class avion{
public patrat cap;
public int tip=0;
public patrat[] all = new patrat[10];
public avion(int _x, int _y, int _tip){
int i;
for (int j= 0; j< 10; j++ )
all[j] = new patrat();
cap = new patrat();
cap.x=_x;
cap.y=_y;
tip=_tip;
all[0].x = _x;
all[0].y = _y;
switch (_tip){
case 0:
{
all[1].x=_x-2; all[1].y=_y+1;
all[2].x=_x-1; all[2].y=_y+1;
all[3].x=_x; all[3].y=_y+1;
all[4].x=_x+1; all[4].y=_y+1;
all[5].x=_x+2; all[5].y=_y+1;
all[6].x=_x; all[6].y=_y+2;
all[7].x=_x-1; all[7].y=_y+3;
all[8].x=_x; all[8].y=_y+3;
all[9].x=_x+1; all[9].y=_y+3;
for(i=0;i<10;i++)
all[i].tip=0;
break;
}
case 1:{
all[1].x=_x-2; all[1].y=_y-1;
all[2].x=_x-1; all[2].y=_y-1;
all[3].x=_x; all[3].y=_y-1;
all[4].x=_x+1; all[4].y=_y-1;
all[5].x=_x+2; all[5].y=_y-1;
all[6].x=_x; all[6].y=_y-2;
all[7].x=_x-1; all[7].y=_y-3;
49
// avion
//
//////////
//
//////
// avion
//////
//
//////////
//
// avion
all[1].x=_x-1; all[1].y=_y-2;
all[2].x=_x-1; all[2].y=_y-1;
all[3].x=_x-1; all[3].y=_y;
all[4].x=_x-1; all[4].y=_y+1;
all[5].x=_x-1; all[5].y=_y+2;
all[6].x=_x-2; all[6].y=_y;
all[7].x=_x-3; all[7].y=_y-1;
all[8].x=_x-3; all[8].y=_y;
all[9].x=_x-3; all[9].y=_y+1;
for(i=0;i<10;i++)
all[i].tip=0;
break;
}
case 3:{
// avion
all[1].x=_x+1; all[1].y=_y-2;
all[2].x=_x+1; all[2].y=_y-1;
all[3].x=_x+1; all[3].y=_y;
all[4].x=_x+1; all[4].y=_y+1;
all[5].x=_x+1; all[5].y=_y+2;
all[6].x=_x+2; all[6].y=_y;
all[7].x=_x+3; all[7].y=_y-1;
all[8].x=_x+3; all[8].y=_y;
all[9].x=_x+3; all[9].y=_y+1;
for(i=0;i<10;i++)
all[i].tip=0;
break;
//
// //
////////
// //
//
//
// //
////////
// //
//
}
}
}
public boolean isalive(){
if (cap.tip==1) return false;
if (all[1].tip==1 &&
all[2].tip==1 &&
all[3].tip==1 &&
all[4].tip==1 &&
all[5].tip==1 &&
all[6].tip==1 &&
all[7].tip==1 &&
all[8].tip==1 &&
all[9].tip==1
) return false;
return true;
}
void print (){
int i;
for(i=0;i<10;i++)
System.out.print(all[i].x+","+all[i].y+","+all[i].tip+"\n");
}
}
// Fisierul patrat.java
public class patrat{
public int x=0 ;
public int y=0 ;
public int tip=0;
50
51
52
53
54
55
56
57