-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathHilera.java
86 lines (79 loc) · 2.3 KB
/
Hilera.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
package tema5;
public class Hilera extends Coro{
private Corista mCoro[][];
private int cantFilas;
private int cantColumnas;
private int dimF;
private int dimC;
public Hilera(Director direc, int cantFil, int cantCol){
director = direc;
mCoro = new Corista[cantFil][cantCol];
cantFilas = cantFil;
cantColumnas = cantCol;
dimC = 0;
dimF = 0;
inicializarMatriz();
}
public void inicializarMatriz(){
for (int i = 0; i < cantFilas; i++){
for (int j = 0; j < cantColumnas; j++)
mCoro[i][j] = null;
}
}
public void agregarCorista(Corista cor){
if (!estaLleno()){
int i = 0;
int j = 0;
boolean encontre = false;
while ((i < cantFilas) && (!encontre)){
while (j < cantColumnas && (!encontre)){
if (mCoro[i][j] == null){
mCoro[i][j] = cor;
dimF = (i+1);
dimC = (j+1);
encontre = true;
}
j++;
}
j=0;
i++;
}
}
}
@Override
public boolean estaLleno(){
return ((cantFilas == dimF) && (cantColumnas == dimC));
}
@Override
public boolean estaOrdenado(){
boolean isOrdenado = true;
boolean mismoTono = true;
int i = 0, j = 0, ant = 99999, tono;
while ((i < (cantColumnas-1)) && (mismoTono) && (isOrdenado)){
tono = mCoro[i][j].getTono();
j++;
while ((j < (cantFilas-1)) && (mismoTono)){
if (mCoro[i][j].getTono() != tono)
mismoTono = false;
j++;
}
if (ant > tono)
ant = tono;
else
isOrdenado = false;
i++;
j=0;
}
return (mismoTono && isOrdenado);
}
@Override
public String mostrarCoristas(){
String str = "";
for (int i = 0; i < (cantFilas); i++){
for (int j = 0; j < (cantColumnas); j++){
str += "["+(i+1)+"]["+(j+1)+"] "+mCoro[i][j].toString()+"\n";
}
}
return str;
}
}